dbtech showcase Tokyo2018に参加
dbtech showcase Tokyo2018に参加
このカンファレンスは「プログラマのためのSQL」の参加者から聞いて知りました。 大企業/メガベンチャーのDBの運用ノウハウだったりデータベースベンダーの方から最新の製品テクノロジなどが楽しく聞けた3日間でした。
ストレージ
- A27:DBエンジニアのためにSSD Q&A集
SSDのセッション。内容は以下の4つ
#dbts2018
— yuYabu@転職中 (@yuyabu2) September 20, 2018
FW進化の歴史
0.何もしない(古いデータの読み取りがどんどん遅い)
1.読み出しごとにリフレッシュ(初回リードが毎回遅い)
2.定期的に強制リフレッシュ(余計な書き込みが発生する)
3.Patrol Read:アドホックにリフレッシュ(電圧が下がっている場所を発見する)
SSDはHDDより爆速で早い、程度の認識しかなく、そこまで興味はなかったのですが、twitterのタイムラインが盛り上がっていたので急遽参加しました。
SSDの仕組みから始まり、寿命やコントローラーの説明、NVMeの展望などが語られました。
SSDはファームウェアは順調に進化しているが、それを利用するOSやFSはまだまだ技術に追いついていない(特にNVMe)という印象を持ちました。
企業システム向けのSSDはまだまだ進化の余地があり、今後ますます注目が集まってくる分野になると思います。
MySQL 8.0
ドキュメントベースのNoSQLデータベースとして利用しつつ、jsonの任意のデータを選択した仮想列を作成してそちらをSQLから参照するというテクニックが披露されました(x dev API)。MySQL8.0では他にもWindow関数が入ったりして大きく標準SQLに近づいたというか、自分の中でMySQL株が上がりまくりです。
トランザクション理論
- A13・14:今後のDBのトランザクション処理のあり方について徹底討議する ~"InvisibleWriteRule: トランザクションの書込み最適化" を中心に
- C33:MVCCにおけるw-w/w-r/r-wのあり方とcommit orderのあり方の再検討~Sundial: Harmonizing Concurrency Control and Caching in a Distributed OLTP Database Management Systemを題材に
1日めのA13/14は忘れ物で*1遅れて参加したため、後半部分しか聞けませんでした。最近気になって購読し始めた「ぱと隊長日誌*2」の筆者の方や神林さん、kumagiさん(参加者)などなど、トランザクションに関する情報発信をされてる方々が勢揃いされていたので、面白いディスカッションだったと思う。
C33は事前に前倒しで開始する...との連絡が非公式にありましたが、5分前に到着したところすでに始まっており、前倒ししたのに10分程度延長されていた
DBTS2018 C33「MVCCにおけるw-w/w-r/r-wのあり方とcommit orderのあり方の再検討」にご興味のある皆様へ、神林さんから伺ったことを共有します。開演時刻を少し前倒しするかも(注:昨年も同様で、かつ終演時刻overの熱さ)。スライド公開予定:Noとなっているけど、公開するかも。(続く)#dbts2018
— ぱと (@pato_taityo) September 20, 2018
今日の神林さんの講演は予想通り前倒し開演、終演時刻ぶっちぎり(でも終わらない)だったな。でも、あの熱の入った講演スタイルは大好きだったりする。#dbts2018
— ぱと (@pato_taityo) September 21, 2018
発表内容としてはこちらの論文を読みながらMVCCやOCCを分散システムに適応するとどうなるか、という発表内容だった。
http://www.vldb.org/pvldb/vol11/p1289-yu.pdf
個人的に印象に残ったのが、
- Sundialのアルゴリズムではロックに頼らず、時系列順(Timestamp Ordering)に頼ってデータの整合性を担保する
- サイト間で物理時間は同期しない。*3同期するのは順序のみで、順序同期なら技術的に可能らしい
- 実行順序を工夫することで、発生順ではありえない操作が実現できる
r1(x2)w2(x2)c2c1→w2(x2)r1(x2)c2c1
あとちなみに別セッションですが...
Amazonのマルチマスタなデータベースに関して分散システムの勉強会で話題に登りましたが...
#dbts2018
— yuYabu@転職中 (@yuyabu2) September 21, 2018
amazonのマルチマスターのコンフリクト解決はcommit先勝ち。
競合する後続のトランザクションはどんなに長くてもロールバック(例外もある)
書き込み競合は先勝ちとなっているようです。ではデッドロック検知は...気になりますねぇ(やっぱりタイムアウトなんでしょうか?)
大企業のDBA
他にもLINEさんのセッションやリクルートさんのセッションが面白かったです。 普段は聞けない大企業のDB運用事例について聞くことができました。
#dbts2018
— yuYabu@転職中 (@yuyabu2) 2018年9月20日
LINEが使ってるデータベース関連プロダクト
・REBMS
MySQL
Oracle
SQLServer
CUBRID(韓国Narva製)
・NOSQL
redis
mongoDB
HBase
elastic
※redisとMySQLがメイン
#dbts2018
— yuYabu@転職中 (@yuyabu2) September 21, 2018
NoSQLはキーバリュー,ドキュメント型
とかで分類するのは古い
NoSQLの新しい分類方法
- レスポンスタイム追求型
- 開発容易性追求型
リクルートさんの方は社内事例の紹介という訳ではなく、昨今話題の様々なデータベース関連製品の紹介&整理でした。分量が多すぎて理解しきれていませんが、格DBやその使い分けに関してわかりやすく紹介されていました。
#dbts2018
— yuYabu@転職中 (@yuyabu2) September 20, 2018
LINEではMySQL Query Replayerを開発中!
ネットワークパケットからクエリを取得してリプレイするツール。
来年のdbtech show caseで発表予定か!?
LINEさんは自社でMySQL関連のツールを色々作られているそうです(面白そう) 1日目のYahooさんの発表も聞いておけばよかったと後悔。
勉強時間の大半をRDBMSに費やしていましたが、今までDBAの方のお話を聞く機会が今までなかったので刺激的でした。
*1:メガネ...これがないと発表会では何も見れない