インメモリ データ構造を開発しており、永続性を追加したいと考えています。
これをすばやく行う方法を探しています。たまにヒープダンプをダンプすることを考えました。
この Java ヒープ ダンプをそのままメモリにロードする方法はありますか? それとも不可能ですか?
それ以外の場合、情報全体の高速書き込みと高速読み取りに関する他の提案はありますか? (シリアル化には時間がかかる場合があります)
-----編集された説明:-------- 私の記憶は小さな情報でいっぱいで、相互に参照している可能性があるため、シリアル化には私が必要になる場合があります効率的にすべての記憶をスキャンします。リロードも問題になる可能性があります。
一方、私は巨大な配列を定義することができ、作成した各オブジェクトを配列に入れます。リンクは、配列内の場所を表す長い数字になります。これで、この配列をそのままダンプして、そのままリロードすることができます。
ディスクスペースを利用する JRockit のような jvm もあります。そのため、そのままダンプし、非常に迅速に再ロードすることが可能かもしれません。私の主張を証明するために、Java ダンプには jvm のすべての情報が含まれており、迅速に生成されます。申し訳ありませんが、4 GB のシリアル化は秒ダンプに近いものではありません。
また、メモリはメモリであり、RAM メモリ ダンプをすばやく実行できるオペレーティング システムがあります。 https://superuser.com/questions/164960/how-do-i-dump-physical-memory-in-linux
考えてみると...これは、永続的なデータ構造にとって非常に優れた戦略です。過去 10 年間、インメモリ データベースについてはかなりの誇大宣伝があります。しかし、なぜそこに落ち着くのでしょうか?フィボナッチヒープが必要な場合-「ほぼ永続的」になるようにします。つまり、5 分ごとに情報を (すばやく) ダンプし、停電の場合には 5 分前のバックアップをとります。
-----編集された説明の終わり:--------
ありがとうございました。