私は NoSQL が初めてで、構築しようとしているアプリケーションに最適な NoSQL 実装を見つけようとして頭を悩ませています。
私の Java アプリケーションは、単層ニューラル ネットワークをモデル化するため、数百万から数十億のエントリを含むインメモリ ハッシュマップを必要とします。現在、Troveを使用して、プリミティブをキーと値として使用できるようにして、マップのサイズを縮小し、アクセス速度を上げています。マップは、外側のマップのキーが long で、内側のマップが long/float キー/値を持つマップのマップです。
アプリケーションの起動時に、ディスクからマップのマップに保存された状態を読み取ることができる必要があります。マップのマップへの変更も、継続的に、またはスケジュールされた間隔に従って、ディスクに保存する必要があります。
私は最初、OrientDBのドキュメント DB とオブジェクト DB に惹かれましたが、現時点ではどちらが優れているかはまだわかりません。その後、 Redisに出くわしました。これはキー バリュー ストアであり、ディスクにダンプできるインメモリ データセットで動作し、マスター/スレーブ レプリケーションを含みます。ただし、マップの値が文字列以外になる可能性があるようには見えません。
自分のニーズに対するソリューションを適切な場所で探していますか? 現在、Redis のメモリ内およびマスター/スレーブの側面が気に入っていますが、データ構造が単純な文字列よりも複雑で、プリミティブなキー/値型で Trove を使用できるため、OrientDB のオブジェクト/ドキュメント機能が気に入っています。は非常に有利です。その逆よりも、読むのが安くて書くのが高いほうがいい。
考え?