Skip to content
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

Fix ordered set prepend bug #115

Merged
merged 1 commit into from
Jun 20, 2023
Merged

Conversation

lewispb
Copy link
Contributor

@lewispb lewispb commented Jun 19, 2023

Addresses #114 (comment)

The scoring for prepended elements was not being calculated correctly. It needs to decrement the score by 0.000001 for each element. Previously it was adding that amount, but because the base score was decreasing the bug was not exposed.

The scoring tolerated this change as we rely on process uptime monotonically increasing as well as the element index.

Using Ruby 3.2.2 locally performance seems to be much improved, exposing this bug.

The scoring for prepended elements was not being calculated correctly.
It needs to decrement the score by 0.000001 for each element. Previously
it was increasing the score, but because the base score was decreasing
the bug was not exposed.

Using Ruby 3.2.2, performance seems to be much improved, exposing this
bug.
@dhh dhh requested a review from jeremy June 20, 2023 06:38
@dhh dhh merged commit 98d36b4 into rails:main Jun 20, 2023
@jeremy jeremy deleted the fix-ordered-set-prepend-bug branch June 22, 2023 00:30
lewispb added a commit to basecamp/kredis that referenced this pull request Jul 8, 2023
…tialize

* origin/main: (22 commits)
  Add kredis_ordered_set for OrderedSet usage in models
  Add a development console
  Bump version for 1.5.0
  Fix ordered set prepend bug (rails#115)
  Unique list with sorted set (rails#114)
  Eliminating Ruby Warnings (rails#112)
  CI against Redis 7, Ruby 3.1, and Ruby 3.2 (rails#113)
  Bump version for 1.4.0
  Update nokogiri for compatibility
  Revert "Improved version of UniqueList: OrderedSet (rails#76)" (rails#111)
  Add `last` to lists (rails#97)
  Improved version of UniqueList: OrderedSet (rails#76)
  Return Time objects instead of deprecated DateTime (rails#106)
  Fix possible deserialization of untrusted data
  Typecast return of Set#take (rails#105)
  Declare Active Model dependency (rails#107)
  Address LogSubscriber deprecation (rails#98)
  Account for time zones in DateTime serializations (rails#102)
  Add sample to set (rails#100)
  Bump version for 1.3.0
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants