js-delta-crdts icon indicating copy to clipboard operation
js-delta-crdts copied to clipboard

progressively compute view value

Open pgte opened this issue 7 years ago • 1 comments

Current state

Currently, the view value (Type.value(state)) is re-computed every time, and this has at least a O(n) complexity. An application typically listens to state changed events and then calls .value(state), which is expensive to do every time there is a mutation.

Proposed solution

Instead of computing the state every time .value() is called, keep the value around and, on each delta applied, change the value accordingly.

This will most probably require some changes to the API, or some new API that makes it stateful and where a specific type can interpret the deltas, generate specific mutation events, and apply them to the view value.

/cc @satazor @jimpick

pgte avatar Dec 02 '18 17:12 pgte

Done in type "RGA" by #30

pgte avatar Dec 08 '18 16:12 pgte