Neunomizuの日記

俺だけが俺だけじゃない

# CMU DB 16. Concurrency Control Theory

tags: CMU DB

授業

今回はconcurrency(並行)についてやります.同時に1つのタスクしか出来ない中,複数のタスクを処理することです.

  • transactions

    • 1つ以上の一連の処理を実行することを言う.
    • 基本的な変化の単位
      • これ以上分けられない
    • transactionはDBMSで同時に1つしか動かない
    • 新しいファイルをDBからコピーして,そのファイル変化を加える
    • 正しさを確保するのは難しい.
    • 高速に実行することが難しい
  • definitions

    • DB: 名前付けされたデータオブジェクトの固定されたセット
    • Transaction: 一連の読み書き処理
  • ACID

atomicity

DBMSトランザクションatomicだと保証する.

  • logging
    • DBMSは全ての行動を記録することで,中止したトランザクションを巻き戻すことが出来る.
    • レコードの巻き戻しはメモリ上でもディスク上でも管理する
  • shadow paging

consistency

DBによって表現される世界は論理的に正しい.データについて尋ねられた質問は全て論理的に正しい答えが与えられる.

  • database consistency
    • DBは正確に現実世界をモデル化し,無傷な制約を守る.
  • transaction consistency
    • txnが始まる前にDBが一貫していれば,txtもまた一貫する.
    • applicationの責任

isolation

DBMStxnの作用の間を空けることで,並行性を達成している.

  • serial schedule
    • 異なるtxnの作用の間を空けない
  • equivalent schedules
    • 始めのスケジュールを実行する効果と2つ目の効果が同じ
    • 算術演算子は関係ない

durability

完了したtxtの変化の全ては持続すべきである.

DBMSは全ての変化がdurableであると保証するためにloggingとshadow pagingのどちらかを使うことができる.

conclusion

concurrency controlとrecoveryはDBMSに提供される機能のうちで最も重要である.

concurrency controlは自動的である.

感想

ACIDはDBMSの最も重要な部分ですね〜