Use bookmarks on discovery #478
Merged
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.
With 4.0 multi-database introduction, it's possible that a database is created on leader and asked for a session against it on other members of the cluster - which may not yet catched up with the database creation.
This PR makes it possible that when the bookmark returned from the
CREATE DATABASE
query is passed on to the next session that will use the just created, the bookmarks specified for that session will be used by the underlying routing discovery session and we will not hit database not found errors.API-wise,
session.lastBookmark()
will always return an array of strings no matter what had been passed when creating the session. Even if no bookmark is specified, an empty array will be returned. There is no change on passing bookmarks from one session to the other, that operation is still carried out the same way.Based on #476.