SSDでトライを作成する必要があります。トライが非常に大きいため、あまり RAM を使用できませんが、4 GB の RAM は問題ありません。
現在、私は次の方法でそれを行うことを考えています:
- 1 つのメモリ マップト ファイルの使用
- オブジェクトを protobuf でシリアライズし、ファイルの位置と長さで他のオブジェクトへのポインターを変更する
今、私は役立つツールを探しています。オブジェクト (ノード) が大きくなると問題が発生します。ファイル内でこのオブジェクトの新しい場所を見つけて、このオブジェクトへのすべてのリンクを変更する必要があります。そして、ファイルにギャップが残っています。次に、ツリーを圧縮し、すべてのオブジェクトのすべての位置を変更してギャップを埋める必要があります。各オブジェクトの後にいくらかのスペースを残すと、非常に多くのスペースが必要になります。
ライブラリを知っていますか、この問題を解決するためのヒント、またはこれらすべてをプログラミングするのに役立つヒントはありますか?