問題タブ [key-value-store]
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.
redis - Redis - データ構造への変更の処理
私は Redis を試してきましたが、Redis がもたらすスケーラビリティがとても気に入っています。ただし、既に運用されているシステムのデータ構造への変更をどのように処理するのか疑問に思っています。
たとえば、ユーザーに関する情報を収集していて、user_id をキーとして使用し、ユーザーに関するその他のデータをコンマ区切りの値としてダンプしているとします。
たとえば、約 100,000 レコードを処理した後、クエリを実行する必要があることに気付きemail
ました。既存のデータのスナップショットを取得し、新しいインデックスを作成するにはどうすればよいでしょうか。
ruby - 低メモリ要件とRubyインターフェースを備えたデータベース
メモリが少ない小さな仮想サーバーには、メモリ要件が低いデータベースが必要です。現時点では、SQLiteと京都内閣または東京内閣で立ち往生しています。データベースにはRubyインターフェースが必要です。
「複雑な」クエリ(単一のキーを検索するよりも複雑)とタプルをキーとして使用しているため、Key-Valueストアは避けたいのが理想的です。一方、固定スキーマを使用したくないので、SQLデータベースの計画と移行の作業を避けたいと思います。データベースを使用するアプリケーションは1つだけなので、データベースサーバーも必要ありません。
私に何かアドバイスや数字はありますか?
java - Java用の単一ファイルの永続的なソート済みKey-Valueストア(Berkeley DBの代替)
Berkeley DB(JE)ライセンスは、取引のキラーになる可能性があります。少数の顧客向けのJavaアプリケーションがありますが、デスクトップアプリケーションであるため、私の価格では個々のインスタンスのライセンスをサポートできません。
Berkeley DBに代わる推奨Javaはありますか? 商用またはその他(優れたKey-Valueストアの実装は重要なものになる可能性があります。私は他の場所でメンテナンスを延期することを好みます)。後続のキーサブセットを反復処理する必要があるため、ハッシュストア以上のものが必要です。基本的なハッシュストアはその検索をO(m * n)し、デスクトップマシンではストアが約50〜60GiBになると予想します。バッキングストアを単一のファイルに保持することをお勧めできる人には、追加のメリットがありますか?
nosql - 読み取りのみを提供するKey-Valueデータベースは非常に高速ですか?
私たちはScalaでプロジェクトを行っており、主に読み取り操作を提供し、非常に高速に実行するために必要なKey-Valueデータベース(マップなど)が必要です。
- エキゾチックなクエリのサポートや複雑な検索ロジックは一切ありません。地図のように、キーを指定して値を取得するだけです。条件なし、結合なし、何もありません。キー->値
- ちなみに、値はそれ自体がいくつかの文字列のリストなどのマップです。少し長いことを意味します(重要な場合)
- 読むためだけに使用します。dbの最初の入力、またはいくつかの非常にまれな更新、あるいはdbの外部で処理できる可能性のある更新についての書き込みは期待されていません...
私はMangoDBとmemcachedDBに向けられてきましたが、Mangoはクエリが得意であり(これは私に価値を追加しません)、memcacheDBはすべて配布に関するものです(私のプロジェクトでは問題ではありません)。これまでのところ、RDBMS(MySQLなど)を活用することを考えていますが、NoSQLの世界にはもっと良いオプションがあるのではないでしょうか。
json - オブジェクトのプロパティをredisに保存する
いくつかのプロパティ(ID、Name、Surename、Age)で構成されるオブジェクト(User)があるとします。このオブジェクトをredisに保存するのに適した方法はどれですか?
- 各プロパティ値を専用キーに保存します。例:user:{id}:id、user:{id}:name、user:{id}:surename、user:{id}:age
- Userオブジェクト全体を1つのキーにJSON文字列として格納します(例:user:{id}:json)(キーの値は次のようになります:{"ID":123、 "Name": "Johny"、 "Surename": 「ブラボー」、「年齢」:22})
.net - .NET-高速で軽量な永続的なKey-Valueストレージ
.NET用の永続的なKey-Valueストレージを探しています。要件は次のとおりです。
- ストレージは、文字列で識別され、バイト配列である値を持ついくつかのオプションの(名前付き)プロパティを持つオブジェクトに使用されます。SQLソリューションの場合、1つの文字列-> idテーブル、および複数のid->blobテーブルとしてモデル化します。
- 予想されるデータ量は数メガバイトです(現在、10 Mbを超える可能性は低いですが、100 Mbにスケールアップすると便利です)
- 軽量-できれば単一アセンブリで、外部アプリケーションなし
- 読み取りは書き込みよりも頻繁で、少なくとも100倍です。
- 高速な読み取り/書き込みアクセス-データの更新に対するメモリ内ストレージと遅延書き込みを期待しています。定期的に非同期書き込みを生成できます。ストレージがそれを行う場合はボーナスポイントが発生します。
- アトミックI/O-書き込み中にプロセスが終了した場合でも、データベースが破損することはありません。それ以外の場合、データは重要ではありません。つまり、追加の冗長性は必要ありません。
現在、SQLiteはここで機能すると思います。ただし、それは少しやり過ぎのようです。SQLの完全なサポートではなく、Key-Valueストレージのみが必要です。bdbやlibdb-dotnetバインディングについても聞いたことがあります。これはより軽量のようですが、パフォーマンス/一貫性の特性はわかりません。
誰かがここで何かをお勧めできますか?追加のリファレンスを歓迎します(つまり、.NET Frameworkに仕事をすることができるものがあれば素晴らしいでしょう)、SQLiteまたはlibdb-dotnet(または一般的にはbdb)または自家製のソリューション(痛みがない場合)の経験もあります。
ruby-on-rails - Railsの同じアプリで異なるデータストアを使用していますか?
つまり、これは多かれ少なかれ実装の質問です。これは私が持っているシナリオです。基本的に、データストア、ユーザーアカウント、トランザクションなどとしてMySQLを使用するアプリがありますが、堅牢なグラフ作成機能を追加すると、データは次のようになります。 Redisに保存されていますが、基本的に私の質問は次のとおりです。
それは可能ですか?また、別のデータストアをすでに別のデータストアに依存しているアプリに統合するためのベストプラクティスは何ですか?Rackを使用してレポートを生成できますか?等...
RDBMSやNoSQLストアとは大きく異なるメリットを提供するキー/バリューストアが増えるにつれ、このようなソリューションの必要性が高まると思うので、これを一種のオープンな議論に変えたいと思います。それらにはすべて利点がありますが、1つのソリューションですべてをカバーすることはできません。
考え?
key-value-store - JavaAPIを使用したkyotoキャビネットの範囲クエリ
Key-Valueストアの使用に興味があり、kyotocabinet
できればバルクインターフェイス(バイト配列を返す)を使用して範囲クエリを実行したいと考えています。Java APIを確認kyotocabinet
しましたが、これを行うための特定の方法が見つかりませんでした。範囲クエリはKey-Valueストアで非常に一般的であるため、範囲クエリを実行した経験がある人はいないかと思いましたkyotocabinet
。
android - Androidでの永続的なKey-Valueストア(大きな値)に最適なメカニズムは何ですか
値が画像ビットマップであるAndroidデバイスで高速のKey-Valueストアを使用したいと思います。ストアはディスクによってバックアップされ、ディスクIOを最小限に抑えるために、ある程度のキャッシュを提供する必要があります。マルチスレッドアクセスが望ましいですが、必須ではありません。
要件を満たしているように見えるJavaBerkeleyDBを見てきました。パフォーマンスが優れている他のライブラリはありますか?または、Berkeley DBはAndroidプラットフォームでうまく機能しますか?
単一のキーと値のペアをメモリに常駐させる必要があるソリューションでは問題ありませんが、キーと値のペアのセット全体を保存すると、デバイスのメモリのサイズを超える可能性があります。
algorithm - リーダー選挙に関するいくつかのアイデア
リーダー選挙を実行しようとしています。最近はそれを実現するためにキーと値のストアを使用することを考えていますが、スケーラビリティと一貫性の問題に関してそのアイデアが信頼できるかどうかはよくわかりません. 実際の展開には数千のノードがあり、選択は中央機関や飼育係のようなサービスなしで行われる必要があります。
さて、私の質問は次のとおりです。
キー値ストア (できれば riak のような CA チューナブル) を使用してリーダー選挙を実行できますか? リーダーの選出に KV ストアを利用することの長所と短所は何ですか?
ありがとう!
編集:いじめっ子アルゴリズムのアプローチにはもう興味がありません。