Skip to content

Experimental Results

Daniel Tischner edited this page Sep 3, 2020 · 2 revisions

Experimental Results

We compared the performance of FSC against FastCDC, with various expected chunk size settings on multiple builds of a popular AAA game.

Setup

As primary metric for chunking performance, we measure the patch sizes when sequentially updating from a version of a game to the next version. That is, the amount of chunks that have been changed and hence have to be downloaded by the client. We do not measure chunks that the client will delete on the local build nor chunks that have to be moved from one location in the build to another.

Updates have been executed sequentially. The x-axis on the following graphs show those builds.

For the algorithms, a measurement always indicates a patch from the previous to the current version, so an entry on x = 3 represents the patch from build 2 to build 3.

Two metrics are measured,

  • the total patch size; so the total amount of bytes that has to be downloaded for the corresponding patch, and
  • the reduction compared to the baseline (FSC 2 MB); so the percentage of how much the patch size reduced by using the given technique compared to using FSC 2 MB.

Results

Results for the game are:

Summary

FastCDC, in all settings, achieves smaller patch sizes than FSC. The average patch size using FastCDC compared to FSC is reduced by 20% to 60% depending on the setting.

FSC commonly encounters large spikes in patch sizes, those are patches where it suffers from the Boundary-Shift-Problem. FastCDC greatly dampens those spikes, successfully addressing the problem.

Apparently, the chunk size plays a very important role in the effectiveness of FastCDC. A slice size of 2 MB achieves an average reduction of around 20% while 8 KB achieve 60% on average.

Clone this wiki locally