Skip to content

Instantly share code, notes, and snippets.

@acevif
Last active June 28, 2023 04:35
Show Gist options
  • Save acevif/35cf6a740c55290ab7e00898490b67d8 to your computer and use it in GitHub Desktop.
Save acevif/35cf6a740c55290ab7e00898490b67d8 to your computer and use it in GitHub Desktop.

DB・データ構造 メモ

ACID

ANSI/ISO SQL Standard

  • SERIALIZABLE ⸺ 安全だが遅い。とはいえトランザクション同士の順序までは保証されない。

  • REPEATABLE READ ⸺ Phantom Readのリスクがある。

  • READ COMMITTED ⸺ Phantom Read, Non-Repeatable Readのリスクがある。

  • READ UNCOMMITTED ⸺ Dirty Read, Phantom Read, Non-Repeatable Readのリスクがある。 感想: いつ使える?

  • Dirty Read ⸺ 不完全/計算途中のデータが読めてしまうリスク

  • Phantom Read ⸺ 削除済みやこれから追加されるはずのデータが読めてしまうリスク

  • Non-Repeatable Read ⸺ 同じトランザクション中なのに、読むたびに異なり矛盾するリスク

NoSQL

  • BASE

    • Basically Available
    • Soft-State
    • Eventual Consistency
    • ACID ⇄ BASE は対義語になっている。化学の酸⇄塩基にかけたシャレ。
  • Linearizability ⸺ Serializability(直列化したときと同じ結果になる)とは別!!! 実時間。

  • External Consistency

  • Quiescent Consistency

  • Sequential Consistency

  • Release Consistency

  • Causal Consistency

    • →Vector Clock
  • PRAM consistency

  • Read Your Write Consistency

  • Eventual Consistency

  • https://qiita.com/kumagi/items/3867862c6be65328f89c

  • 論理クロック

その他

  • CAP theorem
  • MVCC
  • Split brain
  • two phase commit
  • voting
  • starvation
  • concurrent / parallel
  • critical section
  • ポリグロット・パーシステンス / マルチモデルデータベース

よさげな資料

このノートについて

  • 昔のメモやカードを整理したり、勉強中のものを書き込んだりするノート
  • DBだけでなく並行・並列プログラミング・分散コンピューティングの情報が混じってしまっているが、現代におけるDBの問題って大体並行並列が関わるからまぁこれでいい気もする。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment