Repository navigation
Support passing options when creating a snapshot - #110
Merged
Merged
Conversation
Adds support for setting the session config options on the hyperbee2 engine while remaining generic. The options are stored on the HyperDB instance because of snapshots being updated during `.update()`. Engines now support a `snapshotFrom` method which takes the current snapshot and the options giving a new configured version. This happens only in `_createSnapshot()` as it is the shared way of creating the new view / hyperdb instance. `snapshotFrom()` is necessary to maintain the position of the current snapshot just with options. This all supports setting the session config not just for transactions, but also for calling `db.snapshot()` at the top level (aka on HyperDB instance).
IE the shape is dictated by the underlying engine module so should be driven by that instead of being enforced at the engine level.
Add noop `snapshotFrom` to the other engines
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This passes the options to the
engine's.snapshot(opts)and maintains them on theHyperDBinstance so they are maintained if it is.update()'ed, which refreshes the snapshot.One con is that this will double snapshot the engine when creating a transaction on an outdated parent because one is to set the options and the other is to update the instance from the engine. So small tradeoff with that.
Done with help from AI.