2009-05-15 10 views
0

私が取り組んでいるいくつかのプロジェクトでは、永続的なキーバリューストア(memcacheのようなもの)が必要です。理想的にはサーバーとして動作します。それは本当に効率的である必要があります。私はmemcachedbが存在することを知っていますが、後で取り入れる必要がある多くのカスタム機能が存在するので、自分自身でそれを書いてみたいと思います。私はおそらくこれをC++で書いています(そうするべき正当な理由があれば、おそらくCまたはJavaでしょう)。効率的なキー値ストア(例:memcache)/単純なデータベースの作成方法を教えてください。

データベースの実装(Bツリー、インデックスなど)を調べる必要がありますか、このような仕事には不要ですか?ほとんどのコンテンツをディスクに保存するのに、キャッシュにメモリを利用してすぐにアクセスできる優れた方法は何でしょうか?

ありがとうございました。

答えて

2

しようとした真のBDBからヒップTockyo Cabinetにキーと値の店の多くは、あります。自分で実装する必要がある場合は、Varnishソース、特にArchitectureページを確認することをおすすめします。

+0

これらのリンクをありがとう - 本当に役に立ちます。 BDBを使った経験はありますか?私はDBMのパフォーマンスについての意見を聞いたことがありますが、東京キャビネットの方が速いのですか? – HarryM

+0

BerkeleyDBは、できるだけ速いです。 しかし、最近では、純粋なJavaのSQLデータベース(読み込み:HSQL)でも、RDBMS/SQLの機能のすべてまたはほとんどを持っていながら、非常に優れたパフォーマンスが得られます。 –

6

私は実際には、サードパーティの実装を再検討して使用することを本当にお勧めします。

ドメインの一部ではない多くの問題を抱えたい場合は、B +ツリーなどのデータベース実装手法を検討してください。

+0

回答ありがとうございます。私は自分自身のことを考え直しています。私が取り組んでいるプロジェクトの1つは、数値データの大きな行列を格納する必要があります。列と行の数が増えます。このような仕事に適した既存のシステムを知っていますか? – HarryM

+0

もちろん、必要なライセンスにも依存します。あなたが商業図書館を開発しているなら、あなたの選択は非常に限られています。 –

3

自転車を改造しないでください。

あなたはストレージのユーザーになる予定です。つまり、主な懸案事項はビジネスロジックであり、DB機能の詳細ではなくUIである可能性があります。 DBの実装者に任せてください。あなたの主要な仕事に集中してください。

たとえば、HBase(Google Bigtableのアナログ)を使用してみてください。