0

これまで取り組んだことのない方法での ID の処理に直面しています。これに対する驚くべき解決策はないと思いますが、質問したほうがよいと思いました。

オブジェクトのハッシュテーブルがあります。

それぞれは id で識別されますが、これはデモ用の数字です。実際にはGUIDですが。

オブジェクトの数は無制限で、この演習では数十億の規模です。

アプリケーション ロジックは、ID のグループ間に変換が存在することを定義します。たとえば、ID のグループを{4, 7, 12}に変換するように定義できます{5, 16}。すべての ID は、任意の数のグループ変換に存在できます。グループ化された翻訳からのグループは、他の複数のグループに翻訳できますが、それぞれが他のグループとは独立した翻訳ルールです。グループ化翻訳のグループには、1 つの ID から数万の ID を含めることができます。空のグループは許可されていません。{3} => {3}またはのような自己翻訳{5, 17} => {5, 17}は許可されます。ID やグループの間には、数学的な関係や計算可能な関係はなく、任意に定義されます。

翻訳を実行できるデータ構造および/または検索アルゴリズムを探しています。翻訳のためにグループをクエリする速度は重要であり、O(1) またはそれに非常に近い必要があります。

インデックスへの翻訳の追加または削除は、スケジュールされたメンテナンス セッションで実行でき、非常に高速である必要はありませんが、たとえば最大 20% ~ 30% のダウンタイムで実行できるほど高速である必要があります。

この説明では、メモリ使用量は関係ありません。ID のハッシュ テーブルを格納するために必要な同じ規模のストレージが何倍も利用可能であると仮定します。

既知のアルゴリズム、アイデア、提案、これが不可能であるという証明はすべて歓迎します。

4

0 に答える 0