【发布时间】:2011-05-10 04:42:07
【问题描述】:
您能否分享一下您将如何在 Cassandra 中实现数据版本控制的想法。
假设我需要对一个简单地址簿中的记录进行版本化。 (通讯簿记录存储为 ColumnFamily 中的行)。 我希望历史:
- 不常使用
- 将一次性使用,以“时间机器”的方式呈现它
- 单个记录的版本不会超过几百个。
- 历史不会过期。
我正在考虑以下方法:
将通讯录转换为超级列族,并将多个版本的通讯录记录存储在一个行键控(按时间戳)中作为超级列。
-
创建新的超级列族以存储旧记录或对记录的更改。 这样的结构如下所示:
{ '通讯录行键': { '时间戳1':{ '名字': '新名字', '修改者':'用户ID', },
'time stamp2': { 'first name': 'new name', 'modified by': 'user id', }, },'另一个通讯录行键': { '时间戳':{ ....
将版本存储为附加在新 ColumnFamily 中的序列化 (JSON) 对象。将版本集表示为行,将版本表示为列。 (仿照Simple Document Versioning with CouchDB)
【问题讨论】:
标签: cassandra database-versioning