はじめに こんにちは。かろっく@calloc134 です。 巷では NewSQL が流行りを見せていますが、皆さんこう思ったことはありませんか? 我々は、RDBMS ですら、十分に理解していないのではないか? 今回は、PostgreSQL の内部実装に焦点を当てて、RDBMS 実装の解像度を上げていきたいと思います。 PostgreSQL の内部実装については、 インデックスの実装、追記型アーキテクチャ、MVCC、トランザクション分離モデルなどが 断片的に語られることはありますが、横断的な解説はあまり見かけないように思います。 この記事では、PostgreSQL における MVCC を用いた読み取り整合性の実装 トランザクション分離モデル インデックスの実装について、横断的に解説していきます。 今回割愛したもの ブログ執筆にあたり、以下の内容は割愛しました。 トランザクションのステータス管
読者対象 ANSI 定義の古典的なトランザクション分離レベルとアノマリーは概ね理解している MySQL/Postgres では理論的な部分がどうなっているのかを知りたい 理論面の前提知識 2022-08-19 追記: 社内勉強会向けのスライドを作成しました。先にスライドを見てから,引用文献およびこの記事を読むと理解が深まると思います。 まず ANSI 定義の古典的な定義を聞いたことが無い方は,以下のリンクを参照されたい。 ANSI 定義に対応する解説はこれらのサイト以外にもたくさんあるため,自分にとって読みやすいと感じる情報をあたってほしい。(既に熟知されている方は十分) 次点で読んでいただきたいのが, @kumagi さんの以下の記事。古典的には 4 つの分離レベルと 3 つのアノマリーだけで説明されていたものの,不十分であることが学術的に指摘され,解像度を上げようとする流れが後になって
免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。本ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。本ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある はじめに 本ガイドラインはPostgreSQLを使用する開発者向けに
前回の在籍も含めると、累計9年半、本家MySQLチームでInnoDBの性能改善をターゲットに開発の仕事してきました。5.7でのb-tree index scaleや、8.0の初期の新機能で入ってしまった性能問題の修正など貢献できましたが、ここ数年は開発が進む度に導入される性能劣化に追いつけなくなってしまいました。悪いコードを見つけて直そうとしても抵抗が大きいのも大きな要因です。(遅くしたいのでしょうか?遅いことが認識できないのでしょうか?) この度、体制変更で退職を勧められたのを機に、別の営みでMySQL/InnoDBの性能を改善していくことにしました。どうせ、性能劣化に(私よりも)無頓着な現体制では私が性能を改善することは困難なので、成果は出ないでしょう。(直しても、同時に導入される新機能・修正による劣化に改善分を喰いつぶされることもしばしばあった、と考えています。キリがありません。そも
世界トップに躍進したPostgreSQL データベース管理システム(DBMS)の世界で、大きな変化が起きている。長年、企業システムの中核を担ってきたのはMySQLだが、この数年でPostgreSQLがトップの座に躍進、またAI時代の到来により、そのポジションをさらに強固なものにしているのだ。 スタックオーバーフローが実施した開発者調査(2024年版)によると、PostgreSQLは2年連続でデータベースのトップに君臨、その利用率は51.9%に上る。これに対し、MySQLは39.4%にとどまり、両者の差は広がる一方となっている。 この数字の意味するところは大きい。わずか6年前の2018年、MySQLの利用率は59%を占めていたが、PostgreSQLは33%にすぎなかった。この劇的な逆転は、PostgreSQLの技術的優位性と時代のニーズが合致した結果といえる。 そもそもPostgreSQL
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く