!"#$%&'()*+'$ ",'(*,-.(+/ !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 EDB Postgres Distributed 概 要 2 © EnterpriseDB Corporation 2022 - All Rights Reserved !"#$%&'()*+'$",'(*,-.(+/ !"#$%&'!"#!$%&'()*+,-./0123,4./01 -./0123)456 =>?@ABCDEFGC@>HCDFHIJDGK@&'LM NOPQR=ASTUABCDEFGTVWXYZ4 .[)\]^2_14.+Y`ab*+,./01b/Zcd2efgRhijkl 789:;4<=>&?@ A48BCD*%E *+,-./01m3.4n.Zbopqrs *2t.,1ub*v+uw.x&'()yr 14`d2z{2|}j~ !"#$%&'() *+, !"#$%&'()*+,-./0123 .45678&9:&;< " !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"#$%&'()*+' ",'(*,-.(+/$01 ! !"#$%&'()*+,-./0123456789 :;<=>?@A=B#CDEFGH=IJK ! LMNOPQRSTNOPUV#<=>NOP WFIJK ! XKYGZ[2\D4]^Y_=BK@2`a4] bcP2defg;h#ijkl=m ! Znop]qr]U;stuv>mwxyz{|}~y <F{fg ! ÄÅÇPVÉDÑyÖÜ4;$%&'()*&Zn@>2 Å1yfgBmáB@>=EFGH=IJK !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"%0!1234567 !"#$% FGHIJKLMNOPLIGQLMOQRSMPT &'() *+,&'() !"#$% &&'&&()(* &&'&&&) +,-./0123456 789 &&'&()(* &&'&&) +,-./0123456 :;<=9 >2?@A?2BCD EFG;HIJKL1MN2OPA +Q/R0QS?9 TCDJI1MN2OPA +OAU/0QS?9 VWXUN2Y Z[\]^A?._ `ab2032aPAcIJ dV0ef0]^A?._ Q.g2032aPAcIJ dV0ef0]^A?._ hijk\VXlm2OPA noOSp_q r2/0/2psAU0OSp_q t7CDIJuvwx$yOSp_ z{q|}~OSp_qÄ{Å !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 EDB Postgres Distributedの歴史 詳細設計は、2011年にスタート 2014年 BDR 1 リリース 2019年デサポート 2018年 BDR 2 リリース 2020年デサポート 2019年 BDR 3 リリース 2021年 BDR 4 リリース 2022年 EDB Postgres Distributed 4.1 リリース © EnterpriseDB Corporation 2022 - All Rights Reserved BDR4.0からの進化 ● 更なる可⽤性の向上と管理性鋼のために、様々な機能を実装 ○ HARP との統合 : HA-Proxy + BDR => HARP + BDR ○ CLIベースの管理ツール: harpctl を実装 ○ 同期レプリケーションをより使いやすくするための、新機能”グループ・コミット” ○ ローリング・アップグレードの更なる⾼速化 等多数の改善 © EnterpriseDB Corporation 2022 - All Rights Reserved © EnterpriseDB Corporation 2022 - All Rights Reserved EDB Postgres Distributed の機能概要 基本機能 ⾼度な機能 マルチ・マスタ・レプリケーションのための基本機能と ツールを提供 データベース・エンジンにBDR機能をエンハンスし、更に先進的な レプリケーション能⼒を提供 • • • • • • ニア・ゼロ・ダウンタイムのデータベース・アップグレード マルチ・マスタ・レプリケーションにおける⾏レベルの ⼀貫性を保証 • ⼤規模トランザクションのレプリケーションのスムーズな レプリケーションと⼩さい伝達遅延 • レプリケーション状況を監視するツールとデータ⼀貫性を 確認するためのツール • 列レベルのカスタマイズ可能なデータ競合解消機構 Conflictを回避するための特別のデータ・タイプ (CRDT) ⼆重のトランザクションの実⾏をガードする機能 (CAMO) 2phase Commitによる競合のない同期レプリケーション [Eager Replication] パフォーマンス向上機能 p Parallel Apply p Single Decode Worker © EnterpriseDB Corporation 2022 - All Rights Reserved !%"$!"#$%&'()* ! ! ! úù >,û@stAu:vwx ! !"#$%&'()*+,-./)012 ! 3*4)5)6+7)8)9:6;<$= ! !"#$>?,@AB ! CDEFDEFGHIJK7-012 úù >>û@stAu:vwx ! LMNO= IIPK%:Q ! RS$ IIPKTU úùv:ux8üf ! VW+4X-+YZ0)/2* [26? !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"#$%&'()%*"+ ! UV;%W>DXYZ@8BCD*%E " !"#$%&'%()*%+#,-./012345678)99%(:;< " =1>?@AB;:CDEF " " G%HIJK5LMNO9PQ>RSATUVWX%WYPZ[#\]A/ JK5LMN^_`abcde <=>&?@4[\4]^_`a # " fgh9ijklPimP()99%( n oIpq " rst/+uNvo>vq " wxl%&/yz#{%H678/yz $ !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 EDB Postgres Distributed アーキテクチャ 12 © EnterpriseDB Corporation 2022 - All Rights Reserved !"#$%&'()*+'$",'(,-.(+/ <=>?@'$AB+',-./0 678#60).†"N°¢£§ "N°¢£ •.5¶,ß®©¶E™R´=¨≠@Æ1;Ø".∞°N8± ≤≥,-.)¥(). y{m}Eµ∂.K ∑äàùìÉàâtäí•.5∏,Çöö∑"N¥0 ππ∫πππyª}ì,ºeΩDæ !"#$%&'(%)*#+,-./0123*4* 5*678%9:;8<*# &'(•.5©,øDæ)*#,=>?@:AB*C D*EF!G7HI,JKLM ¿,µ.¡0Q,¬hæNOPPQRSTOPUVOOWTPXYZ[\][^Y_[UV`Oab √=ƒ≈efP".∞°N8± 5cd2%'(741 ef%82*; ûrtoäââ !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 123456789:;742<78<=>8;?@ABCDEFGHI'J ! ! *H>@†°¢h£:§• 3¶ß®©@8¢ã™£:§Z@@G44äA¶ß® t´¢¨A#89x§¢≠Æ•G4[B4ض∞ !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 レファレンス・アーキテクチャ ● EDBは4つの標準アーキテクチャを設定 n Always On Bronze 2つのBDRノードがある単⼀のアクティブな場所(データセンターまたはクラウドリージョン) n Always On Silver 3つのBDRノードを備えた単⼀のアクティブな場所と障害リカバリ(DR)の場所にバックアップ n Always On Gold 2つのアクティブな場所 n Always On Platinum ホットスタンバイモードで追加の冗⻑ハードウェアを備えた2つのアクティブな場所 注︓場所は⼤まかに定義されており、物理的場所(データセンター)またはクラウドリージョンである可能性があり、 実際には顧客の場所の定義または解釈に依存します。 © EnterpriseDB Corporation 2022 - All Rights Reserved !"#$%&'()*+'$",'(*,-.(+/$ <=>?@'$AB$#*&BP+ SÄÅÇÉC@ÑÖ@?FBÖÜG@áàâ2*Xcäã#åçé ! ! èê2?>ëí.xáìê[3.4î#ïrävqñZ2óé ! ™ê2 ´SëAí.x òvX*v+m,ôò,ö2?ÇFõÇÖí.xáúùåç&ûüPQ†°î) ¢2åç&£p§`q&°•¶mß®©†°é ?>ëí.x[*n`Y¨,cä.≠.1ÆØ&∞±°•¶mß®©†° !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"#$%&'()*+'$",'(*,-.(+/$ <=>?@'$AB$Q,=R+* SÄÅÇÉC@ÑÖ@THÄ≤GF áàâ2*Xcäã#åç)>ëåç&òvX*v+é " ! ! èê2?>ëí.x)≥í.x&[3.4î¥(†° ?ÇFõÇÖ@BµµCHDG@áBµµCHDG[£+/0∂∑î)∏π∫é ™ê2´SëAí.x †R[)?>ëí.xj*n`Y¨,cä.≠.1†R[t-./01&∞±Pª) ?ÇFõÇÖjt-./01S&NO°•¶mß®©†° !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"#$%&'()*+'$",'(*,-.(+/$ <=>?@'$AB$S&=/ SÄÅÇÉC@ÑÖ@ºBÄK á™ê2*Xcäã#åçé ! Ωê2?>ëí.xáåçS&™ê)åç?&™êé ! ?ÇFõÇÖí.x™êáåçS&ìê)åç?&ìêé ! t-./01æ&ìê2ø¿í.x á£+/0∂∑)R¡g¬√é ! Ωê2´SëAí.x át-./01S&™ê)t-./01?&™êé !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 !"#$%&'()*+'$",'(*,-.(+/$ <=>?@'$AB$%=?(,B.T !"#$%&'()'*"$+,)-. ∆Ö«,»… ºÀÃÇÕŒœ ! ! /01234567∆»…Ç=Ö« »…–=Ö«œ ! ! 8012$B.$)567∆—«“»…Ç —«“»…–œ ! /01K!4*567∆»…Ç=Ö« »…–=Ö«œ 8019:;<=>?@A ∆»…Ç=—« »…–=—«œ 9C6DE?FGH01IJ567 ∆”2;<‘7 a’÷◊ÿœ !"#$%&'()*+,-./0123456789:;<345678=>9?@AB% C'1,D8,EF#GHIJ45$KLMNOPQRST4UV$WXYZM[\ !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 IJKLMNO3UVWXFY !"#$%&'()'*+,)-. !"#$%&'()'/0"1.+ !"#$%&'()'2,"3 !"#$%&'()'4"$50)67 !"#$%&'()* + + + + ,-"./0'(123"4)* 5 + + + ,-"./0'(126"789: g <$04=>?@2&ABCD"# EFGAHIBJ=K"LHJ$#M2 NO26P"L 3Q=8'(R2STUV2SW ,"XYZ[ 3"4]^04"_2`ALa"H]LJ bcAH J=^08]f8L !"#$"%&'()* ; + + 1,D8,EF#$]K +,-./0(12.345!5 +,-./0(12.345!5 + + + + + + + + 67589:;$"%:<5=>?@A(BCD 5 EFG*HIJKLM 6?D OPNQRSTNU 6VDWXYZ[N\YY]^ ?@ gh2ijkl"# + _`(75a3^+,b5=cdefg!.hij kcEFGlmAnoI\ de Ÿ + ^_MKL`abcd efg ijhklmnhohepgqrstu vsswG de 7pa3hq9!.GfIrcshq;b5=c tuvw de !"#$"%cxIJ/y1z"#({ 7pa3;<%8|5}~9(Ä(/y1z"# 7pa3;<%8|5}~9(Ä(/y1z"# xy$GHIJ45 zy$GHIJ45 Å@(^+,b5= U Ç@(7pa3hq9!.b5= !"#$%&'(')*&+, -.'(.'/%).$"0100"2 344"5)67%*" 5&*&'8&9 EDB Postgres Distributed ツール 21 © EnterpriseDB Corporation 2022 - All Rights Reserved EDB Postgres Distibuted をサポートするツール ● Live Compare EDB Postgres Distributed に参加しているマスタDB間のデータ⼀貫性を検査 ● harpctl EDB Postgres Distributed のクラスタの構成状況の確認とコンフィグの変更 ● Postgres Enterprise Manager データベースの稼働監視と構成変更、 EDB Postgres Distributed レプリケーション状況の確認 © EnterpriseDB Corporation 2022 - All Rights Reserved THANK YOU 23 © EnterpriseDB Corporation 2022 - All Rights Reserved