Skip to content

Conversation

@DaveCTurner
Copy link
Contributor

Currently randomNonNegativeLong() returns 0 half as often as any positive long, but random number generators are typically expected to return uniformly-distributed values unless otherwise specified. This fixes this issue by mapping Long.MIN_VALUE directly onto 0 rather than resampling.

Admittedly, any specific value is extraordinarily unlikely, so the bias that this PR fixes is undetectable in all practical senses. I doubt we've ever been round this loop more than once.

@DaveCTurner DaveCTurner added >non-issue >test Issues or PRs that are addressing/adding tests v6.2.0 v7.0.0 labels Dec 17, 2017
@DaveCTurner DaveCTurner requested a review from javanna December 17, 2017 21:05
@DaveCTurner DaveCTurner self-assigned this Dec 17, 2017
Copy link
Member

@jasontedor jasontedor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@DaveCTurner
Copy link
Contributor Author

@elasticmachine please test again.

CI failure looks unrelated, so I opened #27861 to investigate further.

@DaveCTurner
Copy link
Contributor Author

@elasticmachine please test this again.

@DaveCTurner DaveCTurner merged commit f0b21e3 into elastic:master Dec 18, 2017
DaveCTurner added a commit that referenced this pull request Dec 18, 2017
Currently randomNonNegativeLong() returns 0 half as often as any positive long,
but random number generators are typically expected to return
uniformly-distributed values unless otherwise specified. This fixes this issue
by mapping Long.MIN_VALUE directly onto 0 rather than resampling.
martijnvg added a commit that referenced this pull request Dec 18, 2017
* es/6.x: (170 commits)
  Allow TrimFilter to be used in custom normalizers (#27758)
  recovery from snapshot should fill gaps (#27850)
  Remove unused class PreBuiltTokenFilters (#27839)
  Reject scroll query if size is 0 (#22552) (#27842)
  Mutes ‘Rollover no condition matched’ YAML test
  Make randomNonNegativeLong() draw from a uniform distribution (#27856)
  Adapt rest test after backport. Relates #27833
  Handle case where the hole vertex is south of the containing polygon(s) (#27685)
  Move range field mapper back to core
  Fix publication of elasticsearch-cli to Maven
  Do not use system properties when building the HttpAsyncClient (#27829)
  Optimize version map for append-only indexing (#27752)
  Add NioGroup for use in different transports (#27737)
  adapt field collapsing skip test version. relates #27833
  Add version support for inner hits in field collapsing (#27822) (#27833)
  Clarify that number of threads is set by packages
  Register HTTP read timeout setting
  Fixes Checkstyle
  Remove `operationThreaded` from Java API (#27836)
  Fixes failing BytesSizeValues tests
  ...
@DaveCTurner DaveCTurner deleted the 2017-12-17-uniform-randomNonNegativeLong branch July 23, 2022 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>non-issue >test Issues or PRs that are addressing/adding tests v6.2.0 v7.0.0-beta1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants