composablesys / collabs

Collabs library monorepo

Home Page:https://collabs.readthedocs.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Message compression

mweidner037 opened this issue · comments

Optimization: message compression. Can we do this in a streaming fashion? E.g., dictionary-style encoding (like in LZSS) that can use keywords from prior messages would make verbose CRDT names/paths, and long replica IDs in vector clocks, both non-issues.

Heather's advice is that even simple GZIP message compression would be too CPU expensive. We should focus on making the messages smaller directly instead.

For streaming compression: this requires creating per-replica tombstones that last the lifetime of the application, which could eventually use up a lot of memory. We could perhaps work around this by storing them on disk, but I don't currently think it is worth it.