Note that CultManagedDocument is parked with SoA; state the page load rule

The parked/cultcache-soa tag message says the managed document was deleted
separately. parked-features.md now supersedes that; the tag is unchanged.
The directory store gains its design statement and a comment that only
manifest-named pages are loaded.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-13 17:17:14 +02:00
commit b26c98f185
2 changed files with 6 additions and 0 deletions

View file

@ -20,6 +20,10 @@ can be restored instead of reinvented.
reactive POCO handle added with the SoA storage in 5428870 "Make SoA reactive POCO handle added with the SoA storage in 5428870 "Make SoA
cache-managed document storage". Same tag, same intent: the document stays a cache-managed document storage". Same tag, same intent: the document stays a
POCO while the cache owns its columnar storage. POCO while the cache owns its columnar storage.
- Tag message correction: the `parked/cultcache-soa` tag message says
`CultManagedDocument<T>` was "deleted separately, not parked". This note
supersedes it: `CultManagedDocument<T>` is parked under the same tag and is
restored alongside SoA. The tag itself is left as written.
- Consumers when parked: none outside tests. - Consumers when parked: none outside tests.
- Restore: `git show parked/cultcache-soa:src/GameCult.Caching/CultManagedDocument.cs`, - Restore: `git show parked/cultcache-soa:src/GameCult.Caching/CultManagedDocument.cs`,
take the SoA types and `CultManagedDocument<T>`, restore both `Document<T>` take the SoA types and `CultManagedDocument<T>`, restore both `Document<T>`

View file

@ -11,6 +11,7 @@ using MessagePack;
namespace GameCult.Caching.MessagePack; namespace GameCult.Caching.MessagePack;
// A small hot manifest indexes the store; each record lives in one cold content-addressed page.
public sealed class DirectoryMessagePackBackingStore : CacheBackingStore public sealed class DirectoryMessagePackBackingStore : CacheBackingStore
{ {
private const string IndexedFormatVersion = "cultcache.store.v4.directory-content-addressed-pages"; private const string IndexedFormatVersion = "cultcache.store.v4.directory-content-addressed-pages";
@ -60,6 +61,7 @@ public sealed class DirectoryMessagePackBackingStore : CacheBackingStore
var loaded = new Dictionary<string, CultStoredDocument>(StringComparer.Ordinal); var loaded = new Dictionary<string, CultStoredDocument>(StringComparer.Ordinal);
using (AcquireCommitLease()) using (AcquireCommitLease())
{ {
// Only pages named by the manifest read under the lease are loaded; orphaned pages are never loaded.
var manifest = ReadManifest(); var manifest = ReadManifest();
Trace($"manifest records={manifest.Records.Length}"); Trace($"manifest records={manifest.Records.Length}");
_durableCatalog = manifest.SchemaCatalog; _durableCatalog = manifest.SchemaCatalog;