HN 日本語サマリー

← 一覧へ戻る
インフラ・DevOps

Neki by PlanetScale

Neki by PlanetScale (neki.dev)

59 pointsby handfuloflight13 コメント

要約

PlanetScaleのNekiは、Postgresを単一マシンの限界を超えてスケーリングするためのソリューションです。このサービスは、数億クエリ/秒とペタバイト級のデータに対応し、各シャードに実際のPostgresを使用します。Nekiは、ルーター、サイドカー、コントロールプレーンといったコンポーネントを追加することで、Postgresの水平スケーリングを実現し、ゼロダウンタイムでのリシャーディング、スキーマ変更、バージョンアップグレード、インポート、高可用性などを可能にします。

全文翻訳

01シャーディング Postgresを単一マシンの限界を超えて、数億クエリ/秒とペタバイト級のデータに対応させます。 02シャード分割 ワークロードが増加するにつれて、ホットシャードを分割します。Nekiは新しいターゲットシャードを作成し、レプリケーションでそれらを追いつかせ、トポロジー変更を通じてトラフィックを移動させます。 03ゼロダウンタイムリシャーディング データベースをオンラインのまま、新しいシャードレイアウトにデータを移動させます。アプリケーションの書き直しやメンテナンスウィンドウなしで容量を再分散します。 04リアルPostgresを大規模に 各シャードは実際のPostgresです。NekiはPostgresを水平にスケーリングするために必要なルーター、サイドカー、コントロールプレーンを追加します。 05高可用性 プラットフォームにヘルスを追跡させ、レプリカを昇格させ、ルーティングを更新させます。アプリケーションは同じPostgresエンドポイントを使用し続けます。 06オンラインスキーマ変更 シャード全体で調整されたワークフローとしてスキーマ変更を実行します。Nekiはシャードごとに適切な方法を適用し、カットオーバーまでの進捗を追跡します。 07コネクションプーリング シャーディングされたデータベースレイヤー内で接続をプールします。Nekiはトポロジー、シャードヘルス、セッション状態を認識してルーティングします。 08シャードグループ 異なるテーブルまたはワークロードを異なるシャードグループに割り当てます。ホット、コールド、または分離されたデータを、必要なハードウェアプロファイルでスケールさせます。 09マルチAZアベイラビリティ 各シャードを、アベイラビリティゾーン全体で高可用性Postgresクラスターとして実行します。障害は可能な限り最小の単位に限定されます。 10データトポロジー データがシャード、シャードグループ、シャードインデックスにどのようにマッピングされるかを定義します。配置は明示的で、レビュー可能で、制御されたリシャーディングのために構築されています。 11クロスシャードトランザクション 近日公開 1つのトランザクションでシャードをまたいで書き込みを行います。Nekiはコミットを調整するため、変更はアトミックになります。すべてのシャードが適用するか、どれも適用しません。 12ワークフロー インポート、リシャーディング、スキーマ変更、カットオーバー、クリーンアップのために明示的なワークフローを使用します。Nekiは分散Postgres操作を繰り返し可能にします。 13オンラインバージョンアップグレード 同じオンライン移行モデルを通じて新しいPostgresバージョンに移行します。ターゲットシャードグループを作成し、レプリケートし、カットオーバーし、古いグループを廃止します。 14ゼロダウンタイムインポート ソースデータベースがトラフィックを提供し続ける間、Nekiにインポートします。ターゲットが準備できたときにコピー、レプリケート、検証、カットオーバーします。 15CDC 各Nekiシャードには独自のWALと論理レプリケーションパスがあります。CDCは標準Postgresパターンおよびシャードごとのストリームと互換性を保ちます。