世界を動かす技術を、日本語で。

Neki – VitessチームによるシャーディングされたPostgres

概要

  • PlanetScale チームがPostgres向けの 新しいシャーディングソリューション「Neki」 を発表
  • Vitess の開発経験と技術を活かしつつ、 Postgres専用に再設計
  • NekiVitessのフォークではない
  • 大規模運用を想定した設計、オープンソースとして公開予定
  • 最新情報は neki.dev で登録可能

Neki発表:Vitess開発チームによるPostgresシャーディング

  • PlanetScale の主要メンバーによる Neki 発表
  • Vitess はMySQL向けの大規模シャーディングソリューション
    • 世界中で多くのユーザーに利用実績
  • Neki はPostgres向けに ゼロから設計
    • Vitessの経験を活かしつつ、Postgresの特性に最適化
  • VitessはMySQLの強みを活用 し、弱点を補う設計
  • NekiVitessの単なる移植やフォークではない
    • Postgresのための新しいアーキテクチャ
  • 設計パートナーと共にスケールを意識した開発
  • 最も要求の厳しいPostgresワークロードにも対応 するオープンソースソフトウェアとしてリリース予定
  • 最新情報やアップデートneki.dev でメール登録可能

Nekiの特徴と今後の展望

  • 明示的シャーディング をPostgresユーザーにも提供
  • 大規模分散環境 での運用を想定した設計思想
  • オープンソース として公開し、コミュニティと共同で発展を目指す方針
  • エンタープライズレベルのワークロード にも耐えうる拡張性と信頼性
  • 今後の開発進捗やリリースタイミング は公式サイトで随時発信予定

Hackerたちの意見

現在、Postgres向けのVitessプロジェクトが2つ進行中みたいだね。競争があれば、Postgresエコシステムが良くなるといいな。 https://supabase.com/blog/multigres-vitess-for-postgres

SupabaseもOrioleDBに取り組んでるよ。

pgcatの作者が作ったpgdogもあるよね。 https://pgdog.dev

これがもっとスパイシーになるのは、Vitessの創設者であり、PlanetScaleの創設者でもある人が、Supabaseでこれを作るためにPlanetScaleを離れたってことを知った時だね。

Nekiって、Citusみたいにクエリにシャーディングキーが必要なの?

Vitessみたいなら、いやだけど、確か記憶が正しければ、シャード間でリラックスした整合性が得られるよ。

誰かPostgresの代わりになるものを作ってる人いる?スピニングディスク以降、新しい技術がたくさん出てきたから、すごく役立ちそうな気がするんだけど。

Postgresに加えられた変更を見てると、今も続いてるし、答えは「はい」だね。Postgresチームは、さらに良いPostgresに置き換えるために動いてるよ。

誰もがそうだよね。CockroachはPostgresをGoで書き直したし、CedarDBはC++で書き直した。あとはYugabyte、AlloyDB、Aurora DSQLなんかもあって、Postgresの一部を置き換えてるけど、もっと忘れてるのもあるかも。

「スピニングディスク以来、たくさんの新しい技術が出てきたから、これはすごく役立ちそうだね。Postgresが使ってるMVCC(他では誰も使ってない)は、50年前の古い概念で、まだそれにしがみついてる。だから、その時点でPGSQLは今の市場で最も古臭いデータベースになっちゃってる。なんでPGSQLにそんなにファンが多いのか、全然理解できないけど、主要なテック企業はいつもMySQLに乗り換えるよね… これは「自分が王だと言わなければならない人は、本当の王ではない」っていうのと同じことだと思う。人々は自分の悪い選択を正当化するために大騒ぎしなきゃいけないんだよね、間違いを認めたくないから。」

これはワクワクするね。発表によるとオープンソースになるみたい。機能的に完全なコントロールプレーンが含まれて、自分でホスティングできることを本当に願ってる。最近Neonを見たけど、最初からSaaS製品として設計されてるみたい。アーキテクチャの個々のコンポーネントを自分でホスティングするのは技術的には可能だけど、簡単ではなさそう。特にコントロールプレーンがクローズドソースで、NeonのSaaS運用に特化してるからね。

元の味の方がいいかもね(Vitesseを作った人)。 https://multigres.com/ 彼はVitesseをPostgresに移植するオープンソース版を作ってるよ。

2週間前に、SupabaseにいるVitessの共同創設者Sugu SougoumaraneとのインタビューがChangelogポッドキャストであったよ。競争を見守るのが面白くなりそうだね。 https://youtu.be/y1aq8RsnJeI

ちなみに、そのインタビューはSupabaseが開発中のシャーディングされたPostgres、Multigresについてのものだよ。Suguは数年前からPlanetScaleにはいないよ。 https://github.com/multigres/multigres

実際にコードをリリースしてから発表した方がいいんじゃない?今日は「がんを治しました」って発表するよ。まだだけど、近いうちにできるといいな!

もっとこういう感じかな:「がんの治療法に取り組むって発表するよ!すごくない?まだ何もできてないけど、取り組み始めたよ。完成予定?できたらね。外部にはロードマップを共有しないから。」

すごくクールだね、これを使うのが楽しみ!でも、残念ながらまだリリースされてないみたい?PlanetScaleがこれを作ってるって聞いてちょっと驚いたよ。彼らのシステム全体がVitessに基づいてると思ってたから。最近はPostgres互換のDBの需要が高いから、MySQLの構文にアプリを移行したくない顧客のために互換性を提供する必要があるのかな?

このウェブサイト大好き!

これ、YugabyteDBと比べてどうなんだろう?