FAL Labsには複数の東京製品と京都製品があります。
- Tokyo Cabinet と Kyoto Cabinet はどちらも軽量のデータベース ライブラリです。
- Tokyo Tyrant と Kyoto Tycoon はどちらも軽量データベース サーバーです。
東京と京都の製品の違いを誰か説明できますか?
FAL Labsには複数の東京製品と京都製品があります。
東京と京都の製品の違いを誰か説明できますか?
東京内閣はより完全で安定していますが、京都はまだ新鮮すぎて (今日は 2010 年 12 月 8 日です)、いくつかの問題があります。C++ で書かれた京都は、東京 (C で書かれたもの) よりも (はるかに) シンプルですが、このシンプルさにはギャップがあります。京都のパフォーマンスは東京より少し劣りますが、スレッドの方がうまく機能します (少なくともドキュメントではそう約束されています)。
公式ドキュメントから:
<< 2007年、東京キャビネットはQDBMの後継として以下の目的で開発されました。それらは達成され、東京キャビネットは従来のDBM製品を置き換えることができました。
(...)
2009 年には、QDBM の後継として、京都キャビネットが開発されました。兄弟品(東京キャビネット)と比較して、以下のメリットを追求しました。ただし、少なくともシングルスレッド操作では、東京キャビネットのパフォーマンスは京都キャビネットよりも高くなっています。>>
私は両方を使用しましたが、京都に問題があったため、依然として東京の方が好きです:ファイルハッシュデータベースを使用する京都内閣データベースでは、ファイルサイズの増加をどのように回避できますか? 誰も私を助けることができませんでした。私はまだそれを解決する方法を知りません。
私の個人的な経験では、Kyoto の方がコンパイルとインストールが簡単で、使いやすいことがわかりました。私は、東京のライブラリの依存関係と、ネイティブ ライブラリを Java インターフェイスにリンクする際の問題に大きな問題を抱えていました。京都ではすべてがうまくいき、最初の試みでうまくいきました。しかし、前にも言ったように、Tokyo を使用すると、データベースをより制御できるように感じます。
Tokyo Cabinet と Tyrant は LGPL であり、C で記述されています。Kyoto Cabinet と Tycoon は GPLv3 であり、C++ で記述されています。
Kyoto Tyrant はメモリ内の期限切れレコードをサポートしているため、memcached を置き換えることができます。
開発者は、京都* は東京* の後継者ではないと言いますが、それは単なるマーケティング戦略です。商用製品を開発するつもりがない場合は、Kyoto を使用してください。それはより新しく、より良いです。
また、開発者のブログ (日本語と英語の両方) を読み、ヘッダー ファイルを注意深く読むことをお勧めします (ライブラリを使用する場合)。
幸運を。
私のユースケースに関する2つの最も重要な違いは、TCには「テーブルデータベース」がありますが、KCにはないということです。
はい、任意のデータを文字列にシリアル化してアイテム値として保存できますが、値で検索できないか、データセット全体を反復処理して各アイテムを逆シリアル化するか、車輪の再発明を行ってデータに手動でインデックスを付ける必要があります。
東京内閣のTDBは、ネストされたデータ(インデックス、数値と文字列の比較、さらには「フィールド」内の正規表現)に対して優れたクエリ機能を提供します。京都のものはただのKV店です。TCは、強力なドキュメント指向データベースでもあります。
また、私が行ったテストによると、京都のプロトコルは HTTP ベースのみであり、よりオープンですが、東京のバイナリ プロトコルよりも低速です。