Saya sedang mempelajari SizeTieredCompactionStrategy Cassandra dan menemukan bahwa kadang-kadang dapat menggandakan ukuran tabel dataset terbesar selama proses pemadatan. Tetapi saya tidak mendapatkan informasi tentang kapan ini bisa terjadi? Apakah ada yang tahu tentang ini?

2
VIKRAM SINGH CHOUHAN 29 Maret 2020, 11:30

1 menjawab

Jawaban Terbaik

Persyaratan ini muncul dari fakta bahwa proses pemadatan harus memiliki cukup ruang untuk mengambil semua SSTables yang harus dipadatkan, membaca data dari mereka, dan menulis SSTable baru ke disk yang sama. Dalam kasus terburuk, jika Anda memiliki tabel yang terdiri dari semua SSTables yang harus dipadatkan, ukuran totalnya adalah 50% dari ruang disk yang tersedia, dan tidak ada data yang akan dibuang - dalam hal ini, proses pemadatan akan menulis satu SSTable yang sama dengan ukuran data input. Dan jika Anda memiliki data input yang menempati lebih dari 50% ruang disk, pemadatan tidak akan memiliki cukup ruang untuk menulis versi baru.

Dalam situasi nyata, Anda perlu memiliki cukup ruang untuk memadatkan SSTables terbesar di tabel terbesar Anda yang dilakukan oleh N utas pemadatan pada saat yang bersamaan. Jika Anda memiliki banyak tabel dengan ukuran yang sama, maka batasan ini tidak terlalu kuat...

2
Alex Ott 29 Maret 2020, 09:48