タグ

2020年12月19日のブックマーク (3件)

  • Epoch-based {Logging, Checkpointing, Index} - nikezono

    #長編 皆さん,初めまして.NTT SICの中園 (nikezono) です. この記事は 自作DBMS Advent Calender 2020 の 18 日目の記事です. この記事では,前日にご紹介したLineairDBを実装するうえで用いたインメモリDBの最適化手法について解説します. 3つの最適化があり,それぞれ{Logging, Checkpointing, Index}についての話になります.3日に分けようかと一瞬思いましたが,どれも小粒なのでまとめました. 未執筆のリンク先 が多く含まれる記事になるかと思いますが,随時書いていきます. 記事の構成 1. インメモリDBの性能上の問題 1. a Logging 1. b Checkpointing 1. c Index 2. 銀の弾丸? Epoch Framework 3. Epoch Frameworkを使った最適化手法3種

    Epoch-based {Logging, Checkpointing, Index} - nikezono
    koba789
    koba789 2020/12/19
    Epoch Framework が Long Transaction に弱い問題なぁ。Foundation DB とかはトランザクションに時間制限あったようなそういえば(あれが epoch framework ベースなのかは知らない)
  • Concurrency Control Protocolをゼロから設計する - nikezono

    #長編 皆さん,初めまして.NTT SICの中園 (nikezono) です. この記事は 自作DBMS Advent Calender 2020 の 17 日目の記事です. この記事では,自作DBMSにトランザクションの機能を載せる際に必要な "Concurrency Control" (以下CC) について,プロトコルを設計する際に必要なノウハウを紹介します. プロトコルの考案という作業は,既に提案されているものを追実装するのとはかなり趣が異なります.具体的には,数理的な証明にかける作業の割合がかなり大きくなります.この作業を怠って,雰囲気で実装をしたり改変をしたりすると,ほぼ間違いなく処理の正しさが担保されません. しかし,得られるリターンは大きく,特定のワークロードを狙ったデータベースであれば,それに特化した性能を出すプロトコルを作ることが容易くできるようになります.特に,インメモ

    Concurrency Control Protocolをゼロから設計する - nikezono
    koba789
    koba789 2020/12/19
    読んでるとよだれが出る。SSN 気になってるのだよなぁ
  • In Memory DBMS 実装記録 - DKDB

    この記事は自作DBMS Advent Calender 2020 の19日目の記事です。 セキュリティキャンプ全国大会に参加してきました。 ここでは、キャンプでフルスクラッチで作ったインメモリDBMSの紹介をしていきたいと思います。 実装したもの DBMSを作るといっても一人で作るにはもちろん限界があります。 そのため、実装を進める前にがんばる方向性を決める必要があります。 僕が選んだのは「トランザクションの並行制御」です。 実装したDBMSは次のようなものです。 Key-Value Store Read / Insert / Update / Delete 操作に対応 Index は標準ライブラリの concurrent hash map データの永続化、Crash Recovery を行う Conflict Serializability CC protocol は S2PL, MVT

    In Memory DBMS 実装記録 - DKDB
    koba789
    koba789 2020/12/19
    ちゃんと CC 実装しててええね。私は No-Wait な S2PL を実装してなんも面白くないなと思って投げ捨ててしまった。私のように steal アリな on-disk 縛りだと Undo Log をサボれないのもダルいポイント……