Movatterモバイル変換


[0]ホーム

URL:


スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)

スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)2020年10月16日(金)NTTデータ技術開発本部データベーステクニカルリード藤井 雅雄講演動画は、YouTubeチャンネル「NTT DATA Tech」にて公開中!https://www.youtube.com/watch?v=Tt7thFskjmU

Embed presentation

NTTデータ テクノロジーカンファレンス 2020© 2020 NTT DATA CorporationスケールアウトするPostgreSQLを目指して!その第一歩!2020年10月16日株式会社NTTデータ 藤井 雅雄
2© 2020 NTT DATA Corporation自己紹介藤井 雅雄Database Technical Leadデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮、バックアップ進捗@fujii_masao
3© 2020 NTT DATA Corporationアジェンダ スケールアウトとは? PostgreSQLで利用できるスケールアウト機能とその課題について よりよいスケールアウト機能を目指して、その第一歩としてのグローバルトランザクションの実現について
4© 2020 NTT DATA Corporationスケールアウトとは?スケールアップサーバのスペックを増強して、システム全体の性能を向上させることスケールアウトサーバの台数を増やして、システム全体の性能を向上させることスペック増強(CPU/メモリ等)サーバ追加
5© 2020 NTT DATA CorporationPostgreSQLで利用できるスケールアウト機能と課題レプリケーションFDW (Foreign Data Wrapper)12
6© 2020 NTT DATA CorporationPostgreSQLで利用できるスケールアウト機能と課題レプリケーション プライマリ1台からレプリカ複数台にDBを複製 参照SQLを実行可能なレプリカの台数を増やすことで、参照処理をスケールアウトできる 更新SQLを実行可能なプライマリは1台のみのため、更新処理はスケールアウトできない1複製参照と更新プライマリ レプリカ1 レプリカ2 レプリカ3複製複製参照のみ 参照のみ 参照のみ
7© 2020 NTT DATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) 外部のデータをPostgreSQLのテーブル(外部テーブル)として扱う機能 FDWを介してサーバ間でデータを参照・更新できる2ID 場所1 千葉2 埼玉…外部テーブルサーバ11,千葉2,埼玉…CSVファイルID 部署a1 総務a2 営業…実テーブル外部テーブル サーバ2ID 部署a1 総務a2 営業…FDWFDWSELECT read()
8© 2020 NTT DATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) 外部のデータをPostgreSQLのテーブル(外部テーブル)として扱う機能 FDWを介してサーバ間でデータを参照・更新できる2ID 場所1 千葉2 埼玉…外部テーブルサーバ11,千葉2,埼玉…CSVファイルID 部署a1 総務a2 営業…実テーブル外部テーブル サーバ2ID 部署a1 総務a2 営業…FDWFDWUPDATEUPDATE
9© 2020 NTT DATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) データベースを複数台のPostgreSQLに分割配置して、FDWを介して処理を分散することで、参照と更新ともにスケールアウトできる 複数台のサーバをまたがったトランザクションであるグローバルトランザクションをサポートしていないA B CB C2サーバ1サーバ2 サーバ3参照と更新 参照と更新 参照と更新FDW FDW
10© 2020 NTT DATA Corporationよりよいスケールアウト機能を目指して参照と更新ともにスケールアウトさせるグローバルトランザクションをサポートする目指す方向性PostgreSQLコミュニティで、スケールアウト機能の開発・改善が始まっているレプリケーション更新をスケールアウトできないFDWグローバルトランザクションを未サポート既存機能の課題21
11© 2020 NTT DATA Corporationよりよいスケールアウト機能を目指して参照と更新ともにスケールアウトさせるレプリケーション更新をスケールアウトできないグローバルトランザクションをサポートするFDWグローバルトランザクションを未サポート目指す方向性既存機能の課題PostgreSQLコミュニティで、スケールアウト機能の開発・改善が始まっているPostgreSQL本体に機能を組み込む!!21
© 2020 NTT DATA Corporation 12【アンケート】実際、PostgreSQLのスケールアウトは必要でしょうか?A. トランザクションを保証した上で、参照も更新もスケールアウトしたい!B. 課題はあるが、既存機能のスケールアウトで十分!C. スケールアップで十分で、スケールアウトまでは不要!D. スケールアップとスケールアウトのどちらも不要!
13© 2020 NTT DATA Corporationよりよいスケールアウト機能を目指して、その第一歩FDWベースのスケールアウト構成に、グローバルトランザクションのサポートを追加する方向性12Atomic CommitAtomic VisibilityグローバルトランザクションA B CB Cサーバ1サーバ2 サーバ3参照と更新 参照と更新 参照と更新FDW FDW
14© 2020 NTT DATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT成功Atomic Commitで解消したいトランザクションの不整合
15© 2020 NTT DATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT成功COMMIT成功Atomic Commitで解消したいトランザクションの不整合
16© 2020 NTT DATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT失敗COMMIT成功COMMIT成功Atomic Commitで解消したいトランザクションの不整合トランザクションがサーバ3のみCOMMITに失敗すると、サーバ間のトランザクションの整合性が失われる!!
17© 2020 NTT DATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、すべてのCOMMIT準備が成功したらCOMMITを行う
18© 2020 NTT DATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMITCOMMIT準備COMMITAサーバ1 サーバ2 サーバ3B CCOMMIT成功COMMITまずはFDWを介してCOMMIT準備を行い、すべてのCOMMIT準備が成功したらCOMMITを行うFDWFDWFDWFDW
19© 2020 NTT DATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、COMMIT準備が失敗したサーバがあれば、ROLLBACKを行う
20© 2020 NTT DATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備失敗Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、COMMIT準備が失敗したサーバがあれば、ROLLBACKを行うROLLBACKCOMMIT失敗ROLLBACKFDW
© 2020 NTT DATA Corporation 21【アンケート結果】実際、PostgreSQLのスケールアウトは必要でしょうか?A. トランザクションを保証した上で、参照も更新もスケールアウトしたい!B. 課題はあるが、既存機能のスケールアウトで十分!C. スケールアップで十分で、スケールアウトまでは不要!D. スケールアップとスケールアウトのどちらも不要!
22© 2020 NTT DATA CorporationAtomic VisibilityA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①COMMIT途中COMMIT成功COMMIT成功サーバ間でトランザクション実行の観測結果に整合性があること複数のサーバ上で行われる複数の操作についてすべての操作が成功(COMMIT)、すべての操作が失敗(ROLLBACK)、すべての操作が実行中のいずれかだと、他のトランザクションから観測できることAtomic Visibilityで解消したいトランザクションの不整合 トランザクション①がCOMMITしたとき、実行タイミングのずれにより、サーバ3のみCOMMIT実行途中の状態
23© 2020 NTT DATA CorporationAtomic VisibilityA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①COMMIT途中COMMIT成功COMMIT成功トランザクション②サーバ間でトランザクション実行の観測結果に整合性があること複数のサーバ上で行われる複数の操作についてすべての操作が成功(COMMIT)、すべての操作が失敗(ROLLBACK)、すべての操作が実行中のいずれかだと、他のトランザクションから観測できることAtomic Visibilityで解消したいトランザクションの不整合 トランザクション②が全サーバを参照すると、サーバ3だけトランザクション①は未COMMITに見えて不整合が発生!!参照参照参照
24© 2020 NTT DATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照グローバルトランザクションマネージャ
25© 2020 NTT DATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャ「トランザクション①のCOMMITはまだ完了していない」と管理
26© 2020 NTT DATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャトランザクション②「トランザクション①のCOMMITはまだ完了していない」と通知
27© 2020 NTT DATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャトランザクション②参照参照参照通知結果から、トランザクション①の処理結果はすべてのサーバで参照しないと判断
28© 2020 NTT DATA Corporation集中管理しないAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①集中管理しない Clock-SI などの方式も検討されている 集中管理の方式では、グローバルトランザクションマネージャが性能ボトルネックやSPoFになるリスクがあるCOMMIT途中COMMIT成功COMMIT成功トランザクション②参照参照参照• どのトランザクションの処理結果を参照してよいか、サーバの時刻情報から判断• 参照先がCOMMIT途中の場合は、COMMIT/ROLLBACKが確定するまで待つ
29© 2020 NTT DATA Corporationおわりによりよいスケールアウト機能を目指して開発が始まっています。その第一弾として、複数台のPostgreSQLをまたがるグローバルトランザクションをサポートするためにの実現に取り組んでいます!PostgreSQLのスケールアウト機能に、ぜひご期待ください!12Atomic CommitAtomic Visibility
© 2020 NTT DATA Corporation

Recommended

PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLでスケールアウト
PDF
Vacuum徹底解説
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PPTX
MongoDBが遅いときの切り分け方法
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
DockerとPodmanの比較
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
分散トレーシング技術について(Open tracingやjaeger)
PPTX
Spanner移行について本気出して考えてみた
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
PostgreSQL: XID周回問題に潜む別の問題
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
PostgreSQL 15 開発最新情報
PPTX
Redisの特徴と活用方法について
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PDF
PostgreSQLレプリケーション徹底紹介

More Related Content

PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLでスケールアウト
PDF
Vacuum徹底解説
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLでスケールアウト
Vacuum徹底解説
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)

What's hot

PPTX
MongoDBが遅いときの切り分け方法
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
DockerとPodmanの比較
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
分散トレーシング技術について(Open tracingやjaeger)
PPTX
Spanner移行について本気出して考えてみた
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
PostgreSQL: XID周回問題に潜む別の問題
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
PostgreSQL 15 開発最新情報
PPTX
Redisの特徴と活用方法について
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
MongoDBが遅いときの切り分け方法
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
DockerとPodmanの比較
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
分散トレーシング技術について(Open tracingやjaeger)
Spanner移行について本気出して考えてみた
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 15 開発最新情報
Redisの特徴と活用方法について
アーキテクチャから理解するPostgreSQLのレプリケーション
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp

Similar to スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)

PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PDF
PostgreSQLレプリケーション徹底紹介
PDF
PostgreSQL9.3新機能紹介
PDF
10大ニュースで振り返るpg con2013
PDF
perfを使ったPostgreSQLの解析(前編)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL10徹底解説
PDF
【Jpug勉強会】10大ニュースで振り返るpg con2013
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
PDF
PostgreSQL V9 レプリケーション解説
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
COVID-19によるリモートワークIT環境強化の裏側 ~NTTデータにおける同時接続数拡大との戦い~(NTTデータ テクノロジーカンファレンス 2020...
PPTX
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
PDF
Principles of Transaction Processing Second Edition 9章 4~9節
PDF
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PDF
[INSIGHT OUT 2011] C27 今こそBCPを考える ~コスト・要件に応じたデータベースのディザスタ・リカバリを提案しよう!~(kishida)
PDF
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQLレプリケーション徹底紹介
PostgreSQL9.3新機能紹介
10大ニュースで振り返るpg con2013
perfを使ったPostgreSQLの解析(前編)
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL10徹底解説
【Jpug勉強会】10大ニュースで振り返るpg con2013
NTT DATA と PostgreSQL が挑んだ総力戦
PostgreSQL V9 レプリケーション解説
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
COVID-19によるリモートワークIT環境強化の裏側 ~NTTデータにおける同時接続数拡大との戦い~(NTTデータ テクノロジーカンファレンス 2020...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Principles of Transaction Processing Second Edition 9章 4~9節
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
[INSIGHT OUT 2011] C27 今こそBCPを考える ~コスト・要件に応じたデータベースのディザスタ・リカバリを提案しよう!~(kishida)
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介

More from NTT DATA Technology & Innovation

PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
PDF
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)

スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)

  • 1.
    NTTデータ テクノロジーカンファレンス 2020©2020 NTT DATA CorporationスケールアウトするPostgreSQLを目指して!その第一歩!2020年10月16日株式会社NTTデータ 藤井 雅雄
  • 2.
    2© 2020 NTTDATA Corporation自己紹介藤井 雅雄Database Technical Leadデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮、バックアップ進捗@fujii_masao
  • 3.
    3© 2020 NTTDATA Corporationアジェンダ スケールアウトとは? PostgreSQLで利用できるスケールアウト機能とその課題について よりよいスケールアウト機能を目指して、その第一歩としてのグローバルトランザクションの実現について
  • 4.
    4© 2020 NTTDATA Corporationスケールアウトとは?スケールアップサーバのスペックを増強して、システム全体の性能を向上させることスケールアウトサーバの台数を増やして、システム全体の性能を向上させることスペック増強(CPU/メモリ等)サーバ追加
  • 5.
    5© 2020 NTTDATA CorporationPostgreSQLで利用できるスケールアウト機能と課題レプリケーションFDW (Foreign Data Wrapper)12
  • 6.
    6© 2020 NTTDATA CorporationPostgreSQLで利用できるスケールアウト機能と課題レプリケーション プライマリ1台からレプリカ複数台にDBを複製 参照SQLを実行可能なレプリカの台数を増やすことで、参照処理をスケールアウトできる 更新SQLを実行可能なプライマリは1台のみのため、更新処理はスケールアウトできない1複製参照と更新プライマリ レプリカ1 レプリカ2 レプリカ3複製複製参照のみ 参照のみ 参照のみ
  • 7.
    7© 2020 NTTDATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) 外部のデータをPostgreSQLのテーブル(外部テーブル)として扱う機能 FDWを介してサーバ間でデータを参照・更新できる2ID 場所1 千葉2 埼玉…外部テーブルサーバ11,千葉2,埼玉…CSVファイルID 部署a1 総務a2 営業…実テーブル外部テーブル サーバ2ID 部署a1 総務a2 営業…FDWFDWSELECT read()
  • 8.
    8© 2020 NTTDATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) 外部のデータをPostgreSQLのテーブル(外部テーブル)として扱う機能 FDWを介してサーバ間でデータを参照・更新できる2ID 場所1 千葉2 埼玉…外部テーブルサーバ11,千葉2,埼玉…CSVファイルID 部署a1 総務a2 営業…実テーブル外部テーブル サーバ2ID 部署a1 総務a2 営業…FDWFDWUPDATEUPDATE
  • 9.
    9© 2020 NTTDATA CorporationPostgreSQLで利用できるスケールアウト機能と課題FDW (Foreign Data Wrapper) データベースを複数台のPostgreSQLに分割配置して、FDWを介して処理を分散することで、参照と更新ともにスケールアウトできる 複数台のサーバをまたがったトランザクションであるグローバルトランザクションをサポートしていないA B CB C2サーバ1サーバ2 サーバ3参照と更新 参照と更新 参照と更新FDW FDW
  • 10.
    10© 2020 NTTDATA Corporationよりよいスケールアウト機能を目指して参照と更新ともにスケールアウトさせるグローバルトランザクションをサポートする目指す方向性PostgreSQLコミュニティで、スケールアウト機能の開発・改善が始まっているレプリケーション更新をスケールアウトできないFDWグローバルトランザクションを未サポート既存機能の課題21
  • 11.
    11© 2020 NTTDATA Corporationよりよいスケールアウト機能を目指して参照と更新ともにスケールアウトさせるレプリケーション更新をスケールアウトできないグローバルトランザクションをサポートするFDWグローバルトランザクションを未サポート目指す方向性既存機能の課題PostgreSQLコミュニティで、スケールアウト機能の開発・改善が始まっているPostgreSQL本体に機能を組み込む!!21
  • 12.
    © 2020 NTTDATA Corporation 12【アンケート】実際、PostgreSQLのスケールアウトは必要でしょうか?A. トランザクションを保証した上で、参照も更新もスケールアウトしたい!B. 課題はあるが、既存機能のスケールアウトで十分!C. スケールアップで十分で、スケールアウトまでは不要!D. スケールアップとスケールアウトのどちらも不要!
  • 13.
    13© 2020 NTTDATA Corporationよりよいスケールアウト機能を目指して、その第一歩FDWベースのスケールアウト構成に、グローバルトランザクションのサポートを追加する方向性12Atomic CommitAtomic VisibilityグローバルトランザクションA B CB Cサーバ1サーバ2 サーバ3参照と更新 参照と更新 参照と更新FDW FDW
  • 14.
    14© 2020 NTTDATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT成功Atomic Commitで解消したいトランザクションの不整合
  • 15.
    15© 2020 NTTDATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT成功COMMIT成功Atomic Commitで解消したいトランザクションの不整合
  • 16.
    16© 2020 NTTDATA CorporationAtomic Commitサーバ間でトランザクションの実行結果に整合性があること複数のサーバ上で行われる複数の操作について、すべての操作が成功(COMMIT)するか、すべての操作が失敗(ROLLBACK)することA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクションCOMMIT失敗COMMIT成功COMMIT成功Atomic Commitで解消したいトランザクションの不整合トランザクションがサーバ3のみCOMMITに失敗すると、サーバ間のトランザクションの整合性が失われる!!
  • 17.
    17© 2020 NTTDATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、すべてのCOMMIT準備が成功したらCOMMITを行う
  • 18.
    18© 2020 NTTDATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMITCOMMIT準備COMMITAサーバ1 サーバ2 サーバ3B CCOMMIT成功COMMITまずはFDWを介してCOMMIT準備を行い、すべてのCOMMIT準備が成功したらCOMMITを行うFDWFDWFDWFDW
  • 19.
    19© 2020 NTTDATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、COMMIT準備が失敗したサーバがあれば、ROLLBACKを行う
  • 20.
    20© 2020 NTTDATA Corporation二相コミットによるAtomic Commitの実現複数台のサーバをまたがったトランザクションをCOMMITする際に、二相コミットを使って、Atomic Commitを実現する方向性COMMIT要求COMMIT準備トランザクションCOMMIT準備失敗Aサーバ1 サーバ2 サーバ3B CFDWFDWまずはFDWを介してCOMMIT準備を行い、COMMIT準備が失敗したサーバがあれば、ROLLBACKを行うROLLBACKCOMMIT失敗ROLLBACKFDW
  • 21.
    © 2020 NTTDATA Corporation 21【アンケート結果】実際、PostgreSQLのスケールアウトは必要でしょうか?A. トランザクションを保証した上で、参照も更新もスケールアウトしたい!B. 課題はあるが、既存機能のスケールアウトで十分!C. スケールアップで十分で、スケールアウトまでは不要!D. スケールアップとスケールアウトのどちらも不要!
  • 22.
    22© 2020 NTTDATA CorporationAtomic VisibilityA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①COMMIT途中COMMIT成功COMMIT成功サーバ間でトランザクション実行の観測結果に整合性があること複数のサーバ上で行われる複数の操作についてすべての操作が成功(COMMIT)、すべての操作が失敗(ROLLBACK)、すべての操作が実行中のいずれかだと、他のトランザクションから観測できることAtomic Visibilityで解消したいトランザクションの不整合 トランザクション①がCOMMITしたとき、実行タイミングのずれにより、サーバ3のみCOMMIT実行途中の状態
  • 23.
    23© 2020 NTTDATA CorporationAtomic VisibilityA B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①COMMIT途中COMMIT成功COMMIT成功トランザクション②サーバ間でトランザクション実行の観測結果に整合性があること複数のサーバ上で行われる複数の操作についてすべての操作が成功(COMMIT)、すべての操作が失敗(ROLLBACK)、すべての操作が実行中のいずれかだと、他のトランザクションから観測できることAtomic Visibilityで解消したいトランザクションの不整合 トランザクション②が全サーバを参照すると、サーバ3だけトランザクション①は未COMMITに見えて不整合が発生!!参照参照参照
  • 24.
    24© 2020 NTTDATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照グローバルトランザクションマネージャ
  • 25.
    25© 2020 NTTDATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャ「トランザクション①のCOMMITはまだ完了していない」と管理
  • 26.
    26© 2020 NTTDATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャトランザクション②「トランザクション①のCOMMITはまだ完了していない」と通知
  • 27.
    27© 2020 NTTDATA Corporation集中管理によるAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①グローバルトランザクションマネージャでサーバ間のトランザクションを集中管理 トランザクションの開始・終了を管理 トランザクションの開始・終了を通知 → 通知結果をベースに参照COMMIT途中COMMIT成功COMMIT成功グローバルトランザクションマネージャトランザクション②参照参照参照通知結果から、トランザクション①の処理結果はすべてのサーバで参照しないと判断
  • 28.
    28© 2020 NTTDATA Corporation集中管理しないAtomic Visibilityの実現A B CFDW FDWB Cサーバ1サーバ2 サーバ3トランザクション①集中管理しない Clock-SI などの方式も検討されている 集中管理の方式では、グローバルトランザクションマネージャが性能ボトルネックやSPoFになるリスクがあるCOMMIT途中COMMIT成功COMMIT成功トランザクション②参照参照参照• どのトランザクションの処理結果を参照してよいか、サーバの時刻情報から判断• 参照先がCOMMIT途中の場合は、COMMIT/ROLLBACKが確定するまで待つ
  • 29.
    29© 2020 NTTDATA Corporationおわりによりよいスケールアウト機能を目指して開発が始まっています。その第一弾として、複数台のPostgreSQLをまたがるグローバルトランザクションをサポートするためにの実現に取り組んでいます!PostgreSQLのスケールアウト機能に、ぜひご期待ください!12Atomic CommitAtomic Visibility
  • 30.
    © 2020 NTTDATA Corporation

[8]ページ先頭

©2009-2025 Movatter.jp