問題タブ [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.
nosql - シャードをあるbigcouchサーバーから別のサーバーに移動する(バランスを取るため)
私は現在、大量のデータ(1日あたり1500万レコード)についてbigcouchをテストしています。
データのビューを生成する必要がある場合、2台のマシンの一方がもう一方よりもはるかに弱いため、バランスの問題が発生します。その結果、より良いマシンは完成し、何の関係もありませんが、より弱いマシンにはまだやるべきことがたくさんあります。(シングルコアとデュアルコア)
私の考えは、いくつかのシャードを弱いマシンから別のマシンに移動して、ほぼ同時に終了するようにすることです。
したがって、私の質問は、どうすればシャードをウィーカービッグカウチサーバーからより良いサーバーに移動できるかということです。
よろしくお願いします!
アンディ
node.js - 3 つのノードから 1 つがダウンすると bigcouch が停止する
プロジェクトとして bigcouch を使用しています... 3 つのノード (デフォルト) を開きますが、1 つのノードが突然ダウンする (1 つのサーバーがクラッシュする) まで問題ありません。
1 つのノードがダウンすると、入力プロセスがスタックするのはなぜですか? ドキュメントを読みました... N = 1 (レプリケート定数)、R = 1 (クォーラム定数の読み取り)、および W = 1 (クォーラム定数の書き込み) を設定しようとしました...
私のconfは、201ステータスを返すのに十分なサーバーで1回の書き込みと1回の複製が発生した場合を意味していると思います。
そして、bigcouch githubで問題を起こしました..設定をデフォルトに設定する必要があるという答えが得られました...すでに設定をデフォルトに設定していますが、3つのノードから1つがダウンした場合、bigcouchはまだスタックしています...
この 3 つのノードを「ノード」データベースに入力します。
bigcouch@bigserver1.server1
bigcouch@bigserver2.server2
bigcouch@bigserver3.server3
そして、このエラーは、1つのノードがダウンした状態でfutonを介してデータベースを作成すると発生します...
{timeout,[{{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分間動かなくなりました
database - cassandra と bigcouch のどちらかを選択する必要がある場合、どの基準を考慮する必要がありますか?
長所/短所は何ですか? どちらが P2P クライアントにより適しているでしょうか?
couchdb - Bigcouch クラスタ構成
私は現在 bigcouch を試していますが、クラスター内のノードを識別する方法がよくわかりません。たとえば、開発クラスターは、ポート 15984/15986、25984/25986、および 35984/35986 でリッスンする 3 つのノードで構成されます。クラスターにノードを追加すると、ID「dev2@127.0.0.1」および「dev3@127.0.0.1」のドキュメントがノード データベースに追加されます ( http://bigcouch.cloudant.com/developを参照)。ポート番号はどこにありますか?ノード 1 は、ノード 2 と 3 が上記のポットをリッスンしていることをどのように認識しますか? 関連する質問: 別のホストにあるノードをこのクラスターに追加したい場合、どうすればよいですか? 「dev1@IP」を追加してもうまくいかないようです。bigcouch はそれに接続できません。
erlang - BigCouch クラスタ接続の問題
2 台の異なるマシンで BigCouch を正常にセットアップしました。どちらもローカルで非常にうまく実行されます。次のコマンドのいずれかまたは両方を使用してクラスターに参加すると: curl -X PUT machine1:5986/nodes/bigcouch@machine2 -d {} curl -X PUT machine2:5986/nodes/bigcouch@machine1 -d {}
私は常に肯定的な結果を受け取ります。データベース ノードには、bigcouch@machine2、bigcouch@machine1 という 2 つのドキュメントが含まれています。しかし実際には、それは常に間違っています。BigCouch のコマンド ラインにこのエラー メッセージが表示されました
=*ERROR REPORT==== 9-Dec-2011::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 小枝 <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.560205Z machine1 小枝 <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 を実行できるようにし、ノードが同じマジック クッキーを設定するよう求めています。私のマシンは互いに ping を実行できますが、マジック クッキーとは何ですか?
couchdb - BigCouch クラスターからノードを削除するには?
ノード データベースに PUT を送信するだけで、4 つのノードを持つ BigCouch クラスターを作成しました。
すべてのノードが適切に登録されました。メンバーシップに GET を送信すると、4 つのノードすべてが返されます。
問題は、ノードを削除する方法です。
ノードデータベースに DELETE を送信しようとしました
しかし、私はエラーが発生しました:
ノード d を停止すると、メンバーシップが返されました。
そのため、ノードd
は消えまし"all_nodes"
たが、まだ"cluster_nodes
メンバーとして存在しています。
この状態では新しいデータベースを作成できません。メッセージを受け取るたびに:
それを修正する方法はありますか?
couchdb - カウチデータベース Max_document_size
画像を提供するために bigcouch を使用します。画像の最大サイズは 5MB です。設定値は 64MB です。近いところに変えたほうがいいですか?その背後にある理由は何ですか?
ありがとう、
キャスリーン
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:321) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) で java.lang.ClassLoader.loadClass(ClassLoader.java:266) できませんでしたメインクラスを見つけます: com.github.rnewson.couchdb.lucene.Main. プログラムは終了します。
それをbigcouchと統合する方法..?
起動できないので、bigcouch との統合を試みることができません...
couchdb - BigCouch でのレプリケーションによって発生した競合への対処
CouchDB Replication and Conflicts wiki ページでは、with を使用_bulk_docs
しall_or_nothing=true
て新しいバージョンのドキュメントを強制的に書き込むことを提案しています。これにより、書き込み時に競合が発生する場合でも、その後の読み取りではすぐに解決されます。私はこれを実装しましたが、概念的にはうまくいくようです。
ただし、BigCouch はセマンティクスをサポートしていないall_or_nothing
ため、バルク ドキュメントへの書き込みで 409 Conflict の結果が返される可能性があります。BigCouch でのレプリケーションによって発生した競合に対して、同様のアプリ レベルの競合解決を実装するためのベスト プラクティスは何ですか? 代わりに、書き込み時の競合解決を検討する必要がありますか?
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、EC2 上の Linux バージョン CentOS Linux リリース 6.0 (最終版) および vmware 5.0 上の CentOS リリース 6.2 (最終版)。
アプリケーションを起動すると、412 個のドキュメントと合計 490 KB のデータを使用して一括挿入が試行されます。これはN=1で問題なく動作するため、内容に問題はありません。しかし、N=3の場合、次のいずれかの結果がランダムに得られるようです。
- 約9秒で書き込み完了
- 書き込みは約 24 秒で完了します (間に何もありません)
- 約 30 秒後に書き込みに失敗します (いくつかのドキュメントが挿入されました)。
- Erlang は約 30 秒後にクラッシュします (いくつかのドキュメントが挿入されました)。
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 の使用について読むと、これは確かに大きな更新ではありません。私たちの VM は、この仕事に十分対応できるように思えます。cURLとJSONファイルで再現できるので、アプリではありません。(それが役立つ場合は、それも投稿できます。)
9 コアと 18GB RAM が (3x) 490KB 書き込みを処理できない理由を誰か説明できますか?
役立つ場合の詳細情報:
- 長いクラッシュ レポートを含むbigcouch.logエントリ
- 繰り返し失敗するJSON エントリ
- EC2 マシンからのerl_crash.dump m1.small が 500 MB のヒープを割り当てようとしている
コマンドで再現可能: 上記の JSON エントリを file.json としてダウンロード