Gentoo Archives: gentoo-commits

From: "Robin H. Johnson (robbat2)" <robbat2@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/en/glep: glep-0061.txt
Date: Sun, 31 Jan 2010 08:27:12
Message-Id: E1NbV98-0000kf-1f@stork.gentoo.org
1 robbat2 10/01/31 08:27:06
2
3 Modified: glep-0061.txt
4 Log:
5 Revise GLEP61 per Calchan questions: Cutoff point moved down to 32KiB, and example size results included; Split specification into generation and validation phases.
6
7 Revision Changes Path
8 1.5 xml/htdocs/proj/en/glep/glep-0061.txt
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0061.txt?rev=1.5&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0061.txt?rev=1.5&content-type=text/plain
12 diff : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0061.txt?r1=1.4&r2=1.5
13
14 Index: glep-0061.txt
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/en/glep/glep-0061.txt,v
17 retrieving revision 1.4
18 retrieving revision 1.5
19 diff -p -w -b -B -u -u -r1.4 -r1.5
20 --- glep-0061.txt 13 Jan 2010 03:26:53 -0000 1.4
21 +++ glep-0061.txt 31 Jan 2010 08:27:05 -0000 1.5
22 @@ -1,7 +1,7 @@
23 GLEP: 61
24 Title: Manifest2 compression
25 -Version: $Revision: 1.4 $
26 -Last-Modified: $Date: 2010/01/13 03:26:53 $
27 +Version: $Revision: 1.5 $
28 +Last-Modified: $Date: 2010/01/31 08:27:05 $
29 Author: Robin Hugh Johnson <robbat2@g.o>
30 Status: Draft
31 Type: Standards Track
32 @@ -10,7 +10,7 @@ Requires: 44
33 Created: July 2008
34 Updated: October 2008, January 2010
35 Updates: 44
36 -Post-History: December 2009
37 +Post-History: December 2009, January 2010
38
39 Abstract
40 ========
41 @@ -22,12 +22,31 @@ With the introduction of MetaManifest, a
42 we are faced with the possibility of having very large Manifests.
43
44 Preliminary experiments with MetaManifest, show that with just the
45 -existing per-package Manifests, the full MetaManifest, for a tree
46 -including metadata/, exceeds 8MiB in size. Applying common compression
47 -can achieve a 50-60% reduction in this size.
48 +existing per-package Manifests, the full MetaManifest (top-level only,
49 +no first-level sub directories), for a tree including metadata/, exceeds
50 +8MiB in size. Applying common compression can achieve a 50-60% reduction
51 +in this size.
52 +
53 +Additionally, some of the larger already-existing Manifests in the tree
54 +can also be reduced.
55
56 Specification
57 =============
58 +Creation of compressed Manifests:
59 +---------------------------------
60 +32KiB is suggested as a arbitrary cut-off point to start generating
61 +compressed Manifest2 files.
62 +
63 +The compression must only applied during the creation of a tree intended
64 +for end users. No Manifests stored in a VCS should be compressed in the
65 +VCS. For the main gentoo-portage tree, this means that the compressed
66 +Manifests should be generated using the CVS to Rsync process.
67 +
68 +The Manifest compression process is required to ensure that inconsistent
69 +compressed versions do not exist.
70 +
71 +Validation of Manifests:
72 +------------------------
73 When searching for a Manifest2 file, if the basename form does not
74 exist, the package manager should search in the same location using
75 common compressed suffixes, and use the compressed file in place of the
76 @@ -38,8 +57,67 @@ platform. In the case that multiple vers
77 should simply pick one - they should be identical, differing only in
78 compression.
79
80 -The Manifest generation process is required to ensure that inconsistent
81 -compressed versions do not exist.
82 +Example Results with a 32KiB cut-off, gzip algorithm
83 +====================================================
84 +As of 2010/01/30, the suggested cut-off would impact the following 21 existing
85 +Manifests, for a saving of nearly 900KiB::
86 +
87 + Size Path
88 + 65788 app-doc/linux-gazette/Manifest
89 + 75739 app-office/openoffice-bin/Manifest
90 + 40534 app-text/texlive-core/Manifest
91 + 41710 dev-texlive/texlive-bibtexextra/Manifest
92 + 38197 dev-texlive/texlive-documentation-english/Manifest
93 + 129610 dev-texlive/texlive-fontsextra/Manifest
94 + 36022 dev-texlive/texlive-humanities/Manifest
95 + 686118 dev-texlive/texlive-latexextra/Manifest
96 + 43392 dev-texlive/texlive-latexrecommended/Manifest
97 + 33375 dev-texlive/texlive-mathextra/Manifest
98 + 39781 dev-texlive/texlive-pictures/Manifest
99 + 69567 dev-texlive/texlive-pstricks/Manifest
100 + 75460 dev-texlive/texlive-publishers/Manifest
101 + 50879 dev-texlive/texlive-science/Manifest
102 + 36711 kde-base/kde-l10n/Manifest
103 + 36539 media-gfx/bootsplash-themes/Manifest
104 + 33058 net-fs/autofs/Manifest
105 + 39781 www-client/firefox-bin/Manifest
106 + 48983 www-client/icecat/Manifest
107 + 60213 www-client/mozilla-firefox/Manifest
108 + 39065 x11-themes/gkrellm-themes/Manifest
109 +
110 +
111 +Additionally, with the MetaManifest proposal, the following new manifests would
112 +also be compressed, for a saving of nearly 4MiB::
113 +
114 + Size Path
115 + 33442 app-admin/Manifest
116 + 71073 app-dicts/Manifest
117 + 35923 app-emacs/Manifest
118 + 45808 app-misc/Manifest
119 + 50169 app-text/Manifest
120 + 112786 dev-java/Manifest
121 + 65581 dev-libs/Manifest
122 + 42619 dev-lisp/Manifest
123 + 182163 dev-perl/Manifest
124 + 96198 dev-python/Manifest
125 + 58963 dev-ruby/Manifest
126 + 59736 dev-util/Manifest
127 + 58338 eclass/Manifest
128 + 55749 kde-base/Manifest
129 + 110064 licenses/Manifest
130 + 35262 media-gfx/Manifest
131 + 53995 media-libs/Manifest
132 + 55607 media-plugins/Manifest
133 + 71911 media-sound/Manifest
134 + 34835 media-video/Manifest
135 + 5747849 metadata/Manifest
136 + 47452 net-analyzer/Manifest
137 + 65989 net-misc/Manifest
138 + 316787 profiles/Manifest
139 + 67784 sys-apps/Manifest
140 + 48971 x11-misc/Manifest
141 + 41475 x11-plugins/Manifest
142 +
143
144 Backwards Compatibility
145 =======================
146 @@ -57,8 +135,7 @@ do not have an backwards compatibility i
147
148 As a side note, this breaks all manual interaction with Manifests
149 such as grep, and so should only be applied to large Manifest2 files,
150 -such as the MetaManifest. 384KiB is suggested as a arbitrary cut-off
151 -point to start generating compressed Manifest2 files.
152 +such as the MetaManifest.
153
154 References
155 ==========