Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cassandra或Couchbase中注入自定义切分_Cassandra_Couchbase - Fatal编程技术网

在Cassandra或Couchbase中注入自定义切分

在Cassandra或Couchbase中注入自定义切分,cassandra,couchbase,Cassandra,Couchbase,我可以注入切分算法来威慑Cassandra或Couchbase吗? 还是由他们决定每个文档的去向 例如,如果我想通过一个数据属性将数据固定到碎片上。Cassandra通过分区键决定数据的去向。因此,如果您使用您想要用作“pin”的数据作为分区键,那么我认为它将满足您的要求。但是,您不会显式地拾取复制副本,并且随着主机被删除并添加到集群中,复制副本可能会发生更改。Couchbase哈希文档的密钥,以决定文档应与哪个碎片(vBucket)相关联。当您希望通过文档的密钥检索文档时,SDK还使用相同的算

我可以注入切分算法来威慑Cassandra或Couchbase吗?
还是由他们决定每个文档的去向


例如,如果我想通过一个数据属性将数据固定到碎片上。

Cassandra通过分区键决定数据的去向。因此,如果您使用您想要用作“pin”的数据作为分区键,那么我认为它将满足您的要求。但是,您不会显式地拾取复制副本,并且随着主机被删除并添加到集群中,复制副本可能会发生更改。

Couchbase哈希文档的密钥,以决定文档应与哪个碎片(vBucket)相关联。当您希望通过文档的密钥检索文档时,SDK还使用相同的算法来查找文档所在的碎片

让开发人员决定分片算法的一个问题是,有时他们在一个分片中会有过多的文档,而这个分片自然会成为应用程序的瓶颈


Couchbase的核心概念之一是,文档(几乎)均匀分布在所有碎片之间,因此我不熟悉任何本地支持在其中插入您自己的算法。

这个答案是正确的,但我只想补充一点,在Couchbase 5.5中,有一个索引分区的概念,这本质上允许您为索引(而不是数据)定义碎片。如果您基于也对其运行查询的字段进行分区,这将有助于提高性能。(见:)