iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
0
Software Development

scylla 從零開始攻略系列 第 9

Day9. TTL 與墓碑

TTL(Time To Live)

了解了上一篇column裡面內部的結構設計,那麼再來要講到的是TTL機制。

TTL,資料存活時間,是column上的設定。

提醒一下,column理面的timestamp放的是資料插入時間,並非TTL的時間。

TTL預設是null,也就是預設永久保存資料。

若要設定TTL的話,可以在insert或update的操作寫入,單位是秒鐘,例如寫入3600秒,亦即這個column在一個小時後資料會失效。

TTL 的操作單位是針對每個column做設定,而且沒有針對row做設定的方式,若想要讓整個row失效的話,是需要對於row裡面的column分別做設定。

墓碑(tombstone)

討論到資料失效,就要說明一下CASSANDRA/SCYLLA的墓碑機制。

墓碑是用來處理資料的刪除工作,當執行刪除的時候,資料並不會直接被移除,而是被替換成一個墓碑印記。

這個機制在wiki查詢的時候不沒有特別說明是CASSANDRA/SCYLLA的專利,但是在RDBMS理面好像也沒有看到相關的說明。

CASSANDRA/SCYLLA 在此的相關設定有一個垃圾回收寬限期,Garbage Collectioni Grace Seconds,預設是864000秒,10天的時間,CASSANDRA/SCYLLA會追蹤這個時間,超過後才實際進行資料的刪除,換句話說,在失效之前,是有機會追回這些應該被刪除的資料。

以上概念與我們熟悉的RDBMS認知的刪除資料操作,非常的不同對吧!

還有一點關於墓碑的產生方式有點特別。

關於刪除的語法,像是delete from where + 條件

根據條件的不同

CASSANDRA/SCYLLA 會產生不同的tombstone,而因此會影響到實際刪除資料的處理。


上一篇
Day8. column 的詳細構成
下一篇
Day 10. 主鍵(primary key)
系列文
scylla 從零開始攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言