問題タブ [tokyo-cabinet]

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 投票する
2 に答える
955 参照

primary-key - 東京キャビネットで1対多の行を構築する方法は?

東京内閣の資料から引用します...

ハッシュテーブルのデータベースは、各キーがデータベース内で一意でなければならないため、キーが重複する複数のレコードを格納することはできません。

または tokyocabinet はタプルベースのキーを許可しますか?

1 対多のストアを設定する最良の方法は何ですか (クローラー 1 kw<->many docids など)

~B

0 投票する
1 に答える
455 参照

ruby - rubyのクラスメソッドを使用してオブジェクト間でDB接続を共有しますか?

PostfixSMTPアクセスポリシーの委任として使用するrubyスクリプトを書いています。スクリプトはTokyoTyrantデータベースにアクセスする必要があります。私はEventMachineを使用してネットワーク接続を処理しています。EventMachineには、新しい接続が作成されるたびにEventMachineの処理ループによってインスタンス化されるEventMachine::Connectionクラスが必要です。したがって、接続ごとに、クラスがインスタンス化されて破棄されます。

EventMachine :: Connectionのpost_initから(つまり、接続がセットアップされた直後に)Tokyo Tyrantへの接続を作成し、接続が終了した後に切断します。

私の質問は、これがdbに接続する適切な方法であるかどうかです。つまり、必要なすべての時間に接続を確立し、終了後に切断しますか?(プログラムが開始されたときに)一度DBに接続すると、プログラムのシャットダウン中にDBを切断する方がよいのではないでしょうか。もしそうなら、どのようにコーディングすればよいですか?

私のコードは次のとおりです。

に関して、

ラージ

0 投票する
5 に答える
992 参照

c++ - Tokyo Cabinet と可変サイズの C++ オブジェクト

東京キャビネット(C言語のオリジナルAPI)を使ったシステムをC++で構築しています。問題は、次のようなクラスを保存したいことです:

問題は、ベクトルと文字列が可変長であることです。void* (私のオブジェクト) を Tokyo Cabinet に渡して格納できるようにする場合、オブジェクトのサイズもバイト単位で渡す必要があります。しかし、それは簡単にはできません。

オブジェクトのバイト数を決定する最良の方法は何ですか? または、東京キャビネットに可変長オブジェクトを格納する最良の方法は何ですか?

私はすでにシリアル化ライブラリを探すことを検討しています。

ありがとう

0 投票する
1 に答える
394 参照

c++ - TokyoCabinet: hdb->close() でのセグメンテーション違反

TC ハッシュ データベースに約 800 万件のレコードを挿入した後、セグメンテーション エラーが発生しました。すべてが挿入された後、DB を閉じますが、コードのこの部分 (tchdb.c) でセグメンテーション違反をキャッチしました。

特にコメント行で。

DBは次のように開かれました:

DB は次のように調整されます。

.tch ファイルは約 2GB (2147483647 バイト) です。興味深いのは、約 800 万件のレコードを挿入した場合にのみ発生していることです。200 万または 300 万で、DB は問題なく終了します。テキスト ファイルからデータを読み取るため、800 万件のレコードを挿入するには約 3 時間かかります。

何か案は?

ありがとう

0 投票する
1 に答える
316 参照

message-queue - マルチサービス設定で東京キャビネットから変更をプッシュするテクニックは何ですか?

負荷分散/共有構成でエンドユーザーからの接続を処理する N > 1 の TCP ベースの接続指向 (読み取り: Web サイトではない) サービスがあるとします。

これらのユーザーは、一元化された Tokyo Tyrant データストア内の 1 つ以上のキーを更新するような操作を行います。

これらの変更を、同じプライベート ネットワーク (同じ色) で実行されている別のサービス インスタンスに接続している関心のあるユーザーにプッシュするには、何をお勧めしますか?

いくつかのアイデア:

データストアの更新が成功したら、サービス N から他のすべてのサービスに変更をブロードキャストします。

関心のある各ユーザーがログオンしているサービスを保存し、それらのサービスにメッセージを送信してから、関心のあるユーザーに中継します。これがIRCサーバー間の接続の仕組みだと思います(調査する必要があります)。

メッセージブローカー (RabbitMQ など) を実行します。関心のあるユーザーに代わって、各サービス X をキューにサブスクライブさせます。成功した「プット」に投稿する

さらに別のアイデアは、レプリケーション スレーブのふりをして、マスターに接続することです。

一般的に、CouchDB にあるが Tokyo Tyrant の「変更通知」を取得する方法を探しています。ただし、考え方はより一般的です。

Tokyo Tyrant のようなデータストアの代わりに永続的なキューを備えたメッセージ ブローカーを使用することをお勧めする場合は、検証などを可能にするためにどのようにフックするかを説明してください。

0 投票する
1 に答える
279 参照

macos - 東京キャビネット perl api libtokyocabinet.dylib、ファイルは必要なアーキテクチャではありません

なんてこった、

東京キャビネットのperl apiをコンパイルするのは私を夢中にさせています! 私はいつもこのエラーメッセージを持っています:

ld: 警告: /usr/local/lib/libtokyocabinet.dylib 内のファイルは必要なアーキテクチャーではありません

私は64ビットでtokyopキャビネットを再構築しようとしました

-arch x86_64

しかし何も変わらない..

私は mac os x 10.6 (snow leopard) を使用しています。

0 投票する
1 に答える
606 参照

python - 東京内閣がブロックされる条件

tcPythonのモジュールで東京キャビネットを使用しています。データを TDB 形式で保存します。書き込み中だけテーブルがブロックされると思っていました。残念ながら、ファイルが「ライターモード」で開かれている場合、他のプロセスがそのファイルから読み取ることができないことがわかります。それは標準的な動作、ラッパーの問題ですか、それとも何か間違っていますか? または、操作がブロックされる他のケースがあるのでしょうか?

0 投票する
1 に答える
858 参照

ruby - SimpleDB vs 東京内閣

SimpleDB と Tokyo Cabinet のパフォーマンスとスケーラビリティを比較した人はいますか? 現在、SimpleDB に対してプロジェクトをコーディングしており、TC のベンチマークを検討しています。誰かが既にそれを行っていて、特定のストレージと検索操作をテストする価値があるかどうかを教えていただければ幸いです。そうでない場合は、いくつかの直接比較を実行し、結果をブログに掲載します.

プロジェクトは、Amazon EC2 スモール インスタンスで Ubuntu 9.1 と Ruby 1.8.7 を使用しています (今のところ)。

0 投票する
2 に答える
690 参照

mongodb - スモール ビジネス アプリで NO-SQL の信頼性は?

私は、非 SQL エンジンを使用するか、小規模ビジネス向けのドキュメント管理システム用の通常の SQL エンジンを使用するかを決定しています。

私はfirebird/sqlサーバーの経験があり、信頼性の良いトラックを見つけました(特にfirebirdで)。

この市場は、くだらない「サーバー」(クローン製の PC、マヨリティ)、安価なハードディスク、RAID などをめったに使用しないものでいっぱいで、電源オフが正常な場所にあるものもあれば、UPS を持っていないものもあります。 ... (外部サーバーへのオフサイト自動バックアップを含めますが、内部設定は変更しません)。(私はそのような適切なセットアップに関するエンドユーザー教育について知っていますが、それに依存するのはばかげているので、ポイントに固執してください)

設計の観点からは、スキーマのないデータベースが私のシステムに適した方法ですが、実際のソリューション (MongoDb、Tokyo Cabinet など) のいずれかが火の鳥やサービスのクラッシュ、誤動作、乱用のようなものではないか心配です。データの破損は非常にまれです。

計画は、そこにオフィスのドキュメントを保存し、中央リポジトリを提供することです。

0 投票する
1 に答える
1209 参照

configuration - 東京キャビネットチューニングパラメータ

アプリケーションに適した Tokyo Cabinet (または Tokyo Tyrant) の構成を見つけようとしていますが、正確な方法がわかりません。いくつかのパラメータの意味はわかっていますが、微調整を行いたいので、それぞれの影響を知る必要があります。東京のドキュメントは非常に優れていますが、現時点ではそうではありません。

  • TCHDB -> *bool tchdbtune(TCHDB *hdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

bnumapowおよびを使用するにはどうすればよいfpowですか?

  • TCBDB -> *bool tcbdbtune(TCBDB *bdb, int32_t lmemb, int32_t nmemb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

lmembnmembbnumapowおよびをどのように使用しfpowますか?

  • TCFDB -> *bool tcfdbtune(TCFDB *fdb, int32_t width, int64_t limsiz);*

使用方法:widthlimsiz? 注: トピック内のすべてのタイプのデータベースを取得するためにこれを入れているだけです。これは非常に単純です。

  • TCTDB -> *bool tctdbtune(TCTDB *tdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

bnumapowおよびを使用するにはどうすればよいfpowですか?