Add randomness pool mode for V4 UUID#80
Merged
pborman merged 2 commits intogoogle:masterfrom Jul 8, 2021
Merged
Conversation
Adds an optional randomness pool mode for Random (Version 4) UUID generation. The pool contains random bytes read from the random number generator on demand in batches. Enabling the pool may improve the UUID generation throughput significantly. Since the pool is stored on the Go heap, this feature may be a bad fit for security sensitive applications. That's why it's implemented as an opt-in feature.
pborman
suggested changes
Jun 9, 2021
Contributor
pborman
left a comment
There was a problem hiding this comment.
Over all this is fine, just need to add the note about non-threadsafe calls.
pborman
approved these changes
Jul 8, 2021
Contributor
Author
|
@pborman thanks for the review! |
|
Hi ! |
Contributor
Author
@pierrre |
tkarrass
pushed a commit
to tkarrass/uuid
that referenced
this pull request
Sep 11, 2024
* Add randomness pool mode for V4 UUID Adds an optional randomness pool mode for Random (Version 4) UUID generation. The pool contains random bytes read from the random number generator on demand in batches. Enabling the pool may improve the UUID generation throughput significantly. Since the pool is stored on the Go heap, this feature may be a bad fit for security sensitive applications. That's why it's implemented as an opt-in feature. * fixup! document thread-safety aspects
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.
Adds an optional randomness pool mode for Random (Version 4) UUID generation. The pool contains random bytes read from
the random number generator on demand in batches. Enabling the pool may improve the UUID generation throughput significantly.
Since the pool is stored on the Go heap, this feature may be a bad fit for security sensitive applications. That's why it's implemented as an opt-in feature.
Please treat this PR as a performance experiment.
Benchmarks
Environment: Ubuntu 20.04, go version go1.16.2 linux/amd64, i5-8300h
masterbranch:This branch:
The
BenchmarkUUID_NewPooledbenchmark here stands for the pool mode. The pool size could be increased from current 256 bytes to gain a slightly better throughput, but that would come at the cost of larger memory footprint.