Reduce/aggregations with FoundationDB

Hi All,

I’m working on implementing CouchDB’s map/reduce functionality on top of FoundationDB. I’ve just started working on the reduce work which is quite a tricky thing to solve. Currently, I’m looking to implement a skip list - similar to RankedSet in the Record Layer, in FDB with aggregated results at each level.

I’ve written an RFC with a basic js implementation on how I plan to implement it. I would really appreciate any feedback from the community on this.

Just to note, at this stage the reduce index would not be built in parallel, but we would like to do that as a next step.

For those new to CouchDB:
Documentation on CouchDB’s reduce functions
Introduction to how CouchDB’s reduce currently work

Regarding the parallel build, you might be interested in an (eventually) upcoming feature

which will enable (directly or indirectly) dividing the key space into chunks of a desired size for parallel processing.