v0.3.3-pre.007
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
|
||||
<!-- version: 7 -->
|
||||
<!-- version: 8 -->
|
||||
|
||||
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -31,15 +31,16 @@ Tranches techniques validées :
|
||||
0.3.3-pre.003 + fix.001/fix.002/fix.003 — V001 physique, compatibilité de schéma et binding réseau
|
||||
0.3.3-pre.004 — mapping et lectures RAW
|
||||
0.3.3-pre.005 — écriture atomique et observations
|
||||
0.3.3-pre.006 + fix.001 — pagination keyset + cursor V1
|
||||
```
|
||||
|
||||
Tranche technique courante :
|
||||
|
||||
```text
|
||||
0.3.3-pre.006 — pagination keyset + cursor V1
|
||||
0.3.3-pre.007 — archive, purge, compare-and-transition et rejet Compacted
|
||||
```
|
||||
|
||||
Les gates opérateur jusqu'à `pre.005` sont verts. `pre.006` complète la surface backend-specific de lecture `RawTransaction` avec `list_raw_transactions`, sans ouvrir encore la rétention mutante, les implémentations complètes des six traits ni le dispatch dans `ksp-store-lib`.
|
||||
Les gates opérateur jusqu'à `pre.006-fix.001` sont verts. `pre.007` complète la surface backend-specific `RawTransaction` avec les transitions physiques `Full -> Archived -> Purged`, sans implémenter encore les six traits ni leur dispatch dans `ksp-store-lib`.
|
||||
|
||||
## 2. Sources et autorité
|
||||
|
||||
@@ -1131,12 +1132,19 @@ Tranche matérialisée :
|
||||
|
||||
### `0.3.3-pre.007` — archive, purge, tombstone, ForceRehydrate
|
||||
|
||||
- `Full -> Archived -> Purged` ;
|
||||
- compare-and-transition ;
|
||||
- archive relation ;
|
||||
- normal skip purged ;
|
||||
- force rehydrate ;
|
||||
- rejet sûr et stable de `Compacted`, sans fausse compression.
|
||||
Matérialisation :
|
||||
|
||||
- `PostgresBackend::transition_raw_transaction_retention` ajouté sans implémentation directe de trait ;
|
||||
- validation réseau et rejet de toute transition impliquant `Compacted` avant `pool.get()` ;
|
||||
- `SELECT ... FOR UPDATE` du canonical avant toute décision/mutation ;
|
||||
- `current == target` -> `AlreadyAtTarget` après validation de la forme physique ;
|
||||
- `current != expected` -> `ExpectedStateMismatch` sans mutation ;
|
||||
- `Full -> Archived` -> payload exact inséré dans la relation archive, puis payload hot `NULL` et état `archived`, dans la même transaction ;
|
||||
- `Archived -> Purged` -> archive supprimée, block time effacé, état `purged`, tombstone minimal conservé ;
|
||||
- unknown reference -> `ReferenceNotFound` ;
|
||||
- `Compacted` -> `RetentionCompactionUnsupported` / `store.postgres_retention_compaction_unsupported` sans fausse compression ;
|
||||
- acquisition normale et `ForceRehydrate` acquis en `pre.005` continuent d'utiliser le même verrou canonical et sont donc sérialisés avec archive/purge ;
|
||||
- V000/V001 restent byte-identiques.
|
||||
|
||||
### `0.3.3-pre.008` — façade `ksp-store-lib`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user