Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

Tombstone

টম্বস্টোন

Delete-কে একটা বিশেষ marker record হিসেবে লেখা — append-only storage-এ পুরনো value-কে 'নেই' বলার স্মৃতিফলক।

also: delete-marker

কেন? পুরনো SSTable-এ key-টা এখনো আছে — marker না থাকলে read path সেটাই ফিরিয়ে দেবে:

run2 (newer): k1 → TOMBSTONE     ← get(k1) এখানেই থামবে: not found
run1 (older): k1 → "hello"       ← নিরাপদে উপেক্ষিত
  • Tombstone না পৌঁছালো older run-এ zombie value resurrection — replication lag-এর ক্লাসিক bug
  • Compaction শেষ level-এ tombstone drop করে — তার আগে রাখতেই হয়
  • MVCC-র dead tuple ভিন্ন জিনিস, কাজ একই: অদৃশ্য কিন্তু জায়গা দখল করা

Delete-heavy workload-এ tombstone নিজেই bloat — compaction policy এখানে পরীক্ষা হয়।