ロックフリーの二重リンクリストに関する研究は数多く存在します。同様に、ロックフリーのスキップリストにはたくさんのリサーチがあります。しかし私が知る限り、ロックフリーの二重リンクスキップリストは管理していません。誰かが逆の研究を知っているのですか、それともなぜそうなのでしょうか?ロックフリーの二重リンクスキップリスト
編集: 具体的なシナリオは、高速分位数(50%、75%など)のアキュムレータを構築するためのシナリオです。サンプルはO(log n)時間内にスキップリストに挿入されます。イテレーターを現在の分位点に維持することによって、挿入された値をO(1)時間内の現在の分位点と比較することができ、挿入された値が分位子の左右にあるかどうか、結果として移動する必要があります。これは、前のポインタを必要とする左の動きです。
私が理解しているように、一度に複数のスレッドを挿入したり削除したりしても、以前のポインタを一貫して保つことは難しいでしょう。私は、このソリューションには、ポインターマーキングの巧妙な使用がほぼ確実に関わると思います。
したがって、リストに項目を追加し、各分位点が開始値、範囲、および分位点の開始項目へのポインタを知るように分位データを調整するたびに、私は推測しています、スキップリストが汚れている場合、リクエストベースで分位数情報を計算するのは遅すぎますか? – johnnycrash
@ johnnycrash挿入するたびに、各分位点の値がわかるので、新しい値が分位点より大きいか小さいかを知ることができ、分位点を単位で前後に移動する必要があるかどうかを知ることができます。私はあなたが範囲によって何を意味するか分からない。分位数は常に単一の値です。このスキームでは、最終的にスキップリスト方法の定数係数はナイーブメソッドよりも高かったが、操作数が増加するにつれて非常によくスケーリングされた。分位点を更新するためのコストはインサートごとに一定でした。 – tgoodhart