41
MySQL Principal Solution Engineer Yoshiaki Yamasaki / 山﨑 由章 2020/05/30 OSC2020 Online Nagoya NoSQLとしても使える高可用性インメモリDB MySQL NDB Clusterのご紹介

NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

MySQL Principal Solution Engineer

Yoshiaki Yamasaki / 山﨑由章

2020/05/30 OSC2020 Online Nagoya

NoSQLとしても使える高可用性インメモリDBMySQL NDB Clusterのご紹介

Page 2: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

2

Safe harbor statement

Copyright © 2020, Oracle and/or its affiliates

Page 3: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

3

祝!!MyNA20周年&MySQL25周年!!

Copyright © 2020, Oracle and/or its affiliates

Page 4: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

4

YouTubeのMyNAチャンネル、MySQL Casualチャンネル

Copyright © 2020, Oracle and/or its affiliates

Page 5: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

5

MySQL NDB Clusterとは?

Copyright © 2020, Oracle and/or its affiliates

Page 6: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

6

MySQL NDB Clusterとは?

Copyright © 2020, Oracle and/or its affiliates

Page 7: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

7

MySQL ”NDB” Clusterの歴史

90年代後期

Ericsson (Alzato) にて設計/開発

2003年

MySQL ABが NDB Cluster ProjectをEricssonから引き継ぎ開発 (MySQL 4.1)

2008年

SunがNDB Cluster Projectを引き継ぎ開発(MySQL 5.1/Cluster 6.x~ )

2010年

OracleがNDB Cluster Projectを引き継ぎ開発(MySQL 5.1 / Cluster 7.x~)

Original design paper: Design and Modelling of a Parallel Data Server for Telecom Application

MySQL Clusterの基礎となっている技術は、通信機器ベンダのエリクソンで携帯通信網の加入者データベース向けに開発されたEricsson Network Data Base(NDB)と呼ばれていた技術が起源

Copyright © 2020, Oracle and/or its affiliates

Page 8: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates8

MySQL NDB Clusterの特徴

Cluster

分散イン・メモリ・データ管理リアルタイム・パフォーマンス、自動パーティショニング、データ分散、ビルトインのレプリケーション

99.9999%の可用性ミッション・クリティカル・システム向けの設計、自律型、単一障害点のないシェアード・ナッシング構成

一貫性のあるトランザクション分散かつ分割配置されたデータセットに対するトランザクションの一貫性

オープン・ソースリアルタイム・パフォーマンス、自動パーティショニング、データ分散、ビルトインのレプリケーション

ハイブリッド・データストアキー・バリュー型 NoSQL+複雑なリレーショナルな処理 RDBMS

高い拡張性と堅牢性の両立マルチ・マスター、スケール・アウト可能、テラバイト級データへの対応、ACID準拠トランザクション

Page 9: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

9

新しいタイプのデータベース利用要件に対応

インメモリデータベースとしてのリアルタイム性能と高い堅牢性の両立

お客様ビジネスの成長を支える拡張性のあるデータ管理

RDBMSとNoSQLのハイブリッド構成による柔軟性とビジネスの展開に対応したアジリティ

運用管理を自動化させたことによる運用コストの低減

MySQL NDB Cluster導入メリット

In-Memory Real-Time

Performance

Extreme Read & Write

Scalability

Rock Solid Availability

Rapid Service

Innovation

Copyright © 2020, Oracle and/or its affiliates

Page 10: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

10

MySQL NDB Cluster が向いているシステム

Copyright © 2020, Oracle and/or its affiliates

Page 11: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates11

• YCSB : Yahoo Cloud Serving Benchmark

• Yahooが開発したNoSQL(KVS)やクラウドサービスストア向けのベンチマークツール

• NoSQL(KVS)データベース、(耐久性の無い)インメモリデータグリッド、スケールアウトデータベースの比較に広く使用されている

• NoSQLワークロードで比較した際の前提:

• Workload A: 50% 読込み, 50% 書込み

• YCSBクライアントの変更不可

• DBベンダーが実装したJDBCクライアントを使用

•バージョンと正確な設定が重要

YCSB ベンチマークScaling and Elasticity.

Product Nodes TPS/OPS

32 227k

2 275k

3 715k

6 1.6M

8 1.6M

4 2.8MCluster

Page 12: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates12

[検証環境]

YCSB 0.15.0 with JDBC / SQL

• レコード数1kB (デフォルト)

• requestdistribution: uniform (均一分布)

• データノード数:2、4、8

• NoOfReplicas:2

• strong consistency

• ACID (read committed)

※データノード数8の検証は2つのAD(Availability Domain)にまたがって環境を構築

• AD間のネットワークレイテンシは約400us

データノード数増加による拡張性Online Scaling and Elasticity. Repartitioning

1M

2M

3M

4M

2 4 8(2 ADs)

1.4M

2.8M

3.7M

トランザクション数

/秒

Nodes

Page 13: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates13

[検証環境]

・4 データノード

・データ量:3億行、6億行

・JDBC使用

[結果]

99% SQL reads < 1ms

• 95% < 0.9ms

99% SQL writes < 2ms

• 95% < 1.7ms

Real-time low latency SQL YCSBOnline Scaling and Elasticity. Repartitioning

1M

トランザクション数

/秒

2 ms

同じスループットと遅延時間

3億行 6億行

1.2

5M

TP

S

1.2

5M

TP

S

Re

ad

s

Re

ad

s

Wri

tes

Wri

tes 1 ms

Page 14: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

14

MySQL NDB Cluster 導入事例

Copyright © 2020, Oracle and/or its affiliates

Page 15: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

15

MySQL NDB Cluster 導入事例:携帯電話ネットワーク

HLR / HSS

課金, 認証, VLR

認証, 追跡接続サービス, 課金

位置情報の更新

プリペイ&ポストペイ課金

• 大量の書き込みトランザクション

• 3ms未満のデータベースレスポンス

• 停止時間 & トランザクション消失 = ビジネスの損失

Copyright © 2020, Oracle and/or its affiliates

Page 16: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

16

MySQL NDB Cluster 導入事例:航空機管制システム

• 米国海軍航空母艦

• 包括的航空機運用管制システム

• メンテナンス記録

• 燃料搭載量管理

• 気象状況

• 飛行甲板管理

• システム要件

• 単一障害点無し

• 完全な冗長性

• 小さなフットプリント & 過酷な利用環境での利用

• 4台のMySQL Clusterノード LinuxおよびWindows

ノード・グループ1

F1

F1

F3

F3

ノード

1ノード

2

ノード・グループ2

F2

F2

F4

F4

ノード

1ノード

2

データ・ノード

Copyright © 2020, Oracle and/or its affiliates

Page 17: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

17

MySQL NDB Cluster 導入事例:ビットキャッシュ株式会社

• 対象システム

• 電子マネー関連のシステム

• 課題

• データの取り込み処理と集計処理の高速化を低コストで実現

• データベースの可用性と拡張性の向上

• ディザスタリカバリ―サイトの構築

"MySQL Cluster Carrier Grade Editionを導入したことで、高い処理能力をシステム基盤に構築できました。また、高可用性を持ったインメモリデータベースであるMySQL Clusterを導入したことにより、加盟店に関する膨大なデータの取り込み時間を1週間から30分程度まで短縮できました。"

• お客様の声

Copyright © 2020, Oracle and/or its affiliates

Page 18: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

18

MySQL NDB Clusterの仕組み

Copyright © 2020, Oracle and/or its affiliates

Page 19: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates19

MySQL NDB Clusterは複数台のサーバーでDBを構成する(推奨最低構成は4台)

MySQL Server

SQLノード兼

管理ノード

SQLノード兼

管理ノード

データノードデータノード

MySQL NDB Cluster

冗長化

冗長化

Page 20: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

20

データノード

• データ、インデックスを管理し、トランザクションを制御するノード

• データのレプリカを別のノードで持つことで冗長性を確保

• MySQL NDB Clusterの中核となるノード

アプリケーションノード(SQLノード)

• アプリケーションとデータノードをつなぐインターフェースとなるノード

• SQLで処理する場合は、MySQL Serverが稼働する

• NoSQLで処理する場合は、MySQL Serverは不要

管理ノード

• MySQL NDB Cluster全体を管理するノード

• 各ノードの設定管理、クラスタ全体の起動/停止、オンラインバックアップ、など

MySQL NDB Clusterを構成する3種類のノード

Copyright © 2020, Oracle and/or its affiliates

Page 21: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

21

データ・シャーディングデータノードでのデータ保持方法

データ・ノード

ノード・グループ1

F1

F3

F3

F1

ノード

1ノード

2ノード・グールプ 2

F2

F4

F4

F2

ノード

3ノード

4

・主キーのハッシュ値で水平分割して、各データノードにデータを保持

⇒負荷分散による性能向上(台数追加によりスケールアウト可能)

・レプリカを別のデータノードと持ち合う

⇒冗長化による耐障害性Copyright © 2020, Oracle and/or its affiliates

Page 22: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

Copyright © 2020, Oracle and/or its affiliates22

データノードへのアクセスは、NDB API経由で行われる

Clients

Data Nodes

NDB API Common NDB API

MySQL Server& Custom Applications

SQLで処理する場合でも、

その他のAPI経由で処理する場合でも、

バックグラウンドでNDB API経由の

処理に変換されている

Page 23: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

23

データノードへのアクセスイメージ

Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps

JPA

Cluster JPA

PHP Perl Python Ruby JDBC Cluster J JS Memcached

MySQL JNI Node.JS ndb_eng

NDB API (C++)

MySQL Cluster Data Nodes

Copyright © 2020, Oracle and/or its affiliates

Page 24: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

24

MySQL NDB Cluster 8.0

Copyright © 2020, Oracle and/or its affiliates

Page 25: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

25

MySQL NDB Cluster 8.0: What’s New

MySQL 7.4 / 7.5

MySQL 7.6

MySQL 8.0

The world’s highest throughputreal-time datastore

- MySQL Server 5.7- 5x faster restarts- JSON Support- 50% faster reads- 40% faster read/write

MySQL Server 5.7Redesigned for hundreds of terabyteRedesigned for modern hardware50% faster joins2x faster scans10x faster restarts

More data nodes3 - 4 replicasDynamic Memory ManagementLarger rowsFaster SQLFaster disk data

Copyright © 2020, Oracle and/or its affiliates

Page 26: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

26

MySQL NDB Cluster 8.0での主要な強化点

Copyright © 2020, Oracle and/or its affiliates

Page 27: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

27

MySQL 8.0との統合

Copyright © 2020, Oracle and/or its affiliates

Page 28: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

28

レプリカ数3、4の公式サポート

ノード・グループ1

F5

F1

F3

ノード

1

データ・ノード

F5

F1

F3

ノード

2

F5

F1

F3

ノード

3ノード・グループ2

F6

F2

F4

ノード

1

F6

F2

F4

ノード

2

F6

F2

F4

ノード

3

Copyright © 2020, Oracle and/or its affiliates

Page 29: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

29

扱えるデータサイズの拡張(数百TBクラスへの対応)

DataMemory

Copyright © 2020, Oracle and/or its affiliates

Page 30: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

30

トランザクション関連パラメーターの動的管理

Copyright © 2020, Oracle and/or its affiliates

Page 31: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

31

より高速で堅牢なディスクテーブル

Copyright © 2020, Oracle and/or its affiliates

Page 32: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

32

SQLパフォーマンス、パラレルバックアップのパフォーマンス向上

Node 2Node 1

Copyright © 2020, Oracle and/or its affiliates

Page 33: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

33

SQLパフォーマンス、パラレルバックアップのパフォーマンス向上

Node 2Node 1Node 2Node 1

Copyright © 2020, Oracle and/or its affiliates

Page 34: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

34

まとめ

Copyright © 2020, Oracle and/or its affiliates

Page 35: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

35

MySQL NDB Cluster CGE(商用版)

Copyright © 2020, Oracle and/or its affiliates

Page 36: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

36

MySQL商用版を購入する理由

技術サポート

商用版MySQL

知財補償

追加機能

商用ライセンス

Copyright © 2020, Oracle and/or its affiliates

Page 37: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

37

MySQLサポート

Copyright © 2020, Oracle and/or its affiliates

Page 38: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

38

MySQL Cluster CGE:サポートに加え追加機能も提供

Copyright © 2020, Oracle and/or its affiliates

Page 39: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

【MySQL お問い合わせ窓口】0120-065556

【受付時間】平日 9:00-12:00/13:00-17:00(祝日及び年末年始休業日を除きます)[email protected]

39

Page 40: NoSQLとしても使える高可用性インメモリDB MySQL NDB …€¦ · MySQL 7.4 / 7.5 MySQL 7.6 MySQL 8.0 The world’s highest throughput real-time datastore - MySQL Server

40

お知らせ

Copyright © 2020, Oracle and/or its affiliates