geonove opened a new issue, #457:
URL: https://github.com/apache/datasketches-cpp/issues/457

   ## Proposal: Add DDSketch (Relative-Error Quantile Sketch)
   
   **Summary:**  
   This issue proposes adding an implementation of 
[DDSketch](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf), a mergeable 
quantile sketch with relative-error guarantees, to the `datasketches-cpp` 
library.
   
   ## Motivation
   
   Current quantile sketches in `datasketches-cpp` (KLL, REQ, t-digest) offer 
absolute-error guarantees. DDSketch fills a different use case: relative-error 
quantiles, which are more appropriate for latency percentiles and metrics with 
a wide dynamic range.
   
   Benefits:
   - Relative-error guarantees
   - Mergeability for distributed processing
   - Predictable memory usage
   - Used in production (Datadog, OpenTelemetry)
   
   ## References
   
   - VLDB 2019: [DDSketch 
Paper](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf)
   - [Datadog's sketches-java repo](https://github.com/DataDog/sketches-java)
   
   ## 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?
   
   Thanks,  
   Andrea Novellini (@geonove)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to