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
|
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>`
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue