Slide 1

Slide 1 text

Cloud SpannerとMerpayの歩み @sinmetal and @apstndb

Slide 2

Slide 2 text

セッションの質問について みなさまからの質問を受け付けています! YouTube チャット、 Twitter ハッシュタグ #MerpayTechFest を使ってください。

Slide 3

Slide 3 text

sinmetal 株式会社メルペイ GAEマイスター ソリューションチーム 2017年10月にメルカリに入社。 当 初はソウゾウにいたが、 2018年4 月 にチームごとメルペイに 異 動 。 GAEマイスターを 名 乗 っているが、 今はCloud Runを使っている。 apstndb 株式会社メルペイ ソリューションチーム 2020 年 1 月 にメルカリに 入 社 。 Cloud Spanner 周りは実行計画と かクライアントライブラリの 実 装 とか を見つつパフォーマンス改善していま す。

Slide 4

Slide 4 text

Merpay and Spanner Release History 2017 2018 2019 2020 2021 2022 Spanner GA メルペイ ローンチ DML SLA 1Node Backup Restore Spanner Emulator PiTR CPU Priority Change Stream Granular instance sizing

Slide 5

Slide 5 text

google-cloud-goとの付き合い ● メルペイでのSpannerとの戦いの日々              (https://engineering.mercari.com/blog/entry/2019-04-18-090000/) ● https://github.com/googleapis/google-cloud-go ○ Session Poolの変化 ○ Client Side Metricsの追加

Slide 6

Slide 6 text

Queryのパフォーマンス・チューニング ● Cloud Spanner の実行計画の活用に関する取り組み (https://engineering.mercari.com/blog/entry/20201210-cloud-spanner-query-plan/)

Slide 7

Slide 7 text

Lockの最適化 ● どうすれば Abort が減るか ○ Abort の一部はロックによるもの ■ Cloud Spanner のロックについて ● https://zenn.dev/apstndb/articles/a62ac78b3b91bb ■ Lock Stats(2021 Jan) により検証・調査可能になった ● Lockの競合をどのようにして見つけるか? ○ 競合相手はだれ? ■ conflict したキー範囲だけでは特定できない場合も ○ Transaction Tagを使いたい

Slide 8

Slide 8 text

作成したOSS ● https://github.com/cloudspannerecosystem/yo ○ SchemaからGo CodeをGenerate ● https://github.com/cloudspannerecosystem/wrench ○ schema management tool ● https://github.com/cloudspannerecosystem/spool ○ TestのためにDBをPoolし、払い出す ● https://github.com/gcpug/handy-spanner ○ Spanner Emulator

Slide 9

Slide 9 text

No content