cameron314 / cameron314/readerwriterqueue

Folly's LockFreeRingBuffer

Open
#153 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
4.6k
Forks
736
Avg merge
10d 5h
Merged PRs (30d)
1

Description

Hello,

I notice your benchmark has a copied version of the folly SPSC Queue to include with the benchmark code. I'm interested in your library's circular buffer, and I found folly has a LockFreeRingBuffer in the experimental code: https://github.com/facebook/folly/blob/main/folly/experimental/LockFreeRingBuffer.h

I tried to include it in your existing benchmark, but ended up needing to copy a bunch of header files from Folly (that include even more Header files) e.g.:

benchmarks/ext/folly/LockFreeRingBuffer.h
benchmarks/ext/folly/Portability.h
benchmarks/ext/folly/Traits.h
benchmarks/ext/folly/detail/
benchmarks/ext/folly/portability/
benchmarks/ext/folly/synchronization/

I feel like if I spend more time doing this it may be pointless so I paused for now.

What are your thoughts on the LockFreeRingBuffer? Is it suitable to include in these benchmarks? When the ProducerConsumerQueue was added, was it adapted to remove its dependencies on the rest of folly?

Thanks!

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

Start by reviewing the existing benchmark's copied ProducerConsumerQueue and the proposed benchmarks/ext/folly/LockFreeRingBuffer.h. Trace the listed Folly headers and dependencies to determine whether the LockFreeRingBuffer can be included without copying a large subsystem. Done means reaching a documented decision on suitability and a defined integration scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.