summaryrefslogtreecommitdiff
path: root/lib/rpmts_internal.h
diff options
context:
space:
mode:
authorPavlina Moravcova Varekova <pmoravco@redhat.com>2017-04-21 11:45:42 +0200
committerPanu Matilainen <pmatilai@redhat.com>2017-04-21 13:50:50 +0300
commit29c48e14de414ca512e404a2d773c3fcb3578040 (patch)
treeecf9cb8268b2756c08dd56711022fe56ffa98ce5 /lib/rpmts_internal.h
parentf7d4b2b726c4ef3c6e0e33b05e1febd8470d89b5 (diff)
downloadrpm-29c48e14de414ca512e404a2d773c3fcb3578040.tar.gz
Add mode for updating with minimal writing (RhBug:783480)
How does the number of writes change? I compared number of writes with and without minimal writing for upgrade from RHEL 7.0 to RHEL 7.1, from RHEL 7.1 to RHEL 7.2, ... In more details, the size of memory used for writing regular files. The following table contains in the second column percentages of files which can be only touched from all installed files. In the third column, there are percentages of sum of their sizes. | Touched | Touched | Updated files | Updated bytes ------------------------------------------------------------------------ RHEL 7.0 -> RHEL 7.1 | 63 % | 66 % RHEL 7.1 -> RHEL 7.2 | 53 % | 43 % RHEL 7.2 -> RHEL 7.3 | 60 % | 42 % ------------------------------------------------------------------------ F24 -> F25 | 63 % | 40 % F25-> Fraw | 49 % | 28 % Does the speed change? The update speed for classical disks or SSD almost does not change. How it works? If there is a file in the new package, which has the equal digest as the corresponding file in the old package and the same file on the disk (thus the contents are expected to be equal), rpm will not install the whole file, but rather only upgrade the file's meta data. In other cases, it will install the whole file.
Diffstat (limited to 'lib/rpmts_internal.h')
-rw-r--r--lib/rpmts_internal.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/rpmts_internal.h b/lib/rpmts_internal.h
index 6a30cc520..05c392b64 100644
--- a/lib/rpmts_internal.h
+++ b/lib/rpmts_internal.h
@@ -84,6 +84,8 @@ struct rpmts_s {
int nrefs; /*!< Reference count. */
rpmtriggers trigs2run; /*!< Transaction file triggers */
+
+ int min_writes; /*!< macro minimize_writes used */
};
#ifdef __cplusplus