问题标签 [bigcouch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-ec2 - EC2 上的 BigCouch ID 和备份数据
我有几个关于 BigCouch 的问题,我很高兴在开始使用它之前得到答案。
我需要仔细选择我的分片键还是可以只使用自动生成的 GUID?我从具有 1 个复制的单个服务器开始,但我希望在需要添加另一个分片时做好准备
任何用于管理集群的 GUI(如 CouchBase)都有,类似于管理数据库
- 在 EC2 上托管 BigCouch 时如何备份数据(即快照)
谢谢
couchdb - 对于集群的 CouchDB 设置,我应该继续使用 BigCouch 吗?
我一直在研究CouchDB
的附件功能。基本上,CouchDB 允许您将二进制文件数据存储在数据库记录中。类似于 MongoDB 的 GridFS。我想要构建的项目主要围绕文件上传展开,我计划将其存储在 CouchDB 中。因此,这导致我研究 CouchDB 如何对数据进行集群化,以便随着我的数据库的增长,由于文件附件的存在,我可以将其集群到多个服务器上。我很失望地发现 CouchDB 没有能力做到这一点,开箱即用。couchdb-lounge
CouchDB 指南说要在 Github 上使用名为. 我不认为我会觉得以此为基础。
我发现BigCouch
,它似乎是一个经过修改的 CouchDB,具有我需要的确切集群功能,除了它看起来落后于当前稳定的 CouchDB 版本。我确实在一年前的新闻稿中读到,他们正在努力将 BigCouch 合并到官方的 CouchDB 中,但我不知道时间表是什么样的。
作为第三种选择,看起来 Couchbase Server 2 也基于 CouchDB,但具有构建的集群以及其他功能。我也在辩论这是一个可行的选择。但是,它不支持文件附件。
BigCouch 最终将登陆 CouchDB 的事实让我有信心继续使用 BigCouch。
我应该使用 BigCouch 吗?如果只是 CouchDB + 集群,为什么不是每个人都使用 BigCouch?一定有一些不利的一面,对吧?
get - 在 bigCouch 中通过一个请求获取多个文档
我试图在 bigCouch 中通过一个请求(http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API#Fetch_Multiple_Documents_With_a_Single_Request)获取多个文档,但它似乎没有按预期工作,它返回数据库中的所有文档. 相同的请求和相同的数据在 couchDB 中工作。bigCouch 不支持吗?
请求是:http://xxxx:5984/database/_all_docs?keys=["test"]
couchdb - 如何触发或检查链式映射减少的状态(dbcopy)
使用标准的 CouchDB 视图索引,我可以灵活地反思陈旧与新鲜。如何获得Cloudant 的类似dbcopy
功能?
CouchDB 查看查询新鲜度
- 磁盘上的当前索引,可能是陈旧的:
stale=ok
- 磁盘上的当前索引,但触发更新:
stale=update_after
- 最新索引,即使这需要更新索引:不要使用过时标志(又名
stale=false
)
CouchDB 视图新鲜度自省
我可以将 DBupdate_seq
与设计文档进行比较update_seq
,可以update_seq=true
在视图查询中或从GET /db/_design/foo/_info
.
大沙发注意事项
BigCouch 的数据库分区和多台服务器稍微模糊了这一点。egupdate_seq
是复合物,只能在公差范围内进行比较;stale=false
可能会选择不同的分片stale=ok
,可能或多或少是最新的;虽然没有办法获得update_seq
所有节点(或stale=false
查询选择的特定节点)的方法,但可以通过快速发出多个/db/_design/foo/_info
查询来欺骗它。在这里有额外的分片/分区内省会很好,但上面的内容仍然适用于我的目的。
克劳德的dbcopy
dbcopy
具有大致相同的“最终一致性”特征。查询链式数据库中的文档大致类似于使用group=true&stale=ok
. 这很好,大多数时候。但是文档没有给出以下任何指示:
- 如何查询当前
dbcopy
状态?例如,数据库是否认为自己是最新的,或者是否在 IOQ 中等待轮到他们的视图更改?如果它不是最新的,大致有多陈旧? - 如何触发或提高
dbcopy
(如stale=update_after
或stale=false
)的优先级。例如,我想要一些类似的东西POST /origin_db/_design/foo/_view/bar/_dbcopy
会立即强制将减少的结果推送到dbcopy
数据库(可选地首先更新原始视图)。 - 如果链接的数据库以某种方式不同步(例如,直接在数据库中删除或更新文档而不是通过
dbcopy
机制或dbcopy
机制丢失了一些文档),可以检测到吗?如何纠正?有dbcopy
“重置按钮”吗?
bigcouch - 在 bicgcouch 中使用 database_dir 移动创建数据库时出错
我有一个集群设置,我已经将数据目录从 /opt/bigcouch/var/lib 移动到 /bigcouch
我在 /opt/bigcouch/etc/default.ini 中更改了以下几行
我遇到了一个问题,如果我尝试创建一个新的数据库,它会返回 JSON,说创建了数据库,但没有创建实际的数据库
我将目录的所有者设置为 bigcouch
如果我创建数据库
接着
我得到零记录
couchdb - 复制时 pouchdb 出现 Cloudant“case_clause”错误
我正在使用 Pouchdb 和 Cloudant,当我的 Web 应用程序启动时,它会在浏览器中从 Cloudant 复制到我的 pouchdb。我对 pouchdb 内部的工作方式有所了解,这就是我认为该过程的工作方式(高级):
- 复制开始
- 从 cloudant db 获取检查点文档(包含从服务器检索的最新序列号,如果不存在,则假定序列号为 0,这是我的情况)
- 从从该序列号开始释放的更改中获取更改(最多获取 25 个更改)
- 使用新的序列号将检查点文档写入(或更新)回 Cloudant 服务器(这样,如果发生网络错误,它可以从中断处继续或进行下一次复制)
- 重复直到没有变化
- 复制完成
问题出在第 4 步,当 pouch 尝试将该文档写入 cloudant 服务器(第一次)时,服务器返回“case_clause”错误。我认为问题可能是发送到 cloudant 的 id 无效(cloudant 不接受这种格式的 id),因为写入服务器的文档的 id 是_local/799c37dfaefb3774a04f55c7f8cee947
(或最后的其他随机数和字符)。我不知道这是否是有效的文档 ID(对于 cloudant,因为这对于 pouchdb 是准确的),所以我想我在问,是这个问题(cloudant 的不可接受的 id),还是有一些基于 cloudant 服务器返回的错误的其他问题。
这是正在编写的文档:
以下是 Chrome 调试器的完整错误输出:
注意:当我进入 cloudant 的被褥并使用其 id 手动输入检查点文档的 url 时,它不存在。
谢谢
编辑:
使用 Chrome 调试器的上述请求的标头信息:
couchdb - CouchDB 中的视图如何存储在磁盘上?
我知道 CouchDB 视图是预先计算的,现在我想知道每个视图的存储成本是多少。这个怎么估计?它是发出数据的原始 JSON 大小吗?
更具体地说,它是 BigCouch (Cloudant)。
couchdb - BigCouch 错误:加入节点时“无法连接到主机”
我尝试使用 BigCouch 设置 2 个节点。我在 2 台机器上的 /etc/hostname 上设置了 FQDN(例如:may2.test.com)。我还编辑了/opt/bigcouch/etc/vm.args:
-name bigcouch@may2.test.com
-setcookie 怪物(默认)
然后我尝试:
- curl localhost:5984 -> {"couchdb":"Welcome","version":"1.1.1","bigcouch":"0.4.2"}
- curl localhost:5986 -> {"couchdb":"Welcome","version":"1.1.1"}
- curl may2.test.com:5984 -> {"couchdb":"Welcome","version":"1.1.1","bigcouch":"0.4.2"}
- curl may2.test.com:5986 -> curl: (7) 无法连接到主机
任何人都可以给我一些想法来修复它并使 BigCouch 完美运行?十分感谢
database - Bigcouch 集群不工作
我是 bigcouch 的新手。我已经在两个不同的系统上成功设置了 bigcouch,它们运行得非常好。
在第一个 bigcouch 上,我有一些 dbs,我想将它们复制到另一个 bigcouch。我将所有分片从第一个 bigcouch 复制到另一个。然后我使用集群命令使它们集群。
curl -X PUT db01.yourhostname.com:5986/nodes/bigcouch@db02.yourhostname.com -d {}
它给出了成功的结果。但是当我尝试创建任何新数据库时,它会出现内部服务器错误。
我的第一个问题,这是在从一个到另一个处理分片后进行聚类的好方法吗?我不确定这是否是正确的方法。所以任何人都可以告诉我如何成功地做到这一点,或者我错过了什么.
谢谢。
hostname - 更改 Bigcouch 主机名
有什么优雅的方法可以更改 Bigcouch 主机名吗?Bigcouch 只是自动假定它的名称是 bigcouch@FQDN,因此它会散布在您在其上创建的所有数据库中。当您更改 FQDN Bigcouch 胡扯时,它就是裤子,您无能为力。
我试图手动通过 5986 管理端口并更改所有 FQDN 引用,然后似乎又给了我 5984 访问和编辑能力。它根本没有记录,所以它只是一个粗略的黑客,可能会或可能不会正常工作。
也许有一些更优雅的方式?为了做到这一点,必须炸毁服务器并将其重新添加到集群中似乎有点原始。