RoaringBitmap / RoaringBitmap/roaring-rs

0.9.0 Tracking Issue

Open
#178 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
957
Forks
119
Avg merge
3d 3h
Merged PRs (30d)
1

Description

Here's what I think is still left before next release

  • #129
  • #167
  • #135
  • #176
  • #177
  • quantify perf delta for stable
  • quantify perf delta for nightly+simd
  • manually verify docs
    • #199
    • #202
  • create release notes
  • #193
  • #194
  • #200
  • #205
  • #204 (deferred to next release)

Release notes

  • Breaking changes

    • Removed deprecated set ops such as union_with. Use the corresponding operators |=.
    • MSRV increased to 1.56
    • deserialize_from validates inputs. It some cases it can be 4x slower. For workloads that are heavy in deserialization from trusted sources migrate to deserialize_unchecked_from
  • Performance optimizations

    • from_sorted_iter and append are exponentially faster. They should be preferred over collect and extend whenever adding monotonically increasing integers to the set as it's about 2-2.5x faster.
    • Other performance optimizations.
      Min Mean Max
      Iteration 6% 57% 125%
      And 0% 7% 22%
      Or 0% 10% 33%
      Sub 0% 9% 39%
      Xor 4% 90% 209%
  • New features

    • rank Returns the number of integers that are <= value. rank(u64::MAX) == len()
    • select Returns the nth integer in the set or None if n <= len()
    • union_len intersection_len ... and so on. Compute the cardinality of a set operation without materializing it. Usually about twice as fast as materializing the bitmap.
    • implemented DoubleEndedIterator
    • implemented ExactSizeIterator (on 64 bit targets only)
    • EXPERIMENTAL SIMD feature (requires rust nightly)
      Min Mean Max
      And 0% 34% 141%
      Or 2% 45% 145%
      Sub 0% 51% 168%
      Xor 0% 130% 437%
  • Other

    • Added property testing suite for set operations
    • Added many benchmarks and real world datasets

Perf numbers are for pairwise operations on collections of bitmaps from real datasets.
Pairwise as in: B1 ∩ B2, B2 ∩ B3, ... BN-1 ∩ BN

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a 0.9.0 release-tracking issue whose checklist is fully completed, including documentation verification and release notes. There is no remaining file, test, or entry point named for a newcomer to investigate; confirm the release status and treat the issue as complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
documentation, release
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
1/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.