PipelineDP is a Python framework for applying differentially private aggregations to large datasets using batch processing systems such as Apache Spark, Apache Beam, and more.
CustomCombiner is the way how client can implement custom DP aggregation, with PipelineDP manages all infrastructure stuff (Contribution bounding, Partition selection, budget management etc).
In the initial version of this API, it was assumed that CustomCombiner requests the budget only once. But
CustomCombiner might need to request multiple budget objects, for example for computing mean, it's needed to add noise 2 times - for count and sum. This PR changes that. CustomCombiner can use any structure for keeping budgets (e.g. dictionary) rather than 1 budget object.
CustomCombiner
is the way how client can implement custom DP aggregation, with PipelineDP manages all infrastructure stuff (Contribution bounding, Partition selection, budget management etc).In the initial version of this API, it was assumed that
CustomCombiner
requests the budget only once. ButCustomCombiner
might need to request multiple budget objects, for example for computing mean, it's needed to add noise 2 times - for count and sum. This PR changes that.CustomCombiner
can use any structure for keeping budgets (e.g. dictionary) rather than 1 budget object.