New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 834992 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Zucchini: Experiment with enhanced "new" range delta encoding

Project Member Reported by huangs@google.com, Apr 19 2018

Issue description

Zucchini equivalence map consists of items. Denote these as {src[i], dst[i], len[i]}, where:
  src[i] = "old" offset,
  dst[i] = "new" offset,
  len[i] = length of range.

Currently patches store src and dst using delta-encoding, i.e.:
  [src[0], src[1] - src[0], src[2] - src[1], ...],
  [dst[0], dst[1] - dst[0], dst[2] - dst[1], ...].

However, the following constraints are imposed on the equivalence map:
  - Equivalence are sorted by "new" offsets.
  - "New" ranges never overlap.

Together these mean src[i + 1] >= src[i] + len[i], and this gives rise to potential patch optimization: We can store
  [dst[0], dst[1] - (dst[0] - len[0]), dst[2] - (dst[1] - len[1]), ...].

The results are always non-negative, but this results in values that are smaller than delta-encoding raw dst[].

The experiment can be conducted by operating directly on patch (using zucchini.js).
 

Comment 1 by hua...@chromium.org, Apr 26 2018

Components: Internals>Installer>Diff

Comment 2 by hua...@chromium.org, Jun 25 2018

Status: WontFix (was: Untriaged)
Oops tuns out this has already been done! Setting to WontFix.

Sign in to add a comment