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:
parent
0ab5564688
commit
b26c98f185
2 changed files with 6 additions and 0 deletions
|
|
@ -20,6 +20,10 @@ can be restored instead of reinvented.
|
|||
reactive POCO handle added with the SoA storage in 5428870 "Make SoA
|
||||
cache-managed document storage". Same tag, same intent: the document stays a
|
||||
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.
|
||||
- Restore: `git show parked/cultcache-soa:src/GameCult.Caching/CultManagedDocument.cs`,
|
||||
take the SoA types and `CultManagedDocument<T>`, restore both `Document<T>`
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ using 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
|
||||
{
|
||||
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);
|
||||
using (AcquireCommitLease())
|
||||
{
|
||||
// Only pages named by the manifest read under the lease are loaded; orphaned pages are never loaded.
|
||||
var manifest = ReadManifest();
|
||||
Trace($"manifest records={manifest.Records.Length}");
|
||||
_durableCatalog = manifest.SchemaCatalog;
|
||||
|
|
|
|||
Loading…
Reference in a new issue