Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(CosmosStore.Linq): Indexed Queries #450

Open
wants to merge 56 commits into
base: cosmos-default-stj
Choose a base branch
from

Conversation

bartelink
Copy link
Collaborator

@bartelink bartelink commented Mar 28, 2024

NOTE: published as 4.1.0-alpha.16; ideally want to do some more API surface changes before release, but if it mattered to someone that the builds are badged alpha, could do a RC of CosmosStore 4.1

  • Adds a CosmosStore.Linq namespace that facilitates efficient querying against Indexes (Uncompressed unfolds stored in Tip documents)
  • eqx: Adds top and destroy subcommands
  • eqx dump: Applies a bare mode when in -Quiet mode

NOTES:

  • use AccessStrategy.Custom mode to store one or more uncompressed unfold(s) alongside a snapshot
  • filtering efficiently requires the u[].d.* fields to be indexed (eqx init --indexunfolds)
  • sorting requires the u[].d.* fields to be indexed (and uncompressed) (eqx init --indexunfolds)
  • render by querying c.u (and using CosmosStoreCategory.TryLoad) (mode: ReadOnly)
  • render identity info derived from the StreamName by also retrieving c.p (mode: SnapWithStream)
  • transact against the state by querying c._etag, c.u (and using CosmosStoreCategory.TryHydrateTip) (mode: ReadOnly)
  • render based on the state and/or id per item by querying c.u[0].d (efficient retrieval as the snapshot will be compressed), and, optionally, c.p (this PR)
  • transact based on c._etag and c.u[0].d (this PR)

Base automatically changed from cosmos-metrics to master March 28, 2024 01:43
@bartelink bartelink force-pushed the cosmos-linq branch 5 times, most recently from 167b5f6 to 7572f1f Compare April 8, 2024 23:58
@bartelink bartelink force-pushed the cosmos-linq branch 3 times, most recently from 3f6c3d4 to 708b0de Compare April 22, 2024 11:48
@bartelink bartelink force-pushed the cosmos-linq branch 5 times, most recently from 812e0e2 to d313d50 Compare May 7, 2024 08:42
@bartelink bartelink changed the base branch from master to cosmos-bycat May 7, 2024 08:43
@bartelink bartelink force-pushed the cosmos-linq branch 3 times, most recently from 7290f5a to c0d525a Compare June 8, 2024 00:52
@bartelink bartelink force-pushed the cosmos-linq branch 6 times, most recently from 8a8c25c to 5e1610e Compare June 12, 2024 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant