storj/satellite/metainfo/piecedeletion
Egon Elbre 3d6518081a satellite/metainfo/piecedeletion: add Combiner
To handle concurrent deletion requests we need to combine them into a
single request.

To implement this we introduces few concurrency ideas:

* Combiner, which takes a node id and a Job and handles combining
  multiple requests to a single batch.

* Job, which represents deleting of multiple piece ids with a
  notification mechanism to the caller.

* Queue, which provides communication from Combiner to Handler.
  It can limit the number of requests per work queue.

* Handler, which takes an active Queue and processes it until it has
  consumed all the jobs.
  It can provide limits to handling concurrency.

Change-Id: I3299325534abad4bae66969ffa16c6ed95d5574f
2020-03-16 17:13:26 +00:00
..
combiner_bench_test.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
combiner_test.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
combiner.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
doc.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
handler_test.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
handler.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
queue_test.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00
queue.go satellite/metainfo/piecedeletion: add Combiner 2020-03-16 17:13:26 +00:00