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

DynamoStore: Cache decoding of Data/Meta #331

Merged
merged 1 commit into from
Jun 2, 2022

Conversation

bartelink
Copy link
Collaborator

@bartelink bartelink commented Jun 2, 2022

Adds logic to correctly handle cases where the reader traverses the TimelineEvent.Data more than once.

In the typical case, Equinox-controlled loads will only walk the events exactly once [until isOrigin stops the search]
However in more exotic cases such as in projection loops, there can be cases (and this issue surfaced as an exception in such logic) where layering is such that filtering layers perform some pre-traversals.

It has been argued by @yreynhout that compression doesn't belong in this layer; certainly its absence would have avoided this specific issue, and I can't say I like the impl having ugly excuses and guards as this PR introduces.

Removing it would at a minimum entail adding some form of content-encoding/content-type to the ITimelineData in order for an outer layer to be able to drive it. Am considering doing it, likely with a breaking format change prior to entering the -rc phase.

@bartelink bartelink merged commit 49e3d54 into master Jun 2, 2022
@bartelink bartelink deleted the dynamostore-cache-bodies branch June 2, 2022 11:19
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