7月27日、PostgreSQL専門家のNikolay Samokhvalov氏が「PGSimCity · How PostgreSQL Works, in 3D」と題したインタラクティブWebサイトを公開した。PostgreSQLエンジンの内部動作を3D都市として可視化し、ブラウザ上で体感的に理解できるプロトタイプだ。
バッファプールは「倉庫街」、WALは「記録係の走る道」、バキューム処理は「清掃車が巡回する通り」——PGSimCityでは、PostgreSQLの各コンポーネントが都市の構造物としてマッピングされ、クエリが実行されるたびにそれらが動き出す様子を3D空間で確認できる。テキストと平面図だけでは追いかけにくかった「コンポーネント間の連携」を、空間として直感的に把握できる点が最大の特徴だ。
「読む・想像する」から「見る・触る」へ
これまでPostgreSQLの内部構造を学ぶ手段といえば、公式ドキュメントや書籍、あるいはThe Internals of PostgreSQLのような詳細な技術解説サイトが中心だった。いずれも優れたリソースだが、動的な処理の流れを追うには相当の読み込みと想像力が要る。
PGSimCityが目指すのは、その学習体験を「見る・触る」に置き換えることだ。具体的には、バッファプール(ディスクI/Oを削減するためのメモリキャッシュ層)、WAL(Write-Ahead Logging)(クラッシュ時の整合性を保つ先行書き込みログ)、バキューム処理(MVCCによる不要行の回収)といった概念が、それぞれ都市の異なるエリアとして表現されている。データ更新が走ると対応するエリアが反応し、処理の連鎖が視覚的に流れていく構成だ。
PostgreSQLは世界で最も普及しているオープンソースのリレーショナルデータベースの一つだが、こうした内部コンポーネントの動作はベテランエンジニアでも体系的に把握しきれていないことが多い。PGSimCityはその学習コストを下げる可能性を持つアプローチとして、公開直後からX(旧Twitter)やHacker News上の開発者コミュニティで関心を集めている。
現時点はアーリープロトタイプ
ただし、公開時点では「Early, unreviewed prototype(初期・未レビューのプロトタイプ)」と明記されており、モデルや説明に不正確な部分が含まれている可能性があると作者自身が認めている。「どんな方向性を目指しているか」を確認する段階として捉えるのが妥当だ。
誤りを見つけた場合はGitHubのissueを立てるか、プルリクエストを送ることが推奨されている。コミュニティ主導で精度を上げていく方針で、オープンソースとして改善を受け付けている。
作者について
Nikolay Samokhvalov氏は、PostgreSQLのパフォーマンス最適化を支援するプラットフォームpostgres.aiの創業者であり、PostgreSQLコミュニティで長年にわたり知見を発信してきた人物だ。データベースの「使いこなし」を専門とする人物がPostgreSQLの「教育ツール」という新たな切り口に取り組んでいる点は、このプロジェクトの発展可能性を裏付ける背景として押さえておきたい。
詳細はPGSimCity · How PostgreSQL Works, in 3Dを参照していただきたい。