为什么Cloudant中没有all_or_nothing支持?

时间:2015-04-10 06:35:46

标签: couchdb cloudant

我尝试在Cloudant上将all_or_nothing设置为true时更新原子批量文档,但得到以下响应:

    [{"id":"7b75974f73c4230047b96b5272b696fd","rev":"1-e9b78ecba4c4ac29a9743cd001219eae","error":"not_implemented","reason":"all_or_nothing is not supported yet"},
    {"id":"921faa913230839614a4feb19d5c39ec","rev":"0-","error":"not_implemented","reason":"all_or_nothing is not supported yet"}]

我跟着CouchDB documentation因为Cloudant是CouchDB的一个分支,并且对于大多数用途来说它似乎是兼容的。不是在这种情况下。

所以我调查Cloudant documentation,确实根本没有提到all_or_nothing标志。 Moving Apache CouchDB Data to Cloudant白皮书中也没有提到它。

现在我想知道.. 是否按设计(如果数据以正确的NoSQL方式建模,可能不需要它?是否有适用于此处的最佳实践?)或者它是< strong>只是缺少功能?

1 个答案:

答案 0 :(得分:5)

Cloudant不支持Expected to see a statement but instead saw a block标志。当CouchDB分叉并成为BigCouch时它被删除了。由于数据库是分片的并存储在不同的计算机上,因此在分布式系统中提供all_or_nothing保证会过于复杂,您的_bulk_docs请求最终会写入单独的分片。

我发现即将从即将推出的CouchDB 2.0中删除它也不会感到惊讶。