HTAP技術：トランザクション処理と解析処理の壁を越えて横田
２０２０年１０月２７日

劔ユーザ会

東京工業大学治夫

情報理工学院1

データベース処理の大別 OLTP（On Line Transaction Processing）
 同時に多数で頻繁な更新を含むデータベース処理
 例：銀行ATM、コンビニPOS、座席予約システム、課金システム等々
 特徴：コンシステンシィとレスポンスタイムの制約
 基幹系の更新時に異常（Anomaly）が入ることは許されない
 端末の前の顧客を待たせることは許されない

 OLAP（On Line Analytical Processing）
 蓄積されたデータを解析するようなデータベース処理
 例：期間別売上集計、商品別販売動向調査、知識（ルール）発見等々
 特徴：大量のデータに効率よくアクセスする必要
 データの量が意思決定に影響
2020/10/27

横田＠東工大2

古くて新しい話
 OLTPのデータをどうやってOLAPに反映させるか
 昔からの課題：基幹系と情報系の融合
 基幹系と情報系と呼ぶことが多かった

 反映の遅延は諦めていた 週末、夜間にバッチ処理で、OLTP からOLAP用データを抽出 先週のデータ、昨日のデータで解析 古くは磁気テープに吸い出して違うシステムに移動

 要求：できるだけ素早く反映させた解析を行いたい！

 HTAP（Hybrid Transactional/Analytical Processing）
 近年、多くの国際会議で話題に トランザクション処理と解析処理の壁を乗り越える 背景：記憶デバイス、ネットワーク環境の進歩、メニーコア環境
2020/10/27

横田＠東工大3

最近の論文例（一部）[1] A. Raza, P. Chrysogelos, A. C. Anadiotis, and A. Ailamaki. “Adaptive HTAP throughElastic Resource Scheduling”. In Proc. of SIGMOD'20, pp. 2043–2054, (2020)[2] D. Huang, Q. Liu, Q. Cui, Z. Fang, X. Ma, F. Xu,…, W. Wei, “TiDB: a Raft-based
HTAP database”. PVLDB, 13(12), 3072-3084, (2020)[3] D. Butterstein, D. Martin, K. Stolze, F. Beier, J. Zhong, Li. Wang, “Replication atthe Speed of Change - a Fast, Scalable Replication Solution for Near Real-Time HTAP
Processing” PVLDB, 13(12): 3245-3257 (2020)[4] J. Yang, I. Rae, J. Xu, J. Shute, Z. Yuan, K. Lau, Q. Zeng, X. Zhao, J. Ma, Z. Chen,
Y. Gao, Q. Dong, J. Zhou, J. Wood, G. Graefe, J. F. Naughton, J. Cieslewicz, “F1Lightning: HTAP as a Service” PVLDB, 13(12): 3313-3325 (2020)[5] C. Riegger, T. Vinçon, R. Gottstein, I. Petrov, “MV-PBT: Multi-Version Indexing forLarge Datasets and HTAP Workloads”, in Proc of EDBT’20, pp. 217-228 (2020)[6] C. Luo, P. Tözün, Y. Tian, R. Barber, V. Raman, R. Sidle, “Umzi: Unified Multi-Zone
Indexing for Large-Scale HTAP” In Proc. of EDBT’19, pp. 1-12, (2019)[7] M. Boissier, R. Schlosser, M. Uflacker, “Hybrid data layouts for tiered HTAP
databases with pareto-optimal data placements” In Proc. of ICDE’18, pp. 209-220,(2018)＊HTAPがタイトルに含まれているもの

2020/10/27

横田＠東工大4

そもそもなぜ壁があるのか 処理対象の違い

ID

品名単価販売在庫

 一つの行中で複数個所を検索更新
更新
 行の挿入001

バナナ

2002080002

リンゴ

1503565003

ブドウ

500

545

 全部の行の特定の属性を集計

004

みかん

60

1090005

梨

250

0100

 OLTP: 行単位
 OLAP: 列（属性）単位 同時実行制御上の問題

挿入 OLTP:

解析
例：Σ（単価×販売）

 小さい単位で短時間排他

 OLAP: 大きな単位で長時間共有

2020/10/27

OLTP
横田＠東工大

OLAP
5

更新適用
OLAP

OLTP
更新

解析

挿入更新適用ID

品名単価販売

在庫80001

バナナ

20020803565002

リンゴ

1503565500545003

ブドウ

500

545

みかん

601090004

みかん

601090梨

250050ID

品名単価販売在庫001

バナナ

20020002

リンゴ

150003ブドウ004005

バッチ（できるだけ）
瞬時に例：Σ（単価×販売）

 OLTPとOLAPを分けると、それぞれを高速に処理可能 更新を適用：従来は週末、夜間→早期に解析結果が知りたい（瞬時？）

2020/10/27

横田＠東工大6

同時実行制御の問題
OLTP

Begin
W(X, 80)
CommitBeginW(X, 65)
Rollback
対応

X

80

OLAP

Begin

OLTPがOLAPで待たされるorアボート
OLTP

X

Begin
W(X, 80)
Commit
80

OLAP

Begin
R(X, 80)

65

80

R(X, 65)

Begin
W(X, 65)
CommitCommitWait
対応

Read Uncommitted
Dirty Read
2020/10/27

２PL65

R(X, 65)
Commitor Abort
SELECT FOR UPDATE

OLTP

X

Begin
W(X, 80)
Commit 80

OLAPBegin
R(*) X:80

Y
Begin
２PL
W(Y, 50)
50CommitR(*) X:80
Y:50
Wait
Commitor Abort
対応
LOCK TABLE
Giant Lock

Repeatable Read
Read Committed
Phantom Read7
Non-Repeatable (Fuzzy) Read

Snapshot Isolation
 トランザクション開始時に必要なデータセットのスナップショット（バージョン）を処理の対象とする
 元データが変更されても、その前のバージョンが対象 開始前にCommit されたデータセット

 non-repeated read も phantom read も、対象のデータデータセットが変わらないので発生しない

 Serializable にならない（Write Skew Anomaly）

 同じスナップショットを使った条件付きの複数の更新が成立した後で条件が崩れるような場合
 条件X+Y>0の下で、X=70、Y=80の時、T1:X-100、T2:Y-100

 RW-Dependency が連続して2つ以上あったらアボート：SSI
2020/10/27

横田＠東工大8

Read Only (Skew) Anomaly Snapshot を読むだけで発生する Anomaly Commit したデータセットを読んでも並行して走っているト
ランザクションからの依存関係にループが発生
OLTP
T1
Begin
R(X0, 0)W(Y1, 20)
Commit T1

OLAP

T2
Begin
R(X0, 0)
R(Y0, 0)RW
WR
W(X2, -11)
Commit T2

RW

T3
Begin
R(X0, 0)R(Y1, 20)
Commit T3

依存関係ループ
T2-T1-T3-T2
OLTPから
OLAPは見えない

本プロジェクト：
解決の目途9OLTP/OLAP リソース管理
 OLTP と OLAP のリソースを交換 [1] A. Raza, P. Chrysogelos, A. C. Anadiotis, and A.
Ailamaki. “Adaptive HTAP through Elastic ResourceScheduling”. In Proc. of SIGMOD'20, pp. 2043–2054,(2020)
 更新適用のロードや ROA 等は考慮されていない

2020/10/27

横田＠東工大10

Many Core での動的リソース管理 更新適用での ROA、およびコアアサイン [DEIM2020]

動的負荷分散ROA対応

2020/10/27

横田＠東工大11

関連文献
1. 諸岡 大輝, 塩井 隆円, 引田 諭之, Le Hieu Hanh, 横田 治夫. 複数コア環境におけるHTAPを想定した OLTP更新のOLAPへの適用手法の検討・評価. 第12回データ
工学と情報マネジメントに関するフォーラム論文集, H2-2, 2020.3.
2. 塩井 隆円, 横田 治夫. OLAP用列指向データ構造へのOLTP用行指向データの変換方式の検討. 第11回データ工学と情報マネジメントに関するフォーラム論文集, J5-5, 2019.3.

3. 諸岡 大輝, 塩井 隆円, Le Hieu Hanh, 横田 治夫. 複数コア環境におけるアクセス範囲を考慮したOLTP/OLAP同時実行手法. 第11回データ工学と情報マネジメントに関するフォーラム論文集, H2-1, 2019.3.
4. 塩井 隆円, 横田 治夫. SCMを想定した行単位更新の列指向DBへの反映手法，第１０回データ工学と情報マネジメントに関するフォーラム論文集, C6-1, 2018.3.
5. Takamitsu Shioi, Kenji Hatano, Haruo Yokota, "SCMAT: A Mechanism
Presuming SCMs To Efficiently Enable both OLAP And OLTP“, Proceedingof the 6th IEEE International Congress on Big Data (BigData Congress2017), pp. 313-320, 2017.6.
2020/10/27

横田＠東工大12

ご清聴ありがとうございました13