バージョンとブランチを進化させることができるエンティティ(ファイルやライブラリ/パッケージなど)を指定すると、バージョンをナビゲートできるように最適化されたデータ構造を探します。 エンティティの特定のインスタンスに送信します。例えばQ:分岐されたエンティティとバージョン化されたエンティティの最適化されたデータ構造
(ビット不自然な例)のようなエントリが与えられる:Iは、(パッケージ管理やソースコード管理が上記アクセスセマンティクスと同様活用するので)、そのようなものがすでに存在している疑い
MySIMDIntristicsLib.v1~archMIPS.v1~fbsd.v1
MySIMDIntristicsLib.v1~archMIPS.v2~fbsd.v1
MySIMDIntristicsLib.v1~archX86.v1~win.v1
MySIMDIntristicsLib.v1~archX86.v2~win.v1
MySIMDIntristicsLib.v1~archX86.v2~win.v2
MySIMDIntristicsLib.v2~archX86.v1~win.v1
// get latest across all branches
get(Entity="MySIMDIntristicsLib", branch[(latest) "~"])
returns: "MySIMDIntristicsLib.v2~archX86.v1~win.v1"
// get latest across archMips/fbsd branch
get(Entity="MySIMDIntristicsLib", branch[(latest) "archMIPS~fbsd"])
returns: "MySIMDIntristicsLib.v1~archMIPS.v2~fbsd.v1"
// get earliest for archX86 v2 branch
get(Entity="MySIMDIntristicsLib", branch[(earliest) "archX86.v2~"])
returns "MySIMDIntristicsLib.v1~archX86.v2~win.v1"
。
私は上記のためのメモリ内のデータ構造を最新の/最も早いアクセス時間で探していましたが、降下の挿入/削除速度もありました。
残酷なアプローチでは、バージョンを持つことができるすべてのブランチに対してMin Max heapを使用して上記を実装できると思います。
しかし、そこにはすでに優れたものがあるかもしれません。 - 上記のデータ構造の明示的な実装があるかどうかはわかりませんでした。
上記のDSLは私自身のものですが、おそらくいくつかの穴がありますこのような種類のデータアクセスに適したDSL/APIがあれば、同様に学びたいと思っています。
ThxをH2 Database Engine、HSQLDB、CQEngine、など。しかし、私は上記の問題のために明示的に設計されたデータ構造を探しています。これは私のナビゲーションルーチンによってメモリ内で使用できます。 –
適切なインデックスを持つ正しいデータベース・テーブルとリレーショナル・データベース・テーブルは、上記の問題の明示的に設計されたデータ構造です。がんばろう。 – mfulton26