问题标签 [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 回答
4532 浏览

nosql - 将分片从一个 bigcouch 服务器移动到另一个(用于平衡)

我目前正在测试 bigcouch 的大量数据(每天 1500 万条记录)。

当我需要生成数据视图时,我遇到了一些平衡问题,因为我的两台机器中的一台比另一台弱得多。结果是,好的机器完成了,无事可做,而较弱的机器还有很多事情要做。(单核与双核)

我现在的想法是将一些碎片从较弱的机器移到另一台机器上,以便它们几乎同时完成。

因此我的问题是,如何将分片从 weeker bigcouch 服务器转移到更好的服务器?

感谢您的帮助+最好的问候!

安迪

0 投票
1 回答
352 浏览

node.js - 如果三个节点中的一个节点向下,bigcouch 就会卡住

我使用 bigcouch 作为我的项目...我打开 3 个节点(默认)一切都很好,直到一个节点突然关闭(一台服务器崩溃)

为什么如果一个节点关闭,输入过程会卡住......?我阅读了文档...我尝试设置 N = 1(复制常量)、R = 1(读取 qourum 常量)和 W = 1(写入 qourum 常量)...

我认为我的 conf 意味着如果 1 次写入和 1 次复制发生在足以返回 201 状态的服务器上。

然后我在bigcouch github中提出问题..我得到的答案是我必须将设置设置为默认值...我已经将设置设置为默认值但是如果三个节点中的一个节点向下,bigcouch仍然卡住...

我在“节点”数据库中输入的这 3 个节点:

bigcouch@bigserver1.server1

bigcouch@bigserver2.server2

bigcouch@bigserver3.server3

如果我在一个节点关闭的情况下通过蒲团创建数据库,则会出现此错误...

{超时,[{{shard,undefined,'bigcouch@bigserver1.server1',undefined,undefined, #Ref}, ok}, {{shard,undefined,'bigcouch@bigserver2.server2',undefined,undefined, #Ref} , 好的}, {{shard,undefined,'bigcouch@bigserver3.server3',undefined,undefined, #Ref}, nil}]}

需要 10 分钟才能出现此错误...这发生在我的 node.js 应用程序中,并使我的 node.js 应用程序卡住了 10 分钟

0 投票
1 回答
92 浏览

database - 如果我们需要在 cassandra 和 bigcouch 之间进行选择,我们应该考虑哪个标准?

有什么优点/缺点?两者中哪一个更适合 P2P 客户端?

0 投票
2 回答
1357 浏览

couchdb - Bigcouch 集群配置

我目前正在尝试 bigcouch,但我不太明白它如何识别集群中的节点。例如,开发集群由 3 个节点组成,侦听端口 15984/15986、25984/25986 和 35984/35986。当我们将节点添加到集群时,我们会将 ID 为“dev2@127.0.0.1”和“dev3@127.0.0.1”的文档附加到节点数据库(参见http://bigcouch.cloudant.com/develop)。现在端口号在哪里?节点 1 是如何知道节点 2 和 3 监听上述这些罐子的呢?和相关问题:如果我想将位于不同主机上的节点添加到此集群,我该怎么做?添加“dev1@IP”似乎不起作用,bigcouch 无法连接到它。

0 投票
1 回答
1293 浏览

erlang - BigCouch 集群连接问题

我已经在两台不同的机器上成功设置了 BigCouch。它们都在本地运行得很好。当我使用以下命令之一或同时将它们加入集群时: curl -X PUT machine1:5986/nodes/bigcouch@machine2 -d {} curl -X PUT machine2:5986/nodes/bigcouch@machine1 -d {}

我总是收到积极的结果。数据库节点包含两个文档 bigcouch@machine2、bigcouch@machine1。但实际上,它总是错误的。我在 BigCouch 的命令行中看到了这个错误信息

=*错误报告==== 2011 年 12 月 9 日::20:01:40 === 节点“bigcouch@machine1.fr”上的进程 <0.3117.0> 出错,退出值:{{rexi_DOWN,noconnect} ,[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <148>1 2011-12-09T19:01:40.559992Z machine1树枝 <0.159.0> -------- - mem3_sync 节点 -> 'bigcouch@machine2' {{rexi_DOWN,noconnect}, [{mem3_rep,rexi_call,2}, {mem3_rep,replicate_batch,1}, {mem3_rep ,go,3}, {mem3_rep,go,2}]} <148>1 2011-12-09T19:01:40.560106Z machine1 twig <0.159.0> -------- - mem3_sync dbs -> ' bigcouch@machine2' {{rexi_DOWN,noconnect}, [{mem3_rep,rexi_call,2}, {mem3_rep,replicate_batch,1}, {mem3_rep,go,3}, {mem3_rep,go,2}]} <148>1 2011 -12-09T19:01:40.560205Z machine1 twig <0.159.0> -------- - mem3_sync _users -> 'bigcouch@machine2' {{rexi_DOWN,noconnect}, [{mem3_rep,rexi_call,2}, {mem3_rep,replicate_batch,1}, {mem3_rep,go,3}, {mem3_rep,go,2}]} [错误] [模拟器] [--------] 节点“bigcouch@machine2”上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch ,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011-12-09T19:01:45.560979Z machine1 twig emulator msg - 节点上的进程 <0.3198.0> 出错'bigcouch@machine1' 退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} *退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011 -12-09T19:01:45.560979Z machine1 twig emulator msg - 节点 'bigcouch@machine1' 上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{ mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]}*退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011 -12-09T19:01:45.560979Z machine1 twig emulator msg - 节点 'bigcouch@machine1' 上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{ mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]}*

也许是防火墙?如果是,请告诉我让节点相互连接的范围端口。如果没有,请向我解释一下以及如何解决连接它们。

在文档中,他们要求节点可以相互 ping 通,并且节点设置相同的魔法 cookie。我的机器可以互相ping通,但是什么是magic cookie?

0 投票
1 回答
2893 浏览

couchdb - 如何从 BigCouch 集群中删除节点?

我创建了具有 4 个节点的 BigCouch 集群,只需将 PUT 发送到节点数据库:

所有节点都已正确注册,将 GET 发送到成员资格会返回所有 4 个节点:

问题是:如何删除节点?

我试图将 DELETE 发送到节点数据库

但我得到一个错误:

一旦我简单地停止了节点 d,我的会员资格就会返回:

所以节点d从那里消失了,"all_nodes"但仍然作为"cluster_nodes成员存在。

在这种状态下,我无法创建任何新数据库。每次收到消息:

任何想法如何解决它?

0 投票
2 回答
607 浏览

couchdb - couchdb Max_document_size

我们将使用 bigcouch 来提供图像。最大图像大小约为 5MB。配置值为 64MB。我们应该把它改到附近的地方吗?背后的原因是什么?

谢谢,

凯瑟琳

0 投票
2 回答
1022 浏览

java - 如何启动couchdb lucene并将其与bigcouch集成

我想使用 couchdb-lucene 作为全文搜索,但我无法运行它...

我收到了这个错误

ls:无法访问 lib/*.jar:线程“main”中没有此类文件或目录异常 java.lang.NoClassDefFoundError:com/github/rnewson/couchdb/lucene/Main 原因:java.lang.ClassNotFoundException:com.github .rnewson.couchdb.lucene.Main at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205 ) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:266) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:321) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:266) 不能找到主类:com.github.rnewson.couchdb.lucene.Main。程序将会退出。

以及如何将它与 bigcouch 集成..?

我无法启动它,所以我无法尝试将它与 bigcouch 集成...

0 投票
1 回答
951 浏览

couchdb - 处理 BigCouch 中复制引起的冲突

CouchDB复制和冲突wiki 页面建议使用_bulk_docswithall_or_nothing=true强制写入新版本的文档,即使这会在写入时引入冲突,但在随后的读取后不久就会解决。我已经实现了这一点,从概念上讲它似乎工作正常。

但 BigCouch 不支持all_or_nothing语义,因此写入批量文档可能会返回 409 Conflict 结果。为 BigCouch 中的复制引入的冲突实施类似的应用程序级冲突解决方案的最佳实践是什么?我应该查看写入时冲突解决方案吗?

0 投票
1 回答
447 浏览

erlang - 490KB 插入使 BigCouch 崩溃

我有一个Q=256, N=3, R=2, W=2的 BigCouch 集群。一切似乎都已启动并正在运行,我可以读写小型测试文档。该应用程序使用 Python 并使用 CouchDB 库。集群有 3 个节点,每个节点都在 vxware 上的 CentOS 上,每个节点有 3 个内核和 6GB RAM。BigCouch 0.4.0、CouchDB 1.1.1、Erlang R14B04、Linux 版本 CentOS Linux 版本 6.0(最终版)在 EC2 上和 CentOS 版本 6.2(最终版)在 vmware 5.0 上。

启动应用程序尝试使用 412 个文档和总共 490KB 的数据进行批量插入。这适用于N=1,因此内容没有问题。但是当N=3我似乎随机得到以下结果之一:

  • 写入在大约 9 秒内完成
  • 写入在大约 24 秒内完成(中间没有任何时间)
  • 大约 30 秒后写入失败(插入了一些文档)
  • 大约 30 秒后 Erlang 崩溃(插入了一些文档)

vmstat显示接近 100% 的 CPU 利用率,top 显示这主要是 Erlang 进程,truss 显示这主要用于“futex”调用。磁盘使用率在操作过程中上下跳跃,但 CPU 保持固定不变。

日志显示可爱的消息,例如:

“无法加载验证功能 {{badmatch, {error, timeout}}, [{couch_db, '-load_validation_funs/1-fun-1-', 1}]}”

“节点 'bigcouch-test02@bigcouch-test02.oceanobservatories.org' 上的进程 <0.13489.10> 出错,退出值:{{badmatch,{error,timeout}},[{couch_db,'-load_validation_funs/1-fun -1-',1}]}"

当然还有 Erlang 转储。

从阅读其他人使用 BigCouch 的信息来看,这当然不是一个大的更新。我们的虚拟机似乎足以胜任这项工作。我可以用 cURL 和 JSON 文件重现,所以它不是应用程序。(如果有帮助也可以发布。)

谁能解释为什么 9 核和 18GB RAM 不能处理(3x)490KB 写入?

如果有帮助,请提供更多信息:

可以使用命令重现:将上面的 JSON 条目下载为 file.json