Resolves #2358: Use lower-entropy random UUIDs #2359
Draft
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.
To avoid synchronization, calls to the high-entropy
java.util.UUID.randomUUID
method are replaced here with calls to a new method that takes a configurable source randomness (defaulting to a thread-local random). This should be more performant, due to the removal of some synchronization points. In most cases, we don't have a need for cryptographically secure UUIDs. For instance, this is used by the planner to assign IDs, but all of the planner objects are created within the same thread, so the thread-local random should be sufficient. The R-tree also uses UUIDs for that purpose, but there, the uniqueness of the UUIDs is important for ensuring uniqueness of different nodes in the tree, so that usage has not been updated here.This resolves #2358.