KySync v1.0

submited by
Style Pass
2021-09-19 03:00:03

KySync is an efficient way to distribute new data which makes use of older (but similar) data that you may already have present locally. KySync supports HTTP v1.1, but can easily be extended to support any server protocol which supports range queries.

KySync is a full rewrite of Zsync in modern C++. While no code was reused from Zsync, the awesome Zsync technical paper was the major resource used for the implementation of KySync.

The value proposition of KySync over Zsync is that it takes advantage of modern architecture features (multi-core multi-CPU systems as well as exceedingly fast IO subsystems, e.g. NVMe SSDs). KySync is 3x-10x (or more) faster than Zsync on such commonly available modern hardware. We have not spent much time optimizing KySync single-thread performance, so there are cases where with sufficiently high similarity, Zsync is faster when less then 4 threads are used in KySync.

Both of these could be expanded and offered separately, but in this document I will focus only on the bare minimum necessary to build KySync, use it, and reproduce the experimental results presented.

Leave a Comment
Related Posts