2011-02-02 10 views
1

私はネイティブコードアプリケーションに永続性を追加するソリューションを探しています。シンプル(SQLなし)ですばやく、最も重要な信頼性を備えている必要があります。シンプルで高速で信頼性の高いデータベース(NoSQL)

私が考えることができる最良のアプローチは、メモリマップされたファイルを使用することです。これは単純で高速ですが、単純な値をプレーンデータ配列に "メモリ"で格納するだけです。しかし、私はそれが非常に信頼できるとは思わない - 停電は、データベースが矛盾した状態または壊れた状態のままになる可能性があります。メモリマップされたファイルのグループをトランザクションでディスクに同期させることができれば解決できるはずですが、可能だとは思いません。また、ファイルシステムがスナップショットやCOW複製(例えばBrtfs)をサポートしていない限り、バックアップはファイルのコピー中にアプリケーションを完全に停止する必要があることを意味します。

もっと良いアイデアはありますか?

+0

メモリ≠持続性。 – coreyward

+1

SQLはありません、SQLiteはどうですか?あなたが避けようとしているデータベースですか? SQLiteは単なるフラットファイルです。 – caesay

+0

@coreyward:ええと、メモリマップされたファイルは何ですか?ファイルの「メモリ」を編集すると、ディスク上のファイルも編集されます。ただちに編集する必要はありません。 @トミー:私は文字列、文字列エスケープなどとの無意味な変換を避けたいだけです。 –

答えて

0

あなたの要件のリストはRedisのように聞こえます。詳細については、http://redis.io/を参照してください。

カッサンドラも可能です。詳しくは、http://cassandra.apache.org/を参照してください。

+0

彼はもっと簡単な解決策を探していると思う。 – arthurprs

+0

ありがとうございます。私はカサンドラを見ましたが、それは過剰なもののようでした。スケーラビリティに重点を置くものは、私のニーズにとってはおそらく多すぎるでしょう。 –

0

RocksDBまたはlevelDBは、他の偉大なオプションです。

関連する問題