Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースとストレージのレプリケーション入門 / Intro-of-database-and-storage-replication

Kohei Ota
January 27, 2022

データベースとストレージのレプリケーション入門 / Intro-of-database-and-storage-replication

社内で若者向けに作ったデータベースとストレージの入門資料です

Kohei Ota

January 27, 2022
Tweet

More Decks by Kohei Ota

Other Decks in Technology

Transcript

  1. ステートレスとステートフル ステートレス 状態 が 無い ステートフル 状態 が 有る たとえば・・・

    静的コンテンツ だけを返す サイト → 何回アクセスしても結果が同じ ステートレス 日々アクセスするサイトに応じて内容が変わる ような システム 広告とか → 各ユーザーの傾向に応じてレスポンスが違う ステートフル データベース → 入力 データの追加・変更・削除 によっては 出力も変化する ステートフル
  2. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 💡トランザクションとは?💡 データの処理における一連のやり取りのこと 書き込みや読み込みを完了するまでの一連の流れ
  3. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 トランザクションは完全に実行が完了するか 全く実行されないかのどちらかでないといけない → 処理の一部だけが行われている状態は 銀行の処理とか考えるとわかりやすい
  4. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 トランザクションの状態に関わらず データベースの整合性は維持しないといけない → 実行結果が矛盾してはいけない
  5. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 トランザクションを同時に行った場合でも 各トランザクションは他の処理結果の影響を 受けてはならない → 実行結果が矛盾してはいけない
  6. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 トランザクションの結果は障害の有無に関わらず 失われてはいけない → ハードウェア障害後もデータの永続性を保証
  7. 特性と 定理 は以下 つの言葉の頭文字 原子性 一貫性 独立性 永続性 データベースのトランザクション処理に 関する

    つの重要な性質 トランザクションの結果は障害の有無に関わらず 失われてはいけない → ハードウェア障害後もデータの永続性を保証 ちなみにこれはデータベース スペシャリストなどの試験でも 登場する非常に基本的な の特性です
  8. 特性と 定理 は以下 つの言葉の頭文字 一貫性 可用性 分断耐性 分散システムにおけるノード間のやり取り に関する定理 定理はこれら

    つを同時に保証 することはできないという理論 ただし、最近は の台頭により これを限りなく解決できるような仕組みが できてきた
  9. ストレージの種類 ブロックストレージ • やベアメタルにボリュームとしてマウント • 単一ホストからしか見られない • 、 など 経由のものや

    のようなネイティブ デバイスもある • マウントしたボリュームには が対応した好きなファイ ルシステム 、 、 、 等 を使える • 性能が高く や のデータ保管に適している
  10. ストレージの種類 ファイルストレージ • やベアメタルにファイルシステムとしてマウント • 複数ホストからの読み書きを受け付ける • や のようなネットワークドライブ •

    ファイルシステムをマウントするので 側では選択不可 • 性能はそこそこ、ファイル単位のロック機構があり、 触るファイルが別であれば 書き込みを複数ホストから 同時にできる
  11. のレプリケーション レプリカ プライマリ データベース データを同期 プロキシ 障害発生時には フェイルオーバー 状態監視 ※ただし、

    や 単体で クラスタリングとフェイルオーバーまでは 面倒を見ないので ソリューションを別途自前で入れる必要がある
  12. のレプリケーション レプリカ プライマリ データベース データを同期 プロキシ 障害発生時には フェイルオーバー 状態監視 最もシンプルな冗長構成

    障害発生時若干のダウンタイムはある サイトを分ければ 構成にも応用可 ※ただし、 や 単体で クラスタリングとフェイルオーバーまでは 面倒を見ないので ソリューションを別途自前で入れる必要がある
  13. のレプリケーション レプリカ プライマリ データベース データを同期 プロキシ 障害発生時には フェイルオーバー 状態監視 データベースのストレージのスナップ

    ショットを取得するアプローチもある 愚直な反面即時性には欠ける 定常時にこちらを読み取り専用で 使って負荷を下げるというやり方もある いわゆる リードレプリカ