このプロジェクトについて
Neon は、オープンソースのサーバーレス Postgres データベース プラットフォームとして紹介されています。ストレージとコンピューティングを分離し、PostgreSQL ストレージ レイヤーを、データをノードのクラスターに再分配する仕組みで置き換えています。
README のクイック スタートでは、Neon の無料層を使用してサーバーレス Postgres インスタンスを作成し、psql や dbeaver などの Postgres クライアント、またはオンライン SQL エディターで接続することを提案しています。また、プロジェクトはローカルでコンパイルして実行することもできると記載されています。
アーキテクチャの概要: Neon のインストールは、コンピューティング ノードと Neon ストレージ エンジンで構成されます。コンピューティング ノードは、ストレージ エンジンによってバックアップされたステートレスな PostgreSQL ノードです。ストレージ エンジンには、2 つの主要なコンポーネントがあります: コンピューティング ノード用のスケーラブルなストレージ バックエンドである Pageserver、およびコンピューティング ノードから WAL を受け取り、pageserver が処理してクラウド ストレージにアップロードするまで耐久性を持って保存する冗長な WAL サービスである Safekeepers。開発者向けドキュメントは docs/SUMMARY.md にあります。
ローカル開発: README には、Ubuntu や Debian、Fedora、Arch などの Linux ディストリビューション、および macOS 向けの依存関係のインストール手順が記載されています。これには、protobuf-compiler 3.15+、Rust、PostgreSQL クライアント、およびビルド ツールが含まれます。ビルドすると、neon とパッチが適用された postgres が作成され、リポジトリは rust-toolchain ファイルを使用します。再帰的にクローンして make でビルドした後、ユーザーは cargo neon init、cargo neon start、cargo neon tenant create --set-default、cargo neon endpoint create main、cargo neon endpoint start main を実行します。例では、ローカル エンドポイントに対して psql を実行し、cargo neon timeline branch --branch-name migration_check でブランチを作成し、そのブランチに PostgreSQL エンドポイントを作成して起動する方法を示しています。README には、ブランチは main のデータで始まり、その後の変更は分離されたままであると記載されています。
テストとクリーンアップ: Rust のユニットテストは cargo-nextest を使用します。統合テストには依存関係が必要で、./scripts/pytest を介して実行されます。Postgres のバージョンとビルド タイプを選択するオプションがあります。Flamegraph は、flamegraph-rs または flamegraph.pl で生成できます。クリーンアップには make clean と make distclean を使用し、.neon ディレクトリを削除するとローカル データベースが削除されます。ドキュメントには、docs/sourcetree.md と rustdoc が含まれています。README には、ブログ記事、ビデオ、Neon 用語集、PostgreSQL 用語集、CONTRIBUTING.md へのリンクがあり、貢献者にコード スタイルとソース ツリーのレイアウトのドキュメントを読むよう求めています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.