#715 Reevaluate generating deltas during compose time
Closed: Fixed 6 years ago Opened 6 years ago by lsedlar.

We have working delta RPMs in Rawhide now. The downside is that createrepo phase which used to take about 20 minutes now takes about 6 hours.

We could speed it up by not making deltas for debuginfo and source repos. Presumably they are not so helpful there. By my crude estimate based on the runtime of last rawhide compose with and without deltas this could save about hour and a half.

Another possibility is to make it possible to enable deltas only for particular variants such as Everything. Arguably it's the biggest one and therefore slowest, but still we could gain something. This could save about an hour and 10 minutes.

The estimates above are based this data:

Fedora-Rawhide-20170821.n.0 (without deltas)
Per variant binary breakdown
           Cloud: 0:04:22
      Everything: 0:20:40
          Server: 0:05:28
     Workstation: 0:03:22

    Binary total: 0:33:52
 Debuginfo total: 0:17:23
    Source total: 0:07:52
      Per thread: 0:19:42.333333
       Wall time: 0:20:01
     Grand total: 0:59:07


Fedora-Rawhide-20170822.n.0 (with deltas)
Per variant binary breakdown
           Cloud:  0:22:27
      Everything: 11:42:46
          Server:  0:39:38
     Workstation:  0:20:39

    Binary total: 13:05:30
 Debuginfo total:  4:03:08
    Source total:  0:48:28
      Per thread:  5:59:02
       Wall time:  6:04:38
     Grand total: 17:57:06

FWIW I really don't want deltarpms involved for Atomic Host (or workstation-ostree). ostree deltas are just better, and for layered packages things tend to be smaller.

That still leaves the dnf/yum-in-container use cases, but even there deltarpm so often doesn't work due to version skew or issues like the fact that we strip docs in the base container that it's just better to turn them off.

we should not make delta's for debug and sources. we also really only need to make Delta's for the Everything repo. the rest we could skip or copy from everything

One more needed change: the deltas should be made against last successful compose. Right know even failed composes are used, and so there may be deltas against packages that were never shipped.

One more needed change: the deltas should be made against last successful compose. Right know even failed composes are used, and so there may be deltas against packages that were never shipped.

@lsedlar, could we use the 'symlink' (like latest-Fedora-26) for this?

Proposed fix in #721

Using the symlink is not very convenient, because we use the same logic for finding old composes, where using a DOOMED one is not a problem (because we only care about metadata in temporary repos and need those to be as recent as possible).

deltas for debuginfo/source is not useful at all from my POV.

enable deltas only for particular variants such as Everything.

This is the ONLY variant that's actually used by users, right? (That is, it's the only thing repo files shipped point to, even if they are using Workstation or Server.)

Metadata Update from @lsedlar:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)
- Issue tagged with: 4.1.19

6 years ago

Login to comment on this ticket.

Metadata