Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Proposal: Add DDSketch (Relative-Error Quantile Sketch)

Open
#457 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cpp
Domain
data

Research direction

Start by reading the DDSketch paper and Datadog's sketches-java reference. The proposed implementation belongs in ddsketch.hpp and should include serialization, deserialization, unit tests, and benchmarks. Done means a self-contained, mergeable DDSketch with configurable relative accuracy and bounded memory, without changing existing APIs.

Written by the indexing model from the issue text.

Description

Proposal: Add DDSketch (Relative-Error Quantile Sketch)

Summary:
This issue proposes adding an implementation of DDSketch, a mergeable quantile sketch with relative-error guarantees, to the datasketches-cpp library.

Benefits:

  • Relative-error guarantees
  • Mergeability for distributed processing
  • Predictable memory usage
  • Used in production (Datadog, OpenTelemetry)

References

Proposed Design

  • New class under ddsketch.hpp
  • Logarithmic mapping of input values to buckets using configurable relative accuracy
  • Compact, bounded memory footprint with optional bucket collapsing
  • Mergeable histogram-style structure
  • Serialization and deserialization support
  • Unit tests and benchmarks included

Compatibility

  • No changes to existing APIs
  • Implementation will be self-contained
  • Optional: initial release could be marked experimental

Next Steps

If there is community interest, I’m happy to:

  1. Share a detailed design document
  2. Begin work on the implementation and submit a PR
  3. Iterate based on feedback

Would the maintainers be open to including DDSketch? Are there specific design or compatibility considerations I should address before proceeding?

Dominant language
C++
Stars
273
Forks
88
Avg merge
1d 19h
Merged PRs (30d)
9

Contributor guide

Open the contributing guide

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.

More from apache/datasketches-cpp

All issues in apache/datasketches-cpp

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.