Skip to content

Support lazy-loading in CachedTopicRepository #111

Description

@JeremyCaney

Instead of eagerly loading the entire topic tree, as we currently do, instead update the CachedTopicRepository to support dynamically loading children, relationships, and potentially even extended attributes as requested.

Notes

  • This will benefit from extended the IsFullyLoaded properties into a LoadState enum with e.g., None, Fully, and Partially
  • This will require support in SqlTopicRepository:
    • When a topic's RangeLeft-RangeRight is 1, it's Children collection's LoadState can be set to Fully
    • Even if the target relationships aren't in the Load() or the cache, we can use their presence and matches to set LoadState for the relationships
      • This won't be possible for IncomingRelationships
  • Ideally, we should support loading a "Skeleton", which includes all topics, all relationships, and all indexed attributes, but not the data- and memory-intensive extended attributes
  • We will still need the ability via e.g. the isRecursive argument to deep load an entire tree
    • This should likely be the standard for the Root:Configuration section, since it has a lot of internal cross-references
      • This standard should be established in the SampleActivator, not in the repositories themselves

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for Feature.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions