问题标签 [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.

0 投票
1 回答
162 浏览

amazon-ec2 - EC2 上的 BigCouch ID 和备份数据

我有几个关于 BigCouch 的问题,我很高兴在开始使用它之前得到答案。

  • 我需要仔细选择我的分片键还是可以只使用自动生成的 GUID?我从具有 1 个复制的单个服务器开始,但我希望在需要添加另一个分片时做好准备

  • 任何用于管理集群的 GUI(如 CouchBase)都有,类似于管理数据库

  • 在 EC2 上托管 BigCouch 时如何备份数据(即快照)

谢谢

0 投票
3 回答
1723 浏览

couchdb - 对于集群的 CouchDB 设置,我应该继续使用 BigCouch 吗?

我一直在研究CouchDB的附件功能。基本上,CouchDB 允许您将二进制文件数据存储在数据库记录中。类似于 MongoDB 的 GridFS。我想要构建的项目主要围绕文件上传展开,我计划将其存储在 CouchDB 中。因此,这导致我研究 CouchDB 如何对数据进行集群化,以便随着我的数据库的增长,由于文件附件的存在,我可以将其集群到多个服务器上。我很失望地发现 CouchDB 没有能力做到这一点,开箱即用。couchdb-loungeCouchDB 指南说要在 Github 上使用名为. 我不认为我会觉得以此为基础。

我发现BigCouch,它似乎是一个经过修改的 CouchDB,具有我需要的确切集群功能,除了它看起来落后于当前稳定的 CouchDB 版本。我确实在一年前的新闻稿中读到,他们正在努力将 BigCouch 合并到官方的 CouchDB 中,但我不知道时间表是什么样的。

作为第三种选择,看起来 Couchbase Server 2 也基于 CouchDB,但具有构建的集群以及其他功能。我也在辩论这是一个可行的选择。但是,它不支持文件附件。

BigCouch 最终将登陆 CouchDB 的事实让我有信心继续使用 BigCouch。

我应该使用 BigCouch 吗?如果只是 CouchDB + 集群,为什么不是每个人都使用 BigCouch?一定有一些不利的一面,对吧?

0 投票
0 回答
88 浏览

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"]

0 投票
1 回答
764 浏览

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_afterstale=false)的优先级。例如,我想要一些类似的东西POST /origin_db/_design/foo/_view/bar/_dbcopy会立即强制将减少的结果推送到dbcopy数据库(可选地首先更新原始视图)。
  • 如果链接的数据库以某种方式不同步(例如,直接在数据库中删除或更新文档而不是通过dbcopy机制或dbcopy机制丢失了一些文档),可以检测到吗?如何纠正?有dbcopy“重置按钮”吗?
0 投票
1 回答
71 浏览

bigcouch - 在 bicgcouch 中使用 database_dir 移动创建数据库时出错

我有一个集群设置,我已经将数据目录从 /opt/bigcouch/var/lib 移动到 /bigcouch

我在 /opt/bigcouch/etc/default.ini 中更改了以下几行

我遇到了一个问题,如果我尝试创建一个新的数据库,它会返回 JSON,说创建了数据库,但没有创建实际的数据库

我将目录的所有者设置为 bigcouch

如果我创建数据库

接着

我得到零记录

0 投票
1 回答
995 浏览

couchdb - 复制时 pouchdb 出现 Cloudant“case_clause”错误

我正在使用 Pouchdb 和 Cloudant,当我的 Web 应用程序启动时,它会在浏览器中从 Cloudant 复制到我的 pouchdb。我对 pouchdb 内部的工作方式有所了解,这就是我认为该过程的工作方式(高级):

  1. 复制开始
  2. 从 cloudant db 获取检查点文档(包含从服务器检索的最新序列号,如果不存在,则假定序列号为 0,这是我的情况)
  3. 从从该序列号开始释放的更改中获取更改(最多获取 25 个更改)
  4. 使用新的序列号将检查点文档写入(或更新)回 Cloudant 服务器(这样,如果发生网络错误,它可以从中断处继续或进行下一次复制)
  5. 重复直到没有变化
  6. 复制完成

问题出在第 4 步,当 pouch 尝试将该文档写入 cloudant 服务器(第一次)时,服务器返回“case_clause”错误。我认为问题可能是发送到 cloudant 的 id 无效(cloudant 不接受这种格式的 id),因为写入服务器的文档的 id 是_local/799c37dfaefb3774a04f55c7f8cee947(或最后的其他随机数和字符)。我不知道这是否是有效的文档 ID(对于 cloudant,因为这对于 pouchdb 是准确的),所以我想我在问,是这个问题(cloudant 的不可接受的 id),还是有一些基于 cloudant 服务器返回的错误的其他问题。

这是正在编写的文档:

以下是 Chrome 调试器的完整错误输出:

注意:当我进入 cloudant 的被褥并使用其 id 手动输入检查点文档的 url 时,它不存在。

谢谢

编辑:

使用 Chrome 调试器的上述请求的标头信息:

0 投票
1 回答
1321 浏览

couchdb - CouchDB 中的视图如何存储在磁盘上?

我知道 CouchDB 视图是预先计算的,现在我想知道每个视图的存储成本是多少。这个怎么估计?它是发出数据的原始 JSON 大小吗?

更具体地说,它是 BigCouch (Cloudant)。

0 投票
2 回答
649 浏览

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 完美运行?十分感谢

0 投票
1 回答
214 浏览

database - Bigcouch 集群不工作

我是 bigcouch 的新手。我已经在两个不同的系统上成功设置了 bigcouch,它们运行得非常好。

在第一个 bigcouch 上,我有一些 dbs,我想将它们复制到另一个 bigcouch。我将所有分片从第一个 bigcouch 复制到另一个。然后我使用集群命令使它们集群。

curl -X PUT db01.yourhostname.com:5986/nodes/bigcouch@db02.yourhostname.com -d {}

它给出了成功的结果。但是当我尝试创建任何新数据库时,它会出现内部服务器错误。

我的第一个问题,这是在从一个到另一个处理分片后进行聚类的好方法吗?我不确定这是否是正确的方法。所以任何人都可以告诉我如何成功地做到这一点,或者我错过了什么.

谢谢。

0 投票
0 回答
78 浏览

hostname - 更改 Bigcouch 主机名

有什么优雅的方法可以更改 Bigcouch 主机名吗?Bigcouch 只是自动假定它的名称是 bigcouch@FQDN,因此它会散布在您在其上创建的所有数据库中。当您更改 FQDN Bigcouch 胡扯时,它就是裤子,您无能为力。

我试图手动通过 5986 管理端口并更改所有 FQDN 引用,然后似乎又给了我 5984 访问和编辑能力。它根本没有记录,所以它只是一个粗略的黑客,可能会或可能不会正常工作。

也许有一些更优雅的方式?为了做到这一点,必须炸毁服务器并将其重新添加到集群中似乎有点原始。