Concepts
Branches, endpoints, mise à l'échelle jusqu'à zéro — le modèle derrière Kisenon.
Kisenon sépare le stockage du calcul, à la manière de Neon. Comprendre cette séparation fait découler tout le reste.
Le modèle de ressources
Tout s'imbrique sous une organisation :
organization ── the unit of membership + billing
└── project ── isolation boundary: one storage volume
└── branch ── a copy-on-write LSN pointer
└── endpoint ── the ephemeral Postgres computeUne organisation possède des projets, des membres et la facturation ; chaque projet appartient à exactement une. Un projet est la frontière d'isolation — un volume de stockage, ses propres branches et endpoints. Une branche pointe vers un Log Sequence Number dans ce stockage ; un endpoint est le calcul qui le sert. Voir Organisations pour l'appartenance et les rôles.
Stockage
Le stockage est durable, répliqué et partagé entre toutes les branches d'un projet. Les écritures passent par les safekeepers (quorum Paxos) et atterrissent dans les pageservers, qui servent les lectures historiques à la demande.
Vous ne gérez pas directement la capacité de stockage. Vous la voyez comme un nombre unique par projet, et ne payez que pour les octets que vous persistez réellement plus le WAL conservé pour le voyage dans le temps.
Branches
Une branche est un pointeur vers un Log Sequence Number (LSN) dans le stockage. Créer une branche est une insertion de ligne de base de données en O(1) ; elle ne copie pas les données. Les lectures depuis une branche retombent sur le parent jusqu'à ce que la branche diverge, point auquel seul le delta est stocké.
Cela rend les branches :
- Gratuites en dessous du delta. Un projet de 100 Go + 10 petites branches est toujours facturé environ 100 Go.
- Rapides. Engendrer une branche prend moins d'une seconde.
- Jetables. Lancez une migration destructrice sur une branche, jetez la branche, le parent est intact.
Endpoints
Un endpoint est le processus Postgres qui parle aux clients. Il s'apparie avec exactement une branche à tout moment.
Les endpoints sont du calcul éphémère. Ils :
- Se réveillent au premier paquet (généralement plus vite que le délai de connexion de votre client).
- Se suspendent après 5 minutes sans activité client.
- Sont peu coûteux à créer et détruire — même modèle de coût que les branches.
Vous pouvez avoir plusieurs endpoints sur la même branche (par exemple, un pour l'application, un pour l'analytique) — ils partagent le stockage sous-jacent et leurs caches locaux restent indépendants.
Mise à l'échelle jusqu'à zéro
Les endpoints inactifs ne coûtent aucun calcul. Vous ne payez que le stockage.
Concrètement : un projet avec un endpoint utilisé une heure par jour coûte environ 1/24e de l'équivalent toujours actif. Le coût de stockage est le même dans les deux cas.
C'est l'idée originelle du gaz noble dont Kisenon tire son nom — 仙 (sen,
« ermite ») pour le Xénon-54.
Compatibilité
Kisenon parle le protocole filaire Postgres standard. Tout ce qui parle à
Postgres parle à Kisenon : psql, pg_dump, pgbench, les drivers dans tous
les langages, Drizzle, Prisma, SQLAlchemy, les ORM en général.
Il n'y a pas de SQL spécifique à Kisenon. Les branches et les endpoints sont gérés via l'API du plan de contrôle ou la CLI — jamais via SQL.