1. London Tech Talk
  2. 【Bookclub 第四弾】 "Databas..
2024-12-24 30:06

【Bookclub 第四弾】 "Database Internals" 参加者募集のお知らせ

spotify apple_podcasts
ken
ken
Host

London Tech Talk 名物となった Bookclub 第四弾の本が決まりました。"Database Internals" を一緒に読んでいきます。

今回は三つのタイムゾーンのうち二つのタイムゾーンフレンドリーな開催時間をローテーションで回していきます。北米で参加者を積極的に募集しています。APAC および EMEA の場合、参加者多数のため、Waiting List の追加とさせてください。

参加をご希望の方は、以下のお便りフォームよりご連絡ください。初回は 1 月 13 日週を検討しています。

サマリー

2025年1月から開催されるLondon Tech TalkのBookclub第4弾では、『Database Internals』を使用して参加者を募集しています。新しい運営スタイルでは、同期と非同期参加のバランスを取りながら、タイムゾーンを考慮した参加者の交流が促進されることを目指しています。今回のエピソードでは、『Database Internals』を通じてデータベースの理解を深めるブッククラブの参加者を募集しています。参加者は、データベースの裏側や性能最適化の技術について学ぶ貴重な機会を得ることができ、また、参加者同士でのピアラーニングが促進されます。データベースの内部構造に関する本「Database Internals」の内容について議論し、その知識を深めるためのブッククラブが開催されます。参加者は、分散トランザクションや整合性モデルなどの難しい概念を共に学ぶ kesempatanを得ることができます。

00:03
はい、リスナーのみなさん、こんにちは。London Tech TalkのKenはKazumaです。
2024年も年の瀬ですが、皆さんいかがお過ごしでしょうか。お忙しい方も、既にお休みに入られた方も、いつも通りの日常を過ごしている方もいらっしゃると思います。
Bookclubのスタイル改定
今日はですね、ホストの一人である私、Kenの方から、次回のBookclub開催のお知らせを収録していこうと思います。
昔から聴いてくださっているリスナーの方には、既にお馴染みだと思うんですけれども、London Tech Talkのサブコンテンツとして運営しているBookclub、第3弾でタイリファースト読み終わったんですけれども、
来年2025年の1月からですね、第4弾ということで、Database Internalsという本を一緒に読んでいくことが決まりました。
今回の収録では、次のDatabase InternalsではどのようなスタイルでBookclubを回していくか、そして本書を選んだ経緯に加えて、最後の方に特定のタイムゾーンで参加者を募集しているので、その募集のお知らせをしていこうと思います。
ということで、まずですね、今回のBookclubの運営スタイルについて話そうと思います。
前回のタイリファーストからちょっと変更してます。
サンタイムゾーンから参加してくださる人が多いことが、London Tech Talkの一つの特徴でもあるんですね。
東京を中心とするAPACとヨーロッパ、ヨーロッパは本当にいろんな国々から参加してくれている人が多くて、ヨーロッパのイミヤと、あとはノースアメリカ、ノースアメリカは今のところ西海岸の方がほとんどですね。
その参加者なんですけども、今回はサンタイムゾーンの持ち回りで、サンタイムゾーンのうち2つのタイムゾーンフレンドリーの時間を順番に開催していくという形にしようと思います。
具体的には、まず1回目はAPACとイミヤが参加しやすい時間、その次はイミヤとノースアメリカが参加しやすい時間、
その3回目はノースアメリカとAPACが参加しやすい時間、そのパターンを最後の章まで繰り返していくという形にしようと思います。
つまりどういうことかというと、3回に2回はブッククラブのディスカッションに同期で参加できて、3回に1回はよほどのモチベーションと、なんか寝れない日とか、すごい朝早く起きちゃったんだよっていうことがない限りは基本的には非同期でディスカッションに参加するという形になります。
第3弾であるTidy Firstの振り返り収録でも触れたんですけども、前回は2つのタイムゾーンの時間に分けて並行して進めるという形を取ったんですね。
これはメリットとデメリットどっちもあったんですけど、参加しない方の参加者の人との交流の機会が減ってしまったということを何かしらの形で克服できないかということで、
今回は同期と非同期を良いバランスで塩梅に混ぜて参加したらうまく回らないかなということで、この形を試してみようと思います。
やっぱりメリットとしては全員で1つのブッククラブに参加しているということで、交流の機会が増えるかなと思いますし、
参加回数も同期のミーティングに参加するのが3回に2回になるので、要求ハードルというのもちょっと下がるのがいいかなと。
タイムゾーンの配慮
次に読む本は結構ちょっと難しめの本にはなると思うので、それもプラスに働くかなと思います。
デメリットとしては3回に1回が非同期のキャッチアップになります。
具体的には本を読んだ後で全員が共有されるGoogleドックスで読んだ感想とかディスカッションポイントを書いていくんですけど、
3回に1回はそこに非同期で書いてディスカッションが終わった後非同期で見るコメントをもらったらコメントに返信するという形になるんですけれども、
ここは今回やっぱりあえて非同期でどれぐらいディスカッションが盛り上がるかというのも少しずつ試行錯誤していきたいと思っているんですね。
なのでディスコード内での交流も結構盛んなので、
30%ぐらい、33%ぐらい、3分の1ぐらいは非同期でディスカッションを試してみて、そこでどれだけ盛り上がるかというのも試していこうかなと思っています。
なのでタイムゾーンの断絶を避けつつに、同期プラス非同期でみんなで議論を盛り上げていけたらいいなと思っているのでこの形にしました。
そうすると一つだけ懸念がありまして、3回に1回、具体的にはノースアメリカとAPACフレンドリーの時間にファシリテーターである私が参加できない回数が3回に1回出てきます。
ということでそこ考えたんですけれども、グッドニュースがありまして、
昔から聞いてくださっている方には既にご存知だと思うんですけれども、ゲストとして何回も参加してくれて、
初回のブッククラブからもずっと参加してくれているテッペさんという方がいらっしゃるんですけれども、
彼がですね、APACタイムゾーンのリーダーとして任命させていただき、本人の了承も得ましたので、
私がファシリテーターとして参加できない日はテッペさんが当日の議論のファシリテーションをしてくれるということになりました。
初回からブッククラブにも参加してくれているし、いつも確信をついたようなコメントをくれるので、
安心してお任せできるということで、僕が参加できない時には彼にAPACタイムゾーンのリーダーとしてファシリテーターをしてくれることになったので、
この懸念も大丈夫かなと思っています。
参加者募集の詳細
ゲストと過去のブッククラブ参加者で基本的に回しているDiscordでは既に募集を終わらせていて、
APAC、EMEAで大体枠が埋まって参加してくださる方が増えました。
なのでスケジュール感としては、2025年の1月中旬から初回開催を目指していこうと思っています。
初回は1月13日中に決まっていて、ここがAPACとEMEAの参加になりますね。
今日の収録ではですね、これを聞いて、もし今までリスナーで連絡とかお便りとかなかった人でも、
今回浮気にブッククラブに興味があるという方はですね、このshownote.ly、Googleフォームの参加希望フォームを貼るので、そちらから連絡ください。
これはいつも貼ってあるお便りフォームとは別の、今回のデータベースインターナル第4弾のブッククラブ参加者希望専用のフォームとなっております。
すでに決まった参加者の人数によってですね、基本的にはノースアメリカで積極採用して、
EMEAとAPACは残念ながら現時点で枠が埋まってしまったので、
ウェイティングリストという形に申し訳ないんですがさせてください。
ただですね、特にEMEAですけれども、途中まで同期で参加できるけれども、
途中から非同期参加させてくださいという方がいらっしゃるので、
EMEAの場合はですね、途中から確実にウェイティングリストの1番目の方は同期参加に移れると思いますので、
気軽に興味があれば連絡してください。
結構悩んだんですけれども、参加したいと言ってくれる方を全員できれば入れたいんですけれども、
それは結構トレードオフかなと思ってて、
やっぱり同期のミーティングって発言する機会が少なくなればなるほど議論へのコントリビューションも減ってしまって、
自分が得られるテイクアウェイも少なくなってしまうんですよね。
なのでなるべく参加できる人が10人を超えないようにしたいと。
現時点で1番多いのがAPACで次にEMEAが多くて、APACでEMEAを合わせると12人になってしまって、
12人で日程調整をすると大抵2,3人の方は出れないので、9人とか10人でマックスでやっていくと思うんですけど、
これが最大かなと思ってますので、こういう形にしました。
ただノースアメリカは現時点で参加者確定が2名だけなので、
もしノースアメリカで参加したいという方がいたら確実に入れますので、お気軽にご連絡ください。
これが今回のブッククラブのスタイルで、他は今まで通りのやり方で、
事前に本を読んでディスカッションノートを書いて参加するという形になります。
ということで次は、データベースインターナルズという本の紹介をしていこうと思います。
そしてこの本書を選んだ経緯を説明していこうと思います。
過去2回のブッククラブでは、第2弾と第3弾ですね。
ソフトウェアアーキテクチャ売りの書籍を選びました。
これも良し悪しがあって、
マグチが広かった分、すごい読みやすかったとも言えます。
特に前回のTidy Firstはページ数も少なかったので、
ブッククラブ自体も3回で終わりましたし、
フロントエンジニアの方からバックエンドエンジニア、インフラとかいろんなマネジメントとか、
どのジョブロールでも自分のコンテキストに解釈して、
テイカーウェイ語をやりやすかったと思います。
ただ一方でですね、第1弾、ブッククラブ第1弾でみんなで読んだDDIA、
Designing Data Intensive Applicationという難易度が高くてかつ分厚かった本を読んだ時の雰囲気と若干違って、
DDIAを読んだ時っていうのは結構全員で読み終えた時の達成感とか、
参加者同士で協力して乗り切った感じ、爽快感というかが感じられたんですね。
特にDDIAの最後のブッククラブが終わった時は、
祭りの後の日、文化祭の最終日じゃないですけど、
みんなやったねみたいな感じがあってたので、
今回はロンドテックトークのブッククラブの初心に立ち戻るということで、
今前回選んだTidy Firstよりは難しい本にしたくて、
かつ自分が走り程度をするという意味でも何かしら参加してくれる人にコントリビューションできるという意味で言うと、
やっぱりデータベースとかSREとかインフラ領域であれば、
事前知識としてもあるので、データベース関連のほうがいいかなと思ってこの本にしました。
ただですね、じゃあ参加者がデータベースエンジニアとかインフラとかバックエンドだけかというと全然そんなことはなくてですね、
データベースという領域自体は結構どのレイヤーのエンジニアでも基本的に考えざるを得ないデータモデリングとかもありますけれども、
例えばフロントエンジニアの方でもブラウザで使えるキーバリューストアとか、
データベースの重要性
データベースはバックエンドの裏側で動くだけのものではないですよね。
最近とかはワズムとかで動くブラウザで動くデータベースのプランというかそういった実装とかもされていますし、
モバイルエンジニアの方でもオンデバイスで動くSQLiteとかデータベースにアクセスするみたいなことは日常茶飯事のようにやると思うので、
データベースを全く触ったことがないという方はいないと思います。
だしデータベースの裏側で使われているコンセプトとか知識っていうのは普通にアプリケーションレイヤーを変えていて、
知っておくと便利なこととかって結構あったりすると思うんですよね。
例えば簡単なサーチボックスとか検索のすごいナイーブな実装をしようとしたときに、
シンプルに検索のリストを全てAPIコールで持ってきたりとかしようとすると基本的にパフォーマンスのボトルネックになるので、
点値インデックスとかインデックシングとかパフォーマンスを上げるために何かしらいろいろゴネゴネするテクニックっていうのはあると思うんですけど、
それって大体データベースがもう昔からやってきている技術だったりするわけですよね。
なのでデータを読み書きに特化したデータベースというもう昔からあるソフトウェアの裏側を知ることで、
実は普段書いているアプリケーションレイヤーのビジネスロジックを書くときに知っておくとパフォーマンスの観点とかスケーラビリティの観点で、
よりアドオンの価値を出せるようになる場面もあるんじゃないかなと思っています。
ブッククラブの目的
やっぱりブッククラブをファシリテーションする僕という立場からとしても、
例えば参加者が業務でデータベース書いてますみたいな、
データベース詳しい人だけだったら多分ファシリテーションも楽というか楽だと思うんですよね。
みんな知っているし、もうみんなでただ読んで終わりみたいな。
そうじゃなくて、データベースにすごい詳しくなりたい、
でも一人で読んだときには挫折しちゃったりとか、
どこから読んだらいいかわかんないみたいな人にこそ参加してほしくて、
そういう人がロノテクトクのブッククラブという学習システムの枠組みで他の人とピアラーニングしたり、
毎回のブッククラブに参加するみたいなデッドラインスタイルのモチベーションで駆動されたりする中で、
どこまで難しい目のトピックにチャレンジしていくかというところをグループラーニングという形で乗り越えられるんじゃないかなと僕は思っていて、
その一つの試行錯誤の場でもあるので、
やっぱりデータベースでも詳しくなりたいという、詳しくなりたいという好奇心がすごい大事だと思うんですよね。
なので、もし好奇心があったらそれ以外いろいろ、
データベース全然知りません、SQLしか触ったことありませんみたいな、
自分の中で壁を作ってしまいがちなところなんですけれども、
そういう人にこそチャレンジしてもらいたい本だと思ってますし、
いろんな理由とかがあって、別にブッククラブに参加しなくても、
『Database Internals』の魅力
過去のリスナーからのフィードバック上、収録と一緒に本を読んでますみたいな方結構いらっしゃって、
これは嬉しいので、これを機にこの本を知ってて、
実は過去に読んだんだけど、一通り読んだけどよく分かんなかったりとか、
あとは途中で挫折してしまったりとか、つんどくに入ってるみたいな方は、
振り返り収録は今回も引き続きやっていく予定なので、一緒に読んでいけたらいいかなと思ってます。
このデータベースインターナルはですね、
アパチカ・サンドラと言われる、昔からあるブースなデータベースのコミッターの一人の方がですね、
数多くのデータベースの論文とか参照実装を噛み砕いて紹介している本なんですね。
そういう点において結構経由で貴重な、本という意味では経運で貴重な学習リソースだなと思っておりまして、
データベースに詳しくなりたい人にとっては絶好の教材かなと思ってます。
例えばこのデータベースに詳しくなりたい時に、他にもすごい良いリソースってたくさんあるんですね。
例えば、アメリカにデータベースを教えるとしたらここしかないみたいなすごい有名な大学があって、
そこのコンピュータサイエンス学部のデータベース詳しい人たちが集まっているところが、
YouTubeですごい良いコンテンツを提供していて、それだりするし、
あと他にも実際にJavaでデータベースを作ってみましょう、参照実装ですけどね、
っていう本もあったりするんですよね。
なのでもう業務でデータベースを書けるレベルになるところを目指すのであれば、
それこそ他に実際に手を動かしながら書いていくっていうリソースがあるので、
それはそれでいいかなと思うんですけども、このデータベースインターナルズは、
本当に自分で手を動かしながら実際にデータベースを書いてみるっていうレベルのリソースと、
あとは全くデータベースいりませんっていうレベルのちょうどいい塩梅にある本かなと思ってます。
それはなぜかというと、この本はほぼ参照実装がないです。
基本的にはコンセプトの紹介、概念とか背景技術の紹介がメインなので、
高度に依存していない書籍です。
もちろんこれはメリディメでもあって、手を動かすことでより理解できるという側面もある一方で、
いきなり手を書いて動かすよりはまずはコンセプトから理解したいとか、
まずはキーワードを知ることでその世界に入っていきたいという方にとっては、
まずDDIAもそうでしたけれども、
データベースについて知りたいという知的好奇心さえあれば、
誰でも手に取れる本かなとは思っています。
なので本書の構成自体も全体200ページか、
200、300ページいかないぐらいだったと記憶してるんですが、間違ったらすみません。
なのでDDIAほどは分厚くないですし、
データベースのストレージエンジンの実装であったり、
内部で使われているビーツリーとかデータ構造に特化した本ですので、
DDIAほどはスコープが広がりすぎてないというか、
いい意味でストレージエンジンの実装とそれを分散環境でどう運用していくかに閉じている本なので、
そこはボリュームとしてもブックラブをする側としてはすごいいいかなと思っています。
これが例えば実際にさっき紹介したようなYouTubeのコンテンツとか、
実際にデータベースを参照する、作っていくような本で、
実際にみんなでデータベースを書いてみましょうってなると、
それこそもう1年ものの学部でやるようなクラスレベルの努力量に、
参加者側も運営側もなってしまって、
それはちょっとトゥーマッチかなとは現時点で思うので、
まずはこのコンセプトとか背景技術の頭で理解するという意味で、
このデータベースインターナルをとっても良いかなと思っています。
タイミングという意味でもそうですね。
なのでタイプスクリプトを書くフロントエンジニアでも、
SwiftやKotlinを触るモバイルエンジニアでもデータベースを利用するので、
参入書籍が他の本よりはかえって低いかなと思っています。
参加者もしくは参加者規模へ伝えたいこととしては、
データベースの内部実装をひも解いていくという意味では、
例えば他のSQLの書き方とかデータモデリングの仕方とか、
SQLアンチパターンみたいな本よりは難易度高めの本とはもちろんなっています。
なので本書に書いてある内容を既に熟知しているのは、
現役のデータベースエンジニア、データベース自体を開発する、
開発者くらいじゃないかなと思うんです。
実際に過去に本書を手に取ったけれども、
僕もそうでしたけれども、
1回目というか最初の3回ぐらいは読んで途中で挫折したんですけれども、
このような一度読んで挫折したとか、
とても興味あるけど難しそうみたいな方こそ、
振り返り収録を一緒に読むという形で取り組んでもらえればいいかなと思っています。
データベースインターナルズ本書自体の構成もざっくり最後に紹介しますね。
この本書はパート1とパート2に分かれています。
全部で14かなチャプターありまして、
パート1ではまずデータベースを単体のプロセス、単一のノードで動くというところに特化して、
データベースがどのようにデータを保存するのか、
ファイルシステムレベルで、ディスクレベルでという観点に絞って書かれています。
なのでパート1では逆に言うと分散システムでどう動くかということは全く触れられていません。
なのでデータベースってやっぱりSQLっぽいのを投げるといい感じにデータを返してくれるという
アプリケーション開発者の観点で見ると何か裏側で動いているんだけど、
とりあえずデータを読み書きしてくれる単一のプロセスという理解だと思うんですけども、
それが裏側でどのようにデータをエンコーディングしてファイルシステムに
どのようなデータ構造をレバレッジしてパフォーマンスを高める形でデータを保存しているのか、
一般的にランダムアクセスが装置されているようなディスクにファイルを書き出すときに
どのようなデータ構造を使うことで書き込みのパフォーマンスを担保しているのかとか、
あとはメモリをキャッシュとして活用することでどのように読み取りのパフォーマンスを上げているのかとか、
いったようなSQLを投げてからデータが返ってくるまでの間ですね。
そこで裏側で何が起こっているかというのがキーワードなんとなく分かると思います。
例えばプロセスが故障したときにプロセスを再起動してもデータで残りますよね。
それでどのようにデータを復旧させているのかについて実装レベルではないんですけれども
キーワードとかコンセプトが分かるのがパート1になっています。
後半のパート2では今度は単一のプロセスとか単一のデータベースストレージエンジンについては何となく分かったと。
データベースの内部構造の理解
それを現在ではよくある形ですけどクラウドで分散環境でマネージ、動かしたときに
それらのデータがそれぞれ分散されたプロセスの間でどうコーディネート、調整されるというか
データが複数の分散プロセスの間でやり取りされるのかという分散環境に観点に絞って書かれています。
具体的に言うと複数のノードをデータベースのプロセスを運用する際の知見と解決手法についてキーワードと共に紹介されています。
例えば複数のノードのうちいくつかが故障してしまったらどのようにリカバリしますかであったり
データを複製するときにどう複製しますかであったり
データを一つのプロセスから別のリージョンに動いているプロセスにデータをコピーするときに
どうやって整合性を担保するのかそもそも整合性って何ですか
何で整合性って気にしなきゃいけないんですかみたいなことがパート2を読むと何となく分かるんじゃないかなと思います。
なのでいかにデータベースの裏側に今までの開発の中で疑問を持ったか次第かなと思っています。
SQL投げていい感じに返ってくればいいよ動いてくれればいいよ
もちろんデータベースのストレージエンジンとか分散環境でどう動いているかなんて全然知らなくてもいい内容なんですけど
例えばライブラリやSQLを通じて何らかのデータベースを触ったことがあるけどその向こう側で何が起こっているだろうとか
あとはB3っていうデータ構造が聞いてあるけどデータベースの実装に必須っていうのはどういうことなんだろうとか
あとはデータベースにアクセスするときにキャッシュとかロックとか聞いたことあるけど実際には何が起こっているんだろうとか
あとはデータベースがクラッシュして復元するけどそれはディスクレベルではどう動いているのかとか
そういった疑問を過去に持ったことがあれば何かしらの解決の糸口というのを教えてくれるほうかなと思います。
ブッククラブの開催告知
最後にインバージョンじゃないですけど逆にこの本書がカバーしない領域についても触れておくと
例えばSQLクエリラングエッジを書くテクニックとかSQLのアンチパターンについて紹介する本ではありません
それからRDBMSですねリレーショナルデータベースにおいてどうデータモデリングをしたらいいかとかについて紹介されている本でもありません
冒頭でお伝えしました通りアパーチカサンドラのコミッターの一人が書いているんですけれども
その特定のフレームワークとか特定のデータベースにおける効率的な使い方が書かれている本でもありません
例えばそのMySQLなどのパフォーマンスチューニングの本は別にありますし
アパーチカサンドラのコミッターが書いているからといってアパーチカサンドラの宣伝本でも僕の印象では全くありませんでした
ということでデータベースインターナルズ 興味ある方は一緒に読んでいきましょう
最後に一言だけ これはファシリテーションする側の僕としての目線の共有 観点の共有なんですけど
その第4弾 僕としては自分がファシリテーターとして運用するという意味では第2回目の
僕クラブのファシリテーションする側としての裏目標というのも簡単に紹介しようかなと
それを紹介してクロージングしようかなと思います
それはですね ある程度難しい書籍を選んだとしても
最後まで離脱率を最小限に抑えつつ 全員で完走できるかというところはすごい気になってますし
個人的なチャレンジかなと思ってます
やっぱり大学のゼミとかブートキャンプとか グループラーニングの醍醐味でもあると思うんですよね
他の人と一緒に切磋琢磨的なモチベーションで頑張ってもいいし
あと自分の課題を誰かメンターみたいな人に助けてもらいながらやるでもいいんですけども
グループの他の参加者との関係性というのはいろいろあると思うんですけども
例えば読む前はですね B3なんて聞いたことなかったようなエンジニアの人が
本集を読み終えて LSM3とかB3の亜種について自慢げに語れるようになったらこれはすごいことだと思うし
合意形成アルゴリズムとか整合性モデルなんて全く知らなかったようなエンジニアの人が
ブッククラブを通じてコンセプトを理解して
今後それについて実際の業務の場で 口出せるようになったりしたら
すごいことかなと思います
やっぱりバックエンドとかSREの方でもですね
キャプテリとかあとはトゥフェイスコミットとかスリーフェイスコミットみたいな
分散トランザクションの仕組みについて
全員が分かっているかというと 僕もこの場で準備なしに語れるというと語れないんですけど
なかなか難しいコンセプトたくさんあると思います
会社で起こった業務とか結構難易度の不整合なデータについてのインシデントとかに出会った時に
自信を持って解決するコアのメンバーの人になれたら
それはすごい素敵なことだなと思うので
今回のブッククラブの参加者 あとはリスナーとして一緒に読んでくれる人が
今回の第4弾を通じて活躍してくれるような人が一人でも増えたら嬉しいなと思います
やっぱり難しい内容だからチャレンジする価値があるし
分からないから読むっていう それが学習の醍醐味だと思うので
それを体現する一つの場としてもブッククラブ 今回もやっていこうと思っております
ということで 今回はブッククラブ第4弾となるDatabase Internalsの
ブッククラブの形式の紹介と本書の紹介について話してきました
改めてですけれども ノースアメリカを中心に参加者を募集するので
興味がある方は ショーノートにあるGoogleフォームのリンクからご連絡ください
IMEAまたはAPACの方でもウェイティングリストに入ることができますので
お気軽にご連絡ください
ということで 以上です ありがとうございました
30:06

コメント

スクロール