我正在看看Cassandra的CQL集合(列表,集合,映射),我找不到一个可靠的来源,说明它们的并发性。
我想知道是否支持多个编写器将不同的元素添加到同一个集合中。
从我读到的实现(http://www.opensourceconnections.com/blog/2013/07/24/understanding-how-cql3-maps-to-cassandras-internal-data-structure-sets-lists-and-maps/)看来,集合是用列实现的,所以我应该是安全的。
但另一方面,我在这里和那里读到集合上的操作总是触发完全读取(甚至写入)。这表明如果多个作者使用相同的集合,我可能会遇到麻烦。
我可以(并且应该)使用来自多个作家的集合吗? (而且,文档中提到集合应该用于“少量数据”,这将是多少?数十,数百,数千?
答案 0 :(得分:2)
更新是原子的,应包括行中的任何集合。所以有多个作家应该没问题。
"在UPDATE语句中,同一分区键中的所有更新都以原子方式单独应用。"
http://cassandra.apache.org/doc/cql3/CQL.html#updateStmt
"集合中的项目值限制为64K"
http://www.datastax.com/documentation/cql/3.0/cql/ddl/ddlWhenCollections.html
干杯,