The idea is to add a generic map/reduce API that supports incremental updates by persisting intermediary reducer output alongside tree nodes.
Persisting intermediate results is important when 'forking' a remote hyperbee - as to recalculate the reducer output from scratch would require fetching the whole tree, breaking hyperbee's lightweight fork model.
However, exchanging intermediate reducer output presents some challenges. The output is only useful in combination with the code that produced it (at least for writes). This requires either shipping the code (like couchdb) and running it in a sandbox, or introducing some kind of versioning so programs consuming intermediate reducer output can determine if they have compatible code.
The idea is to add a generic map/reduce API that supports incremental updates by persisting intermediary reducer output alongside tree nodes.
Persisting intermediate results is important when 'forking' a remote hyperbee - as to recalculate the reducer output from scratch would require fetching the whole tree, breaking hyperbee's lightweight fork model.
However, exchanging intermediate reducer output presents some challenges. The output is only useful in combination with the code that produced it (at least for writes). This requires either shipping the code (like couchdb) and running it in a sandbox, or introducing some kind of versioning so programs consuming intermediate reducer output can determine if they have compatible code.