-
Notifications
You must be signed in to change notification settings - Fork 139
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
PR to merge dev branch into main #612
Merged
Merged
+1,293
−725
Conversation
This file contains 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
Signed-off-by: Ivan Kozlovic <[email protected]>
Signed-off-by: Ivan Kozlovic <[email protected]>
[ADDED] KeyValue: kvStatus_Bytes() to return size of the bucket
Signed-off-by: Ivan Kozlovic <[email protected]>
Until now, the js_CreateKeyValue() call would possibly attempt to update the underlying stream to set some properties that were added from release to release. This had an unexpected side effect when a stream in a newer server has new properties that the application linked to an older library was not aware of and would not unmarshal. Even if a stream comparison (minus the property we would want to update) would return OK, it could be wrong because we would disregard new properties not known by the old client library. Signed-off-by: Ivan Kozlovic <[email protected]>
[CHANGED] KeyValue: library will no longer try to update the stream
Also updated state for proper Put() and Get() semantics with mirrors and across domains, e.g. leafnodes. In practice when a mirror is across a domain, should be named the same as origin. That allows an app to run anywhere without anything special in terms of domains when binding to the KV itself. (Removed dead-code following previous PR #607) Signed-off-by: Ivan Kozlovic <[email protected]>
Needed to have delete use the put prefix and bind to the stream when creating the watcher's subscription because in case of mirror the subject would not allow to find the stream. Signed-off-by: Ivan Kozlovic <[email protected]>
[ADDED] KeyValue: Support for Mirror and Sources
`jsStreamInfo` will now possibly have a list of stream alternates represented by a mirror: ``` typedef struct jsStreamInfo { (...) jsStreamAlternate **Alternates; int AlternatesLen; } jsStreamInfo; The definition of a stream alternate is: ``` typedef struct jsStreamAlternate { const char *Name; const char *Domain; const char *Cluster; } jsStreamAlternate; ``` Also added some of the new JS specific error codes. Signed-off-by: Ivan Kozlovic <[email protected]>
[ADDED] Stream alternates in `jsStreamInfo`
aricart
approved these changes
Nov 7, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
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.
Made sure that dev was updated with main, then created a branch out of main in which I merged dev and pushed that branch, then created this PR out of it. Here is the complete list of steps:
Then opened the PR from the branch
merge_dev_to_main
and selectedmain
for the base branch (which is the default).Signed-off-by: Ivan Kozlovic [email protected]