author | Edward Pilatowicz <edward.pilatowicz@oracle.com> |
Mon, 16 Sep 2013 21:26:31 -0700 | |
changeset 2945 | 24196b483cc6 |
parent 1431 | 62b6033670e4 |
permissions | -rw-r--r-- |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1 |
pkg(5): image packaging system |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
2 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
3 |
CATALOG FORMAT AND CACHING PROPOSAL |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
4 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
5 |
1. Overview |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
6 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
7 |
The pkg(5) server and client catalogs currently provides a summary |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
8 |
view of the packages provided by a repository: the FMRIs of each |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
9 |
package, the last time the set of available packages changed, and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
10 |
the total number of packages. The server uses this information |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
11 |
for publication checks, to fulfill client requests, for search |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
12 |
indexing and analysis, and to enable browser-based access to the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
13 |
repository via the BUI (Browser User Interface). pkg(5) clients |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
14 |
use this information to determine what packages are available, to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
15 |
validate user input, and to fulfill packaging operation requests. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
16 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
17 |
1.1 History |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
18 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
19 |
As development of the Image Packaging System has progressed, both |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
20 |
the server and client have increasingly required access to more |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
21 |
packaged metadata as fixes and various improvements have been |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
22 |
implemented. This has resulted in increased demand on server and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
23 |
client system resources when analyzing package metadata, and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
24 |
increased processing times as well. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
25 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
26 |
To address catalog performance issues, a client-side unified |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
27 |
catalog cache was implemented, and initially contained all known |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
28 |
package stems from the set of publishers defined within the image |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
29 |
configuration. The caching mechanism was then replaced, using a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
30 |
Python dict structure designed for efficient lookups of package |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
31 |
information by stem or FMRI and providing an ordered list of |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
32 |
versions, that was then serialized to disk. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
33 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
34 |
Recently, the caching was revised to use a custom, delta-encoded |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
35 |
text format that avoided object serialization as that created an |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
36 |
implicit dependency on object versions and definitions, as well as |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
37 |
significant overhead in the on-disk footprint. To improve package |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
38 |
metadata performance, a new cache format was created that factored |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
39 |
package manifests by the types of actions contained within, and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
40 |
then stored each type of action in a separate file for each |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
41 |
manifest. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
42 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
43 |
1.2 Challenges |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
44 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
45 |
Despite past improvements, significant performance improvements |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
46 |
are still needed for both the server and client when processing |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
47 |
and analyzing package metadata. The work done so far has also |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
48 |
only benefited the client, leaving server performance behind. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
49 |
Specifically, the underlying catalog data, caching mecahnisms, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
50 |
and catalog retrieval operations suffer from the following |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
51 |
issues: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
52 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
53 |
- the catalog format used for the server and client is not |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
54 |
consistent and the server uses local time instead of UTC |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
55 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
56 |
- the client does not maintain a 1:1 copy of the server's catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
57 |
and attributes making it difficult to verify its integrity and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
58 |
complicates the logic needed to obtain updates |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
59 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
60 |
- the caching mechanisms implemented are not granular enough, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
61 |
causing some operations to run slower than necessary as more |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
62 |
information than is needed is loaded and processed |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
63 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
64 |
- no efficient lookup mechanism exists for some of the metadata, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
65 |
causing operations such as dependency calculation to require a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
66 |
linear scan and retrieval of manifests |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
67 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
68 |
- the existing caching mechanisms require clients to retrieve |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
69 |
manifests for all known packages to be able to perform summary |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
70 |
listings of available packages (at least 65 MiB for a new build |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
71 |
of OpenSolaris) -- which is especially harmful to GUI clients |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
72 |
such as packagemanager(1) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
73 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
74 |
- the existing caching mechanisms do not provide the information |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
75 |
needed to determine (ahead of time) what package manifests need |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
76 |
to be retrieved during packaging operations, which leaves pkg(5) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
77 |
clients unable to provide sufficient feedback to the user during |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
78 |
plan creation such as number of bytes to be transferred, time |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
79 |
estimates, etc. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
80 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
81 |
- the catalog operation and caching mechanisms offered by the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
82 |
depot server are not extensible, and cannot accommodate new |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
83 |
metadata that may be needed to perform client operations |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
84 |
without a client and server revision |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
85 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
86 |
- the catalog and caching mechanisms do not account for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
87 |
future localization needs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
88 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
89 |
1.3 Goals |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
90 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
91 |
So then, the changes proposed within this document have the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
92 |
following goals: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
93 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
94 |
- unification of the server and client catalog format and code |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
95 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
96 |
- simplification of catalog update and retrieval mechanisms |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
97 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
98 |
- improved granularity and transparency in caching mechanisms |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
99 |
allowing operations to only retrieve the information they need |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
100 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
101 |
- reduction of resource requirements and processing time forserver |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
102 |
and client |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
103 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
104 |
- increase of available metadata before long-running package |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
105 |
operations to enable improved progress and user feedback |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
106 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
107 |
- improved extensibility of the catalog depot operation and the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
108 |
caching mechanisms used by the client |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
109 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
110 |
- unification and implementation of caching mechanisms and code |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
111 |
for client and server |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
112 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
113 |
2. Proposed Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
114 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
115 |
The changes needed to accomplish the goals listed in section 1.3 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
116 |
are grouped below by the type of change. It should be noted that |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
117 |
what is described in this document is dependent on an upcoming image |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
118 |
and repository format versioning proposal since these changes will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
119 |
require a change to the structure of both images and repositories. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
120 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
121 |
2.1 Catalog Format Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
122 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
123 |
2.1.1 Current Catalog Format |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
124 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
125 |
To better understand the proposed changes, it may first be helpful |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
126 |
to understand the current catalog format and how it is composed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
127 |
Currently, the catalog could be viewd as being composed of three |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
128 |
files: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
129 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
130 |
- attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
131 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
132 |
The attrs file contains metadata about the catalog. The |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
133 |
server and client attrs file are text/plain, and currently |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
134 |
have the following content: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
135 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
136 |
S Last-Modified: 2009-06-23T07:58:35.686485 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
137 |
S prefix: CRSV |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
138 |
S npkgs: 40802 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
139 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
140 |
The client adds this content: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
141 |
S origin: <repository_uri> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
142 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
143 |
The Last-Modified value is an ISO-8601 date and time in server |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
144 |
local time (not UTC). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
145 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
146 |
- catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
147 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
148 |
The server catalog file currently contains entries of this |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
149 |
format: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
150 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
151 |
<type> <fmri><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
152 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
153 |
Where type can be 'V' (version), 'C' (critical; not used), or |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
154 |
'R' (renamed). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
155 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
156 |
As a special exception, the format of 'R' entries is: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
157 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
158 |
R <src_stem> <src_version> <dest_stem> <dest_version><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
159 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
160 |
If a destination package is not provided for 'R', then 'NULL' |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
161 |
is used for the destination values. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
162 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
163 |
Examples: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
164 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
165 |
C pkg:/[email protected],5.11-0.111:20090507T161015Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
166 |
V pkg:/[email protected],5.11-0.111:20090508T161015Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
167 |
R foo 1.0:20090508T161015Z bar 1.0:20090509T161015Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
168 |
R baz 1.0:20090508T161015Z NULL NULL |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
169 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
170 |
The client catalog file contains entries of this format: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
171 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
172 |
<type> pkg <fmri_stem> <fmri_version><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
173 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
174 |
As a special exception, the format of 'R' entries is: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
175 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
176 |
R <src_stem> <src_version> <dest_stem> <dest_version><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
177 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
178 |
If a destination package is not provided for 'R', then 'NULL' |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
179 |
is used for the destination values. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
180 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
181 |
Example: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
182 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
183 |
V pkg foo 0.5.11,5.11-0.111:20090508T161015Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
184 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
185 |
- update log |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
186 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
187 |
While not strictly a part of the catalog, the update logs serve |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
188 |
as a record of changes to the catalog allowing clients to otbain |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
189 |
incremental updates to a catalog instead of retrieving the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
190 |
entire catalog each time. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
191 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
192 |
It only exists on the server, and contains entries of this |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
193 |
format: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
194 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
195 |
<update_type><type><space><fmri><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
196 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
197 |
Where 'update_type' can be '+' (there were comments at one |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
198 |
time referring to a '-' operation, but they were removed and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
199 |
the code for it was never implemented). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
200 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
201 |
Where 'type' can be 'V' (version), 'C' (critical; not used), |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
202 |
or 'R' (renamed). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
203 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
204 |
As a special exception, the format of 'R' entries is: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
205 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
206 |
R <src_stem> <src_version> <dest_stem> <dest_version><newline> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
207 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
208 |
2.1.2 Proposed Catalog Format |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
209 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
210 |
To accomplish the goals listed in section 2.1, a new catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
211 |
format will be adopted. This format will be used by the client |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
212 |
to store catalog data locally, regardless of the format used by |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
213 |
the repository (e.g. the repository only provides older catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
214 |
format). All data is assumed to be encodable using Unicode as |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
215 |
the JSON format specification requires this. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
216 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
217 |
The new catalog format splits the contents of the catalog into |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
218 |
multiple parts, per-locale, but treats them as a unified set. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
219 |
That is, all of the parts have a common base, but can easily be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
220 |
merged at load time if access to multiple parts is needed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
221 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
222 |
The catalog will be composed of the following files: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
223 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
224 |
- catalog.attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
225 |
This file will contain a python dict structure serialized in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
226 |
JSON (JavaScript Object Notation) format. The metadata within |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
227 |
is used to describe the catalog and its contents using the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
228 |
following attributes: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
229 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
230 |
_SIGNATURE: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
231 |
An optional dict of digest and/or cryptograhic values which |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
232 |
can be used by clients to verify the integrity of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
233 |
catalog.attrs data. Each key should represent the name of |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
234 |
the signature or digest used, and each value the signature |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
235 |
itself. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
236 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
237 |
created: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
238 |
The value is an ISO-8601 'basic format' date in UTC time |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
239 |
indicating when the catalog was created. This value is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
240 |
provided by the server. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
241 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
242 |
last-modified: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
243 |
The value is an ISO-8601 'basic format' date in UTC time |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
244 |
indicating when the catalog was last updated. This value |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
245 |
is provided by the server. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
246 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
247 |
package-count: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
248 |
An integer value indicating the total number of unique |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
249 |
FMRI stems in the catalog. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
250 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
251 |
package-version-count: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
252 |
An integer value indicating the total number of unique |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
253 |
FMRI versions in the catalog. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
254 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
255 |
parts: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
256 |
A dict of available catalog parts. This is to enable |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
257 |
clients to quickly determine what locale-specific catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
258 |
data might be available to them. Each entry contains the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
259 |
date and time a part was created and last modified. It |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
260 |
may also contain digest signature entries for the part (if |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
261 |
available) so that clients can verify parts after applying |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
262 |
incremental updates. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
263 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
264 |
updates: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
265 |
A dict of available catalog updates. Each entry corresponds |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
266 |
to the filename of an update log named after the time the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
267 |
update occurred using an ISO-8601 'reduced accuracy basic |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
268 |
format'. Each entry also contains a last-modified date in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
269 |
ISO-8601 basic format to allow clients to determine when an |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
270 |
update log was last changed without checking the repository. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
271 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
272 |
version: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
273 |
An integer value representing the version of the structure |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
274 |
used within the attrs, update log, and catalog part files. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
275 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
276 |
Example: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
277 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
278 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
279 |
"_SIGNATURE": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
280 |
"sha-1": "8f5c22fd8218f7a0982d3e3fdd01e40671cb9cab" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
281 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
282 |
"created": "20050614T080000.234231Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
283 |
"last-modified": "20090508T161025.686485Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
284 |
"package-count": 40802, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
285 |
"package-version-count": 1706, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
286 |
"parts": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
287 |
"catalog.base.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
288 |
"last-modified": "20090508T161025.686485Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
289 |
"signature-sha-1": "9b37ef267ae6aa8a31b878aad4e9baa234470d45", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
290 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
291 |
"catalog.dependency.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
292 |
"last-modified": "20090508T161025.686485Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
293 |
"signature-sha-1": "0c896321c59fd2cd4344fec074d55ba9c88f75e8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
294 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
295 |
"catalog.summary.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
296 |
"last-modified": "20090508T161025.686485Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
297 |
"signature-sha-1": "b3a6ab53677c7b5f94c9bd551a484d57b54ed6f7", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
298 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
299 |
"catalog.summary.FR": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
300 |
"last-modified": "20081002T080903.235212Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
301 |
"signature-sha-1": "d2b6cb03677c725f94c9ba551a454d56b54ea2f8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
302 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
303 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
304 |
"updates": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
305 |
"update.20081002T08Z.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
306 |
"last-modified": "20081002T080903.235212Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
307 |
"signature-sha-1": "a2b6cb03277c725a94c9ba551a454d56b54ea2f8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
308 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
309 |
"update.20090508T16Z.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
310 |
"last-modified": "20090508T161025.686485Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
311 |
"signature-sha-1": "c2b6ca03473c725f94c8ba201a454d56b54ea2f8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
312 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
313 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
314 |
"version": 1, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
315 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
316 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
317 |
- catalog.<part_name>.<locale_name> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
318 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
319 |
Each part of the catalog will contain a python dict structure |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
320 |
serialized in JSON format. <locale_name> is an OpenSolaris |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
321 |
system locale name, and should be 'C' if the file applies to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
322 |
all locales. Version entries for each package stem are kept |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
323 |
in ascending version order to allow fast lookups by the client |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
324 |
and avoid sort overhead on load. Also note that any top-level |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
325 |
entry key in the structure starting with '_' will be treated |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
326 |
as metadata related to the catalog or version entry and must |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
327 |
be ignored unless the client can use it. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
328 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
329 |
Finally, each catalog entry can also contain an optional set |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
330 |
of digest and signature key/value pairs that can be used to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
331 |
verify the content of the related package manifest. Clients |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
332 |
must ignore any key/value pairs that are unknown to them within |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
333 |
the structure. The catalog structure can be described as |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
334 |
follows: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
335 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
336 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
337 |
"<optional-signature-dict": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
338 |
"<signature-name>": "<signature-value>", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
339 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
340 |
"<publisher-prefix>": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
341 |
"<FMRI package stem>": [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
342 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
343 |
"version": <FMRI version string>, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
344 |
"<optional-actions>": <optional-actions-data> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
345 |
"<optional-signature-name>": "<signature-value>", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
346 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
347 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
348 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
349 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
350 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
351 |
Initially, the server will offer the following catalog 'parts'. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
352 |
Each has its content based on a tradeoff between memory usage, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
353 |
load times, and bandwidth needs which depend on the client being |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
354 |
used to perform packaging operations or the operation being |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
355 |
performed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
356 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
357 |
- catalog.base.C |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
358 |
This catalog part contains the FMRIs of the packages that the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
359 |
repository contains, and an optional digest value that can be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
360 |
used for verifying the contents of retrieved manifests. Loading |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
361 |
just this content is useful when performing basic listing opera- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
362 |
tions using the cli, or when simply checking to see if a given |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
363 |
package FMRI is valid. Note that since this information is com- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
364 |
mon to all locales, this part of the catalog is only offered for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
365 |
the 'C' locale. An example of its contents is shown below: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
366 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
367 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
368 |
"_SIGNATURE": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
369 |
"sha-1": "9b37ef267ae6aa8a31b878aad4e9baa234470d45", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
370 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
371 |
"opensolaris.org":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
372 |
"SUNWipkg":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
373 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
374 |
"version":"0.5.11,5.11-0.117:20090623T135937Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
375 |
"signature-sha-1": "596f26c4fc725b486faba089071d2b3b35482114" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
376 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
377 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
378 |
"version":"0.5.11,5.11-0.118:20090707T220625Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
379 |
"signature-sha-1": "ab6f26c4fc725b386faca089071d2b3d35482114" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
380 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
381 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
382 |
"SUNWsolnm":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
383 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
384 |
"version":"0.5.11,5.11-0.117:20090623T144046Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
385 |
"signature-sha-1": "fe6f26c4fc124b386faca089071d2b3a35482114" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
386 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
387 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
388 |
"version":"0.5.11,5.11-0.118:20090707T224654Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
389 |
"signature-sha-1": "696f26c4fc124b386facb089071d2b3f35482114" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
390 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
391 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
392 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
393 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
394 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
395 |
- catalog.dependency.C |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
396 |
This catalog part contains the FMRIs of the packages that the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
397 |
repository contains, any 'depend' actions, and any 'set' actions |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
398 |
for facets or variants. This information is intended to be used |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
399 |
during dependency calculation by install, uninstall, etc. It is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
400 |
anticipated that package size summary information, and actions |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
401 |
for set pkg.renamed and pkg.obsolete will be stored in this part |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
402 |
as well when they become available. Note that since this infor- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
403 |
mation is common to all locales, this part of the catalog is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
404 |
only offered for the 'C' locale. An example of its contents is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
405 |
shown below: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
406 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
407 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
408 |
"_SIGNATURE": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
409 |
"sha-1": "0c896321c59fd2cd4344fec074d55ba9c88f75e8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
410 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
411 |
"opensolaris.org":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
412 |
"SUNWdvdrw":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
413 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
414 |
"version":"5.21.4.10.8,5.11-0.108:20090218T042840Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
415 |
"actions":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
416 |
"set name=variant.zone value=global value=nonglobal", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
417 |
"set name=variant.arch value=sparc value=i386", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
418 |
"depend [email protected] type=require", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
419 |
"depend [email protected] type=require", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
420 |
"depend [email protected] type=require" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
421 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
422 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
423 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
424 |
"SUNWthunderbirdl10n-extra":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
425 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
426 |
"version":"0.5.11,5.11-0.75:20071114T205327Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
427 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
428 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
429 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
430 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
431 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
432 |
- catalog.summary.<locale_name> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
433 |
This catalog part contains the FMRIs of the packages that the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
434 |
repository contains and any 'set' actions (excluding those for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
435 |
facets or variants). This information is intended to be used |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
436 |
primarily by GUI clients such as packagemanager(1), or the BUI |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
437 |
(Browser UI) provided by pkg.depotd(1m) for quick, efficient |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
438 |
access to package metadata for listing. An example is shown |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
439 |
below: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
440 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
441 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
442 |
"_SIGNATURE": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
443 |
"catalog-sha-1": "b3a6ab53677c7b5f94c9bd551a484d57b54ed6f7", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
444 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
445 |
"opensolaris.org":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
446 |
"SUNWdvdrw":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
447 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
448 |
"version":"5.21.4.10.8,5.11-0.108:20090218T042840Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
449 |
"actions":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
450 |
"set name=description value=\"DVD creation utilities\"", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
451 |
"set name=info.classification value=org.opensolaris.category.2008:System/Media", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
452 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
453 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
454 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
455 |
"SUNWthunderbirdl10n-extra":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
456 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
457 |
"version":"0.5.11,5.11-0.75:20071114T205327Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
458 |
"actions":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
459 |
"set name=description value=\"Thunderbird localization - other 15 lang\"", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
460 |
"set name=srcpkgs value=SUNWthunderbirdl10n-extra" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
461 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
462 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
463 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
464 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
465 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
466 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
467 |
- update.<logdate>.<locale_name> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
468 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
469 |
This file will contain a python dict structure serialized in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
470 |
JSON (JavaScript Object Notation) format. Where <logdate> is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
471 |
a UTC date and time in ISO-8601 'reduced accuracy basic |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
472 |
format'. <locale_name> is an OpenSolaris system locale name, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
473 |
and should be 'C' if the update log applies to all locales. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
474 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
475 |
The structure of catalog update files is similar to that of |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
476 |
of catalog files, with a few exceptions. First, each version |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
477 |
entry contains additional elements indicating the catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
478 |
operation and the time of the operation. Second, each entry |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
479 |
also contains a set of dicts keyed by catalog part name |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
480 |
indicating which catalog parts the package was added to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
481 |
contents of each of these dicts is the exact contents of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
482 |
package's catalog part entry (excluding version). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
483 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
484 |
The supported types (<op-type> in the example below) of catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
485 |
operations are: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
486 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
487 |
'add' Indicates that the corresponding FMRI and metadata |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
488 |
(if present) has been added to the catalog. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
489 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
490 |
'remove' Indicates that the corresponding FMRI has been |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
491 |
removed from the catalog. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
492 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
493 |
The structure can be described as follows: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
494 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
495 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
496 |
<optional-signature-or-signature-dict>: { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
497 |
<signature-or-signature-name>: <signature-or-signature-value>, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
498 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
499 |
<publisher-prefix>: { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
500 |
<FMRI package stem>: [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
501 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
502 |
"op-type": <type-of-operation> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
503 |
"op-time": <ISO-8601 Date and Time> |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
504 |
"version": <FMRI version string>, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
505 |
"<catalog.part.name>": <catalog-type-metadata>, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
506 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
507 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
508 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
509 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
510 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
511 |
An example update log might consist of the following: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
512 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
513 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
514 |
"_SIGNATURE": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
515 |
"sha-1": "0c896321c59fd2cd4344fec074d55ba9c88f75e8", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
516 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
517 |
"opensolaris.org":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
518 |
"SUNWthunderbirdl10n-extra":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
519 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
520 |
"op-type": "remove", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
521 |
"op-time": "20090218T042838Z" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
522 |
"version":"0.5.11,5.11-0.75:20071114T205327Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
523 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
524 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
525 |
"SUNWdvdrw":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
526 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
527 |
"op-type": "add", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
528 |
"op-time": "20090524T042841Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
529 |
"version":"5.21.4.10.8,5.11-0.111:20090524T042840Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
530 |
"catalog.dependency.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
531 |
"actions": [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
532 |
"depend [email protected] type=require", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
533 |
"depend [email protected] type=require", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
534 |
"depend [email protected] type=require" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
535 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
536 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
537 |
"catalog.summary.C": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
538 |
"actions": [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
539 |
"set name=description value=\"DVD creation utilities\"", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
540 |
"set name=info.classification value=org.opensolaris.category.2008:System/Media", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
541 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
542 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
543 |
"signature-sha-1": "fe6f26c4fc124b386faca089071d2b3a35482114", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
544 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
545 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
546 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
547 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
548 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
549 |
Please note that the digest and cryptographic information is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
550 |
optional since older repositories won't have the information and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
551 |
some users of the depot software may choose to not provide it. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
552 |
For a detailed discussion on the choice of data format and a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
553 |
performance analysis, see section 3. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
554 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
555 |
2.2 Server Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
556 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
557 |
To enable clients to retrieve the new catalog files and incremental |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
558 |
updates to them, the following changes will be made: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
559 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
560 |
- The new catalog files will be stored in the <repo_dir>/catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
561 |
directory using the filenames described in section 2.1.2. Any |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
562 |
existing catalog files will be converted to the new format upon |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
563 |
load (using writable-root if present) and the old ones removed |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
564 |
(unless readonly operation is in effect). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
565 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
566 |
- Operations that modify the catalog file will be changed to write |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
567 |
out all of the new catalogs only; the version 0 catalog will no |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
568 |
longer be stored or used. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
569 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
570 |
- The depot server will be changed to offer an additional catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
571 |
operation "/catalog/1/" which will be added to the output of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
572 |
"/versions/0/" operation as well. It will provide a simple GET- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
573 |
based HTTP/1.1 interface for retrieving catalog and update log |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
574 |
files from the server. It will not require or use any headers |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
575 |
other than those normally present within a standard HTTP/1.1 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
576 |
transaction. However, the client api will continue to provide |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
577 |
the uuid, intent, and user agent headers that are provided today |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
578 |
for the existing "/catalog/0/" operation. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
579 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
580 |
- The existing "/catalog/0/" operation will continue to be offered |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
581 |
by the depot server for compatibility with older clients. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
582 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
583 |
- The depot server will be changed to perform a simple sanity check |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
584 |
when starting to verify that the packages in the catalog are |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
585 |
physically present in the repository and that the catalog attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
586 |
files match the catalog files. Likewise, the update logs will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
587 |
be checked to verify that they are valid for the catalogs. If |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
588 |
any of these files are found to be not valid, a warning will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
589 |
logged and the catalog files rewritten (using writable-root if |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
590 |
applicable). In addition, any of the corrections made will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
591 |
result in corresponding update log entries so that incremental |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
592 |
updates will not be broken for existing clients. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
593 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
594 |
2.3 Client Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
595 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
596 |
To take advantage of the new catalog format, and to improve the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
597 |
performance of clients, a number of changes will need to be made |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
598 |
to the pkg.client.api and its supporting classes. All of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
599 |
changes proposed here should be transparent to client api |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
600 |
consumers. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
601 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
602 |
2.3.1 Image Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
603 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
604 |
- The image object, upon initialization, will remove the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
605 |
/var/pkg/catalog directory and its contents if possible. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
606 |
If this cannot be done (due to permissions), the client |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
607 |
will continue on. If it can be removed, a new directory |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
608 |
named /var/pkg/publisher be created, and publisher objects |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
609 |
will be told to store and retrieve their metadata from it. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
610 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
611 |
- Publisher objects will store their catalog data within the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
612 |
directory <meta_root>/<prefix>/catalog/. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
613 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
614 |
- Any functions contained within the image class for the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
615 |
direct storage, retrieval, updating, etc. of publisher |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
616 |
metadata will be moved to the pkg.client.publisher and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
617 |
Catalog classes. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
618 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
619 |
- A new "Catalog" object reference will be added to the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
620 |
image class, which will be used to allow the api access |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
621 |
to catalog metadata. This object will allow callers to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
622 |
ask for a specific set of catalog data for an operation |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
623 |
(where the allowed sets match the names of the catalogs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
624 |
described in section 2.1.2). The data will then be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
625 |
retrieved and stored for usage by callers as needed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
626 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
627 |
- The existing catalog caching mechanism will be removed |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
628 |
completely as it has been superseded by the new catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
629 |
format. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
630 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
631 |
- For performance reasons, the client api will also store |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
632 |
versions of each of the catalogs proposed that only |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
633 |
contain entries for installed FMRIs to accelerate common |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
634 |
client functions such as info, list, uninstall, etc. This |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
635 |
change will also result in the obsoletion of the current |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
636 |
/var/pkg/state directory and /var/pkg/pkg/<stem>/<ver>/ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
637 |
installed files, which will be removed and converted |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
638 |
during the image initialization process if possible. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
639 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
640 |
- All api functions will be changed to retrieve the catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
641 |
data they need instead of depending upon api consumers to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
642 |
do so. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
643 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
644 |
2.3.2 Catalog Retrieval and Update Changes |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
645 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
646 |
- If a repository only offers version 0 of the catalog format, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
647 |
then the client API will retrieve it, but transform and store |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
648 |
the catalog in version 1 format using the times the server |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
649 |
provides. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
650 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
651 |
- If version 1 catalog data is not available, the client api will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
652 |
fallback to retrieving catalog metadata by retrieving package |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
653 |
manifests (as it does today). This will be transparent to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
654 |
clients. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
655 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
656 |
- When checking for catalog updates, the api(s) will follow this |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
657 |
process for version 1 catalogs when determining if a full or |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
658 |
incremental update should be performed for each catalog in the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
659 |
image: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
660 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
661 |
* If the repository now offers a version 1 catalog, but did not |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
662 |
do so previously, a full catalog retrieval will be performed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
663 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
664 |
* A conditional retrieval of the catalog.attrs file will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
665 |
performed using the last-modified date contained within it. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
666 |
If a 304 (or not modififed status) is returned, then the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
667 |
catalog will be skipped during the update process. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
668 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
669 |
* The resulting file will then be loaded and the integrity of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
670 |
attrs file verified by omitting the '_SIGNATURE' portion of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
671 |
data structure and using the information that was present within |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
672 |
to verify the integrity of the attrs file. If the integrity |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
673 |
check fails, a transport exception will be raised. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
674 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
675 |
* If the attrs file was retrieved successfully, it will be checked |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
676 |
as follows: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
677 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
678 |
- If the created date in the retrieved attrs file does not |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
679 |
match the stored attrs file, a full catalog retrieval will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
680 |
performed as the catalog has been rebuilt. In addition, a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
681 |
warning will be provided to the client that there may be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
682 |
something wrong with the repository (packages may be missing, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
683 |
etc.). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
684 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
685 |
- If the created date matches, then the version in the new attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
686 |
file will be compared to the original, if they do not match a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
687 |
full catalog retrieval will be performed as the format of the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
688 |
catalog has changed (unless the client is unable to parse that |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
689 |
format in which case an error will be raised). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
690 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
691 |
- If the version was valid, then the last modified date in the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
692 |
new catalog.attrs file will be compared to the original attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
693 |
file. If the original attrs date is newer, then a full |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
694 |
catalog retrieval will be performed and the user will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
695 |
warned that there may be something wrong with the repository |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
696 |
(packages may no longer be available, etc.). If the last |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
697 |
modified date in the original attrs file is the same as the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
698 |
new attrs file, then no updates are available and the catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
699 |
will be skipped. If the original attrs last modified date is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
700 |
older than the new attrs last modified date, then the 'update- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
701 |
logs' property will be checked to see if there are incremental |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
702 |
updates available. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
703 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
704 |
- If the update-logs property is empty, a full catalog retrieval |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
705 |
will be performed with the assumption that the repository has |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
706 |
intentionally discarded all of its incremental update |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
707 |
information. If the oldest update log listed in the new attrs |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
708 |
file is newer than the last modified date of the original |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
709 |
attrs file, then this client has not performed an incremental |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
710 |
for a period long enough that the repository no longer offers |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
711 |
incremental updates for their version of the catalog, and a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
712 |
full catalog retrieval will be performed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
713 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
714 |
- Finally, if all of the above was successful, the api will then |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
715 |
start the incremental update process. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
716 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
717 |
- When attempting to determine what incremental catalog updates |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
718 |
for version 1 catalogs are available, and the repository offers |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
719 |
version 1 catalogs, the client api(s) will use the following |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
720 |
process: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
721 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
722 |
* The modified date and time of the update log the client last |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
723 |
retrieved will compared against the corresponding entry in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
724 |
catalog.attrs. If it has not been modified, the update log |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
725 |
will be skipped. Otherwise it will be retrieved, and added |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
726 |
to the incremental update queue. This is necessary since |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
727 |
update logs are per-hour and a change may have occurred since |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
728 |
the last time the update log was retrieved. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
729 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
730 |
* The api will then retrieve any remaining update logs listed in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
731 |
the catalog.attrs file that have a <logdate> newer than the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
732 |
last time the client's local copy of the catalog was updated. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
733 |
Each will be added to the update queue after retrieval. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
734 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
735 |
* Each update log file will then loaded and verified by omitting |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
736 |
the '_SIGNATURE' portion of the structures and using the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
737 |
information that was present within it to verify the integrity |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
738 |
of the update log. If the integrity check fails, a transport |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
739 |
exception will be raised. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
740 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
741 |
- When applying the queued catalog updates, the client api will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
742 |
use this process for each update log: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
743 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
744 |
* each corresponding catalog part present in the image will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
745 |
loaded, and then any update log entries newer than the last |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
746 |
modified date of the catalog (based on op-time) will be |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
747 |
applied to the catalog as dicated by op-type |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
748 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
749 |
* if at any point, an update log entry cannot be applied as |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
750 |
directed, then a full catalog retrieval will be forced, and |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
751 |
the user will be warned that something may be wrong with the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
752 |
repository (missing packages, etc.) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
753 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
754 |
* if the update log is the last in the queue for a given set of |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
755 |
catalogs, then all previous ones will be removed as they are |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
756 |
no longer needed |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
757 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
758 |
- When attempting to verify the integrity of a full catalog part |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
759 |
retrieval, the api will use this process: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
760 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
761 |
* The catalog parts will be loaded into memory and the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
762 |
'_SIGNATURE' portion of the data structure removed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
763 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
764 |
* The api will then check the catalog.attrs file for digest |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
765 |
and/or cryptographic information related to the catalog. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
766 |
If the information is present, it will then be used to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
767 |
verify the integrity of the retrieved catalog parts. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
768 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
769 |
3. Appendix |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
770 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
771 |
3.1 Overview |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
772 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
773 |
During the development of this proposal, a number of different |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
774 |
approaches to the storage and retrieval of catalog data were |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
775 |
considered. Specifically, the following formats were considered |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
776 |
and/or evaluated: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
777 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
778 |
- manifest |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
779 |
A pure "manifest-style" format similar to the existing package |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
780 |
manifest. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
781 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
782 |
- JSON |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
783 |
The portable JavaScript Object Notation-based format. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
784 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
785 |
Size and performance characteristics for each of these formats can |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
786 |
be found in section 3.3. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
787 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
788 |
3.2 Evaluations |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
789 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
790 |
3.2.1 manifest-style format evaluation |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
791 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
792 |
Initially, the "manifest-style" format seemed promising from a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
793 |
performance and disk footprint standpoint when compared to using |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
794 |
JSON. A few variations of this format were attempted, and examples |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
795 |
of this can be seen below: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
796 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
797 |
- variation 1 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
798 |
pkg://opensolaris.org/[email protected],5.11-0.86:20080422T230436Z [email protected],[email protected] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
799 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
800 |
- variation 2 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
801 |
pkg://opensolaris.org/[email protected],5.11-0.86:20080422T230436Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
802 |
depend fmri=pkg:/[email protected] type=require |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
803 |
depend fmri=pkg:/[email protected] type=require |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
804 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
805 |
- variation 3 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
806 |
After realising that variant and facet information was needed, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
807 |
and that additional attributes might need to be accounted for in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
808 |
the future, variation 3 was chosen for evaluation. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
809 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
810 |
pkg://opensolaris.org/[email protected],5.11-0.106:20090131T184044Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
811 |
set name=variant.zone value=global value=nonglobal |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
812 |
set name=variant.arch value=sparc value=i386 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
813 |
depend [email protected] type=require |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
814 |
depend [email protected] type=require |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
815 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
816 |
3.2.2 JSON format evaluation |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
817 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
818 |
When first evaluating JSON, results on x86-based systems were very |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
819 |
comparable or significantly better than the manifest-based format |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
820 |
from both a file size and performance perspective. The following |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
821 |
structural variations were evaluated: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
822 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
823 |
- variation 1 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
824 |
Variation one attempted to combine the catalog and attrs files, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
825 |
but this approach was abandoned for simplicity and performance |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
826 |
reasons in later variations. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
827 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
828 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
829 |
"attributes": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
830 |
"id": "556599b2-aae8-4e67-94b3-c58a07dbd91b", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
831 |
"last-modified: "2009-05-08T16:10:25.686485", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
832 |
"locale": "C", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
833 |
"package-count: 40802, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
834 |
"version: 1, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
835 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
836 |
"packages": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
837 |
"SUNWipkg": { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
838 |
"publisher": "opensolaris.org", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
839 |
"versions": [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
840 |
"0.5.11,5.11-0.111:20090331T083235Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
841 |
"0.5.11,5.11-0.111:20090418T191601Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
842 |
"0.5.11,5.11-0.111:20090508T161025Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
843 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
844 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
845 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
846 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
847 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
848 |
- variation 2 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
849 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
850 |
"packages":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
851 |
"SUNWlang-cs-extra":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
852 |
"publisher":"opensolaris.org", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
853 |
"versions":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
854 |
[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
855 |
"0.5.11,5.11-0.86:20080422T230436Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
856 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
857 |
"depend":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
858 |
"require":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
859 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
860 |
"fmri":"foo" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
861 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
862 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
863 |
"fmri":"bar" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
864 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
865 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
866 |
"optional":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
867 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
868 |
"fmri":"baz" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
869 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
870 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
871 |
"fmri":"quux" |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
872 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
873 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
874 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
875 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
876 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
877 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
878 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
879 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
880 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
881 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
882 |
- variation 3 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
883 |
This variation was attempted due to extreme performance issues |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
884 |
that were seen on some lower-memory bandwidth SPARC systems |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
885 |
when writing JSON files. It was discovered that the simplejson |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
886 |
library uses a recursive call structure for iterative encoding |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
887 |
of python data structures and this does not perform well on many |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
888 |
SPARC systems. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
889 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
890 |
By changing the structure to a list of lists, a decrease om |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
891 |
write times of 20-30 seconds was realised. However, this was |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
892 |
less than desirable as it meant the resulting data structure |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
893 |
would have to be significantly tranformed after load for use |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
894 |
by the package system. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
895 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
896 |
[['pkg://opensolaris.org/[email protected],5.11-0.111:20090508T163711Z'], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
897 |
['pkg://opensolaris.org/[email protected],5.11-0.99:20081002T152038Z', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
898 |
[['require', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
899 |
['[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
900 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
901 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
902 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
903 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
904 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
905 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
906 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
907 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
908 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
909 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
910 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
911 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
912 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
913 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
914 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
915 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
916 |
'[email protected]']]]] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
917 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
918 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
919 |
- variation 4 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
920 |
This variation was struck upon after the failure of the last |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
921 |
with the attempt to have a data structure that was immediately |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
922 |
useful to the packaging system after load: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
923 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
924 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
925 |
'opensolaris.org': { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
926 |
'SUNWsongbird': [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
927 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
928 |
'depend': { |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
929 |
'require': [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
930 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
931 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
932 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
933 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
934 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
935 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
936 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
937 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
938 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
939 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
940 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
941 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
942 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
943 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
944 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
945 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
946 |
'[email protected]', |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
947 |
'[email protected]' |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
948 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
949 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
950 |
'version': '0.5.11,5.11-0.99:20081002T152038Z' |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
951 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
952 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
953 |
'SUNWstc': [ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
954 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
955 |
'version': '0.5.11,5.11-0.106:20090131T191239Z' |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
956 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
957 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
958 |
}, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
959 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
960 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
961 |
- variation 5 |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
962 |
The final variation is what was chosen for final evaluation for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
963 |
JSON after discussions with other team members centered around |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
964 |
a key point: that the catalog is essentially an action pipeline |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
965 |
for the client. In addition, the prior variations were either |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
966 |
hampered by poor serialization performance on SPARC systems or |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
967 |
lacked the extensibility needed for possible future attribute |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
968 |
additions to actions. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
969 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
970 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
971 |
"opensolaris.org":{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
972 |
"SUNWdvdrw":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
973 |
{ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
974 |
"version":"5.21.4.10.8,5.11-0.108:20090218T042840Z", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
975 |
"actions":[ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
976 |
"set name=description value=\"DVD creation utilities\"", |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
977 |
] |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
978 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
979 |
], |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
980 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
981 |
} |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
982 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
983 |
3.2.3 Performance Analysis |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
984 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
985 |
While a performance analysis was done for each variation during the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
986 |
evaluation process, only the results for the chosen variation are |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
987 |
shown here. Analyis was performed using a dump of the /dev repo |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
988 |
for builds 118 and prior consisting of 42,565 unique FMRIs. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
989 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
990 |
Each format that was evaluated presented unique challenges. While |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
991 |
the manifest-style provided simplicity and familiarity, it became |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
992 |
increasingly apparent during testing that any code that was used |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
993 |
to parse and write it would have to be changed significantly each |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
994 |
time changes were made to any in-memory structures that were used |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
995 |
as the source. In contrast, the JSON format made it easy to re-use |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
996 |
the in-memory python structure as the same format to be written to |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
997 |
disk. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
998 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
999 |
The uncompressed and gzip-compressed (provided because both Apache |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1000 |
and cherrypy are capable of gzip compressing requests) are shown |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1001 |
below for comparison. Of special note is the 'all' catalog shown |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1002 |
below which was created to evaluate the feasbility of having a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1003 |
single catalog that provided access to all commonly needed metadata |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1004 |
by combining the base, dependency, and summary catalogs proposed in |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1005 |
section 2.1.2. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1006 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1007 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1008 |
Size Comparison |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1009 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1010 |
Catalog Mfst. Sz. JSON Sz. Mfst. CSz. JSON CSz. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1011 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1012 |
current 2.25 MiB - 327 KiB - |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1013 |
base 2.86 MiB 2.00 MiB 305 KiB 246 KiB |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1014 |
dependency 16.44 MiB 16.45 MiB 1.4 MiB 1.4 MiB |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1015 |
summary 7.58 MiB 7.36 MiB 483 KiB 475 KiB |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1016 |
all 21.16 MiB 21.47 MiB 1.6 MiB 1.6 MiB |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1017 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1018 |
The time needed to read and write each format is shown below for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1019 |
comparison. Several runs for each catalog were performed to verify |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1020 |
that the timings were consistent, and the load of each system was |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1021 |
checked to verify that timings were not skewed. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1022 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1023 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1024 |
Base Catalog Timings |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1025 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1026 |
System Mfst. Wr. JSON Wr. Mfst. Rd. JSON Rd. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1027 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1028 |
mine 0.13s 0.41s 0.19s 0.05s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1029 |
ipkg.sfbay 0.19s 0.58s 0.29s 0.08s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1030 |
kodiak.eng 0.30s 0.99s 0.37s 0.08s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1031 |
cuphead.sfbay 1.18s 3.41s 1.54s 0.33s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1032 |
jurassic.eng 1.37s 3.77s 1.31s 0.46s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1033 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1034 |
Mean 0.63s 1.83s 0.74s 0.20s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1035 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1036 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1037 |
Dependency Catalog Timings |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1038 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1039 |
System Mfst. Wr. JSON Wr. Mfst. Rd. JSON Rd. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1040 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1041 |
mine 0.42s 1.06s 1.13s 0.24s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1042 |
ipkg.sfbay 0.98s 1.65s 1.70s 0.39s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1043 |
kodiak.eng 0.91s 2.61s 2.22s 0.40s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1044 |
cuphead.sfbay 6.05s 9.00s 8.57s 1.57s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1045 |
jurassic.eng 3.87s 10.46s 6.48s 2.13s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1046 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1047 |
Mean 2.45s 4.96s 4.02s 0.95s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1048 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1049 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1050 |
Summary Catalog Timings |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1051 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1052 |
System Mfst. Wr. JSON Wr. Mfst. Rd. JSON Rd. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1053 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1054 |
mine 0.16s 0.78s 0.58s 0.14s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1055 |
ipkg.sfbay 0.33s 1.09s 0.86s 0.22s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1056 |
kodiak.eng 0.35s 1.90s 1.10s 0.25s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1057 |
cuphead.sfbay 2.02s 6.55s 4.41s 0.92s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1058 |
jurassic.eng 1.35s 7.24s 3.34s 1.25s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1059 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1060 |
Mean 0.84s 3.51s 2.06s 0.56s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1061 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1062 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1063 |
'all' Catalog Timings |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1064 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1065 |
System Mfst. Wr. JSON Wr. Mfst. Rd. JSON Rd. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1066 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1067 |
mine 0.51s 1.22s 1.48s 0.31s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1068 |
ipkg.sfbay 1.22s 1.89s 2.30s 0.51s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1069 |
kodiak.eng 1.09s 3.05s 2.93s 0.53s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1070 |
cuphead.sfbay 7.35s 10.38s 11.15s 2.02s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1071 |
jurassic.eng 4.57s 12.20s 8.28s 2.74s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1072 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1073 |
Mean 2.95s 5.75s 5.23s 1.22s |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1074 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1075 |
System Notes: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1076 |
- 'mine' is an Intel Core 2 DUO E8600 with 8GiB RAM |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1077 |
- ipkg.sfbay is a dual Opteron 2218 with 16GiB RAM |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1078 |
- kodiak.eng is a SPARC64-VI box with 32GiB RAM |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1079 |
- cuphead.sfbay is an UltraSparc-T2 with 3GiB RAM |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1080 |
(likely ldom or zone) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1081 |
- jurassic.eng is an UltraSPARC-III+ with 32GiB RAM |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1082 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1083 |
From the timings seen above, it should become apparent that JSON |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1084 |
serialization performance is, on average, noticeably slower when |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1085 |
compared to a simple manifest-style format. In particular, this |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1086 |
is very noticeable on lower memory-bandwidth SPARC systems. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1087 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1088 |
It was discovered that the likely reason for poor serialization on |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1089 |
some SPARC systems is that simplejson uses a recursive function- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1090 |
based iterative encoder that does not perform well on SPARC systems |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1091 |
(due to register windows?). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1092 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1093 |
This is likely because the call stack depth for the encoder will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1094 |
match that of any python structure that it encodes. During the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1095 |
evaluation of possible format variations, this resulted in a |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1096 |
hybrid approach that combined a python dict with a simple list |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1097 |
of actions with the hope that further improvements could be made |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1098 |
to simplejson at some future date. Without this approach, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1099 |
significant increases in write times were seen (20-30 seconds) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1100 |
when using a pure dict-based structure. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1101 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1102 |
Conversely though, JSON read performance, on average, is noticeably |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1103 |
faster compared a manifest-style format. In part, this is because |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1104 |
more work has to be performed to transform the manifest-style format |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1105 |
into an equivalent python data structure. Notably, there is a large |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1106 |
cost to sorting package versions after load (having the version data |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1107 |
in ascending order is extremely useful to the client). |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1108 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1109 |
Finally, a comparison of the heap size overhead (defined as the |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1110 |
difference between the size of the heap before loading a catalog |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1111 |
and after as measured on my x86 system) is shown for comparison |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1112 |
below: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1113 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1114 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1115 |
'Heap' Overhead Comparison |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1116 |
================================================================= |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1117 |
Catalog Mfst. Sz. JSON Sz. Increase Sz. Inc. % |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1118 |
----------------------------------------------------------------- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1119 |
base 9.16 MiB 12.45 MiB +3.29 MiB +35.92% |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1120 |
dependency 32.34 MiB 51.48 MiB +19.14 MiB +59.19% |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1121 |
summary 16.84 MiB 27.41 MiB +10.57 MiB +62.76% |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1122 |
all 39.87 MiB 63.88 MiB +24.01 MiB +60.22% |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1123 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1124 |
3.3 Conclusion |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1125 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1126 |
When comparing the numbers alone, it seems as though the manifest- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1127 |
style format should have been chosen based solely on: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1128 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1129 |
- lower memory usage (43.6% less than JSON on average) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1130 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1131 |
- faster write times (1.71s on average compared to 4.01s on average |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1132 |
for JSON) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1133 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1134 |
However, ultimately, the manifest-style format was rejected for |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1135 |
reasons beyond simple numbers: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1136 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1137 |
- desire for a defined grammar and syntax |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1138 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1139 |
- required maintaining custom parsing and storage code |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1140 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1141 |
- not easily extensible such that if additional metadata |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1142 |
was needed that a protocol or file format revision might |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1143 |
be required |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1144 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1145 |
- when weighing read performance vs. write performance, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1146 |
read performance was considered more important as updates |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1147 |
to the catalog will happen far less freqeuntly than loads |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1148 |
of package data (loads took 3.01s on average for manifest- |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1149 |
style compared to 0.73s on average for JSON or about 75.75% |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1150 |
longer) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1151 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1152 |
Instead, the JSON format was selected for the following reasons: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1153 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1154 |
- full unicode support |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1155 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1156 |
- well-defined grammar and structure |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1157 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1158 |
- supported data types almost exactly mirror python's own |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1159 |
native data types |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1160 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1161 |
- allowed easy storage of existing action data of which |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1162 |
catalogs are essentially a summarized view of |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1163 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1164 |
- a python library for the parsing and writing of JSON is |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1165 |
part of python 2.6+ |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1166 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1167 |
- JSON is easily portable to other systems and myriad |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1168 |
tools are available to parse and write it |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1169 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1170 |
- it is anticipated that the performance of simplejson will |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1171 |
only improve over time |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1172 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1173 |
As a final note, the approach of using separate catalogs for each |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1174 |
set of data instead of a single, merged catalog was used to reduce |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1175 |
memory usage and the amount of data that needs to be transferred |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1176 |
for clients. |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1177 |