避免覆盖数据并不惜一切代价明确删除数据,因为由于执行的检查以避免数据复活而进行的检查,这可能会阻止过期的Sstable被清除。
线 data模型类似:
CREATE TABLE telemetry ( device_id text, date text, occurred_on timestamp, PRIMARY KEY ((device_id, date), occurred_on) )
使用TWC时,最好的方法是防止上升的方法?我知道一些方法,但是权衡太多:
使用轻量级交易 - 听起来不错,但插入工作负载的性能会急剧下降 使用timeuuid for fosted_on而不是时间戳来保证独特的行 - 但通常不是出于此目的提议(不知道为什么,可能是在从timeuid到select加载数据的时间上的timeuuid上的开销太多?)
Maybe存在着另一个选择,最好是什么?
这似乎有点误会。 “防止UPSERTS”是指该应用程序不应发行序列,因为它应该是时间序列用例。实施LWT或使用时间uuid而不是时间戳无关
TimeWindowCompactionStrategy
SizeTieredCompactionStrategy
(STC)或新的UnifiedCompactionStrategy
UnifiedCompactionStrategy
astradb
(cassandra-as-a-service)开发的功能,然后添加到商业发行版DatastaxEnterprise(dse)
和hyper-concoteded数据库(HCD)。在2022年,DataStax将UCS捐赠给Apache软件基金会(CEP-26
),在该基金会中,将其添加为Apache Cassandra5.0
(Cassandra-18397
)中的新功能。为了进行全面披露,我是Apache Cassandra委员会,并且在DataStax工作。欢呼!