Konzepte
Branches, Endpoints, Scale-to-Zero — das Modell hinter Kisenon.
Kisenon trennt Speicher von Compute, so wie Neon es tut. Diesen Split zu verstehen lässt alles andere folgen.
Das Ressourcenmodell
Alles verschachtelt sich unter einer Organisation:
organization ── the unit of membership + billing
└── project ── isolation boundary: one storage volume
└── branch ── a copy-on-write LSN pointer
└── endpoint ── the ephemeral Postgres computeEine Organisation besitzt Projekte, Mitglieder und Abrechnung; jedes Projekt gehört zu genau einer. Ein Projekt ist die Isolationsgrenze — ein Speichervolume, eigene Branches und Endpoints. Ein Branch zeigt auf eine Log Sequence Number in diesem Speicher; ein Endpoint ist das Compute, das ihn bedient. Siehe Organisationen für Mitgliedschaft und Rollen.
Speicher
Speicher ist dauerhaft, repliziert und über alle Branches eines Projekts geteilt. Schreibvorgänge laufen über Safekeeper (Paxos-Quorum) und landen in Pageservern, die historische Lesevorgänge auf Anfrage bedienen.
Sie verwalten die Speicherkapazität nicht direkt. Sie sehen sie als eine einzige Zahl pro Projekt und zahlen nur für die Bytes, die Sie tatsächlich persistieren, plus das für Time-Travel aufbewahrte WAL.
Branches
Ein Branch ist ein Zeiger auf eine Log Sequence Number (LSN) im Speicher. Einen Branch zu erstellen ist ein O(1)-Datenbankzeileneinfügen; es kopiert keine Daten. Lesevorgänge von einem Branch fallen auf den Parent zurück, bis der Branch divergiert, woraufhin nur das Delta gespeichert wird.
Das macht Branches:
- Kostenlos unterhalb des Deltas. Ein 100-GB-Projekt + 10 kleine Branches wird immer noch als ~100 GB abgerechnet.
- Schnell. Das Erzeugen eines Branches dauert unter einer Sekunde.
- Verfügbar. Führen Sie eine destruktive Migration auf einem Branch aus, werfen Sie den Branch weg, der Parent bleibt unberührt.
Endpoints
Ein Endpoint ist der Postgres-Prozess, der mit Clients spricht. Er paart sich zu jedem Zeitpunkt mit genau einem Branch.
Endpoints sind ephemeres Compute. Sie:
- Wachen beim ersten Paket auf (typischerweise schneller als das Connect-Timeout Ihres Clients).
- Suspendieren nach 5 Minuten ohne Client-Aktivität.
- Sind günstig zu erstellen und zu zerstören — gleiches Kostenmodell wie Branches.
Sie können mehrere Endpoints auf demselben Branch haben (z. B. einen für die App, einen für Analytik) — sie teilen sich den zugrunde liegenden Speicher, und ihre lokalen Caches bleiben unabhängig.
Scale-to-Zero
Untätige Endpoints kosten null Compute. Sie zahlen nur Speicher.
Konkret: Ein Projekt mit einem Endpoint, der eine Stunde pro Tag genutzt wird, kostet ungefähr ein 1/24 eines Always-on-Äquivalents. Die Speicherkosten sind in beiden Fällen gleich.
Dies ist die ursprüngliche Edelgas-Idee, von der Kisenon seinen Namen ableitet — 仙 (sen,
„Eremit") für Xenon-54.
Kompatibilität
Kisenon spricht das gewöhnliche Postgres-Wire-Protokoll. Alles, was mit
Postgres spricht, spricht mit Kisenon: psql, pg_dump, pgbench, Treiber in
jeder Sprache, Drizzle, Prisma, SQLAlchemy, ORMs im Allgemeinen.
Es gibt kein Kisenon-spezifisches SQL. Branches und Endpoints werden über die Control-Plane-API oder die CLI verwaltet — niemals über SQL.