タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

SkipListに関するterurouのブックマーク (2)

  • LevelDB雑感 - くまメモ

    LevelDBが公開されて少し経ちました。 全体ではLog Structured Merge Treeという物を実装しているようですが詳しいところは知りません。 実装を少し読んだのですが内部で使われているSkipListにいくつも思い切った設計がありました。 (参考)togetter「LevelDBを読む人たち」 http://togetter.com/li/136983 SkipListそのものはMulti Reader / Single Writerな実装なのですが おもしろい事にReaderとWriterが同時に走っても大丈夫なように作られています。 Reader-Reader : 共存可能 Reader-Writer : 共存可能 Writer-Writer : 共存不可 Readerが常に走り続けている状況を想定した上で、Writerの足を止めたくないんでしょうね。 為される事の

    LevelDB雑感 - くまメモ
  • 要素の挿入、削除、ランダムアクセスが全部高速なリストを作った - kaisehのブログ

    スキップリスト(Skip List)は1990年に発表された比較的新しいアルゴリズムで、要素の挿入や削除、検索を平衡木と同等のパフォーマンスで実行可能なリスト構造です。 Skip Listは連結リストの多層構成になっています。路線に例えると、最下層のリンクは各駅停車のように、全要素を結んでいます。一方、上層のリンクは急行や特急のように、途中の要素をスキップするようになっています。この路線を特急→急行→…→各駅と乗り継ぐことで、目的の要素に高速に到達できる仕組みです。もっと詳しい解説はこちらやこちらにあります。 で、ここからが題です。Skip Listの実装はいくつも出ているんですが、Sorted Listとしての実装ばかりで、要素を任意順序で格納できてランダムアクセス(indexを指定してのアクセス)可能なSkip Listが見つからなかったので、自分で作ってみました。 通常のSkip

    要素の挿入、削除、ランダムアクセスが全部高速なリストを作った - kaisehのブログ
    terurou
    terurou 2011/06/07
    SkipList, SkipListSet
  • 1