Prevent tombstones creation

前端 未结 3 2008
日久生厌
日久生厌 2021-01-23 16:56

I need to perform an insert to Cassandra table without creating tombstones for any column. I am using a query similar to this :

insert into my_table(col1,col2,col3

相关标签:
3条回答
  • 2021-01-23 17:24

    Assuming you are using prepared statements you can use the "unset" functionality that was introduced in Cassandra 2.2.0, which lets you use leave prepared statement variables without values and without creating tombstones on the server. It is supported in the Java driver 3.0.0 and other drivers.

    0 讨论(0)
  • 2021-01-23 17:25

    Don't include col3 in your insert and it just wont set anything.

    insert into my_table(col1,col2) values(val1,val2)
    

    If curious about structure on disk, do a nodetool flush and run sstabledump on the sstable created to see difference.

    0 讨论(0)
  • 2021-01-23 17:39

    If you insert null values, Cassandra will create tombstones. If you know that col3 will be null, don't use it in your query.

    insert into my_table(col1,col2) values(val1,val2)
    

    I would suggest two really good articles on the subject

    • Common Problems with Cassandra Tombstones
    • About Deletes and Tombstones in Cassandra.
    0 讨论(0)
提交回复
热议问题