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 |
========== |