2014-10-28 23 views
7

Mezar taşlarının erken çıkarılmasının tehlikeli olduğunu biliyorum çünkü silinen verilerin yeniden diriltilmesine neden olabilir, ancak tüm kopyalar silme işlemini onayladıysa, bu tür bir kaldırma güvenli olmalıdır. Örneğin, bir tablonun çoğaltma faktörü 3 varsa ve anahtarı içeren tüm 3 düğüm, uygun mezar taşına sahip olduklarını doğruladıysa, verilerin kalan bir kopyası olmayacağından, mezar taşlarının kaldırıldığı bir sıkıştırma gerçekleştirmek güvenli olmalıdır. .Cassandra'nın mezar taşlarını güvenli bir şekilde kaldırmasının bir yolu var mı? * Gc_grace_seconds geçenler?

Cassandra'da mezar taşlarının güvenli bir şekilde çıkarılması mümkün mü?

Doğrusu sonsuza gc_grace_seconds ayarlayabilir ve nodetool repair ve gc_grace_seconds zamanlaması hakkında endişe daha mezar güvenli sıkıştırma bu tür dayanacağını belirtti.

cevap

2

Hayır, gc_grace_seconds değiştirmeden mezar taşları kaldırmak mümkün değildir.

3 çoğaltmanın tümünün mezar taşına yapışabileceği, kaldırdığı ve daha sonra buna ihtiyaç duyduğu işlemler vardır. Bir önceki SSTable'ı bir kümeye geri aktarmanız gereken durumu düşünün.

Bu tür bir elleçlenen tombstone kaldırma işlemi, sürekli olarak değil, düzenli olarak gerçekleştireceğinizden, performans açısından önemli ölçüde daha kötü olacaktır. Gereksiz yere, gereksiz şekilde kaldırılması gereken mezar taşlarını gereksiz olarak okuyor olacaksınız.

Benim önerim, gc_grace_seconds öğelerinizi makul bir şeye ayarlamak (10 gün gayet iyi) ve opscenter veya cassandra-reaper kullanarak onarımları programlamaktır.

İlgili konular