📝

今日の学び(2024/07/18)

2024/07/18に公開

今日の学び

Amazon Auroraって何気に使っているけど、素晴らしいよね

https://x.com/sig_code1/status/1813727511156756500

Disk-Oriented DB→ディスク指向データベース

  • HDD・SSDなどに永続的なストレージにデータ保存
  • ディスクI/Oを伴う
  • 大容量を扱える
  • 大規模データを比較的安価に
  • 電源が切れてもデータは保持される
  • Oracle Database・MySQL・PostgreSQLなどの一般的なやつ

In-Memory DB→インメモリDB

  • Redis・Memocachedなど
  • 揮発性のやつ
  • RAMなどの主記憶装置に
  • メモリアクセスで行うため速い
  • 大規模DBには不向き
  • 電源切れるとデータは失われる

トランザクションの信頼性を保証するためのACIDとは

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Sequential Consistency(順序一貫性)

参考記事
https://qiita.com/kumagi/items/3867862c6be65328f89c#sequential-consistency

チェックポイントアーキテクチャとは

  • 定義
    • チェックポイントとは、システムの状態を一貫性のある形で保存する時点のこと
    • チェックポイントアーキテクチャは、この概念を利用してシステムの信頼性、回復性、パフォーマンスを向上させる設計手法
  • 主な目的
    • データの一貫性の確保
    • システム障害からの迅速な回復
    • パフォーマンスの最適化
  • 主要コンポーネント
    • メモリ内バッファ
      • 変更データを一時的に保持
    • ログファイル
      • トランザクションなどの変更の記録を保持
    • データファイル
      • 永続的なストレージに保存
    • チェックポイントメカニズム
      • 定期的にまたはその条件下でチェックポイントを作成
  • 動作プロセス
    • トランザクションや変更はまずメモリ内バッファに適用
    • 同時に変更はログファイルに記録
  • チェックポイントの作成
    • 定期的に、またはトリガーに応じてチェックポイントが開始
    • メモリ内バッファのデータがディスク上のデータファイルへ
    • チェック位置がログファイルに記録
  • 障害回復
    • 最新のチェックポイントから回復を開始
    • チェックポイント以降のログエントリを再適用して最新の一貫した状態に
  • メリット
    • 高速な回復
    • 全ログから再生ではなく最新のチェックポイントから
  • リソース効率
    • ログファイルを定期的に切り詰めることが可能→ストレージを効率的に使用できる
  • パフォーマンス最適化
    • メモリ内操作により、高速なデータアクセスが可能
  • データ整合性
    • システム障害時でもデータの一貫性を保証
  • 課題と考慮
    • チェックポイント頻度
    • I/Oボトルネック
    • 並行性制御
  • 使用例
    • RDBMS
    • NoSQL DB
    • 分散ファイルシステム
    • 仮想マシンスナップショット

Amazon Auroraのcharacterのパラメーターについて

  • character_set_client
    • クライアントから送信されるSQLステートメントの文字セットを指定
    • クライアントアプリケーションが使用している文字セットをサーバーに伝える
  • character_set_connection
    • クライアントとサーバー間の接続で使用される文字セット
    • character_set_clientで指定された文字セットからの変換先として使用
  • character_set_database
    • 現在のDBのデフォルト文字セットを指定
    • 新しいテーブルを作成するときに文字セットを指定しないとこれが適用される
  • character_set_results
    • クエリ結果をクライアントに送信するときに使用される文字セット
    • サーバー→クライアントのデータ送信の文字エンコーディングを制御
  • character_set_server
    • サーバー全体のデフォルト文字セットを指定
    • 新規DBを作成するときにこの値が使用される

MySQL v8.0から消えたパラメーターについて

  • innodb_file_format
    • デフォルトでBarracudaへ
  • innodb_large_prefix
    • デフォルトでONに

Discussion