On 21 May 2015, at 21:20, Kenneth Adam Miller
wrote: Suppose I have a rather huge binary region. Transferring it by any means is an expensive operation. But changes to it will only be some fraction at worst case as large as the binary region itself, but in practice will typically be regional byte blobs, mostly not more than a single kilobyte long.. Is there any data structure that already handles this, where I could say, have every instance start off from the original binary region, and calculate what any other instance of that data structure has by "applicating the deltas"?
Do you keep track of changes, or do you need to calculate what the difference between two given huge binaries are? You might be able to efficiently compare binaries without transferring them by computing hashes of chunks of the binaries and transfer those hashes so that you can compare those. It's not an exact comparison because you have a risk of hash collisions, but that risk is typically extremely small. Once you have a list or regions that differ then you can simply send those regions and patch the binary at the other end. What you have sounds a bit like a version control system?