[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ROOT file_ids and Bundle_ids
This message is maily for Dave M., but it makes assumptions about the
directory structure for MDC2, so it is relevant to others as well.
Arie.
We discussed the file_id issues and here is what we concluded.
In the long run, we'd like to have the Storage Manager software
unafected by the type of files we deal with - Objectivity files, ROOT
files, or any other kind. To accommodate that, we'll have to use a
consistent set of file_IDs, regardless of where they come from. I'll
elaborate on how we plan to do that later.
As for what we pass to the Event Iterator (EI) for multiple components,
we concluded that we'd like to pass a bundle_id, and when the EI is
done with the bundle, it should use this bundle_id when releasing the
bundle. However, if there is a value to passing the file_ids (or
file_names) we could do that also at a later time (after MDC2).
So, here is what we plan for MDC2 and after MDC2.
For MDC2:
1) Both Objectivity files and ROOT files will be pre-assigned
Objectivity file-ids, and those will be used by the index.
2) All file names (including path_names if more that a single
directory is used) will be retrieved from the Objectivity catalog.
3) We assume files can be in different directories. However, the same
directory structure will exist beyond a root-path in HPSS as in Unix.
(e.g. suppose the Objectivity root-path is o1/o2/o3 and HPSS root-path is
h1/h2, then a file in Objectivity directory o1/o2/03/x/y/z/file_name,
will be in the HPSS directory as h1/h2/x/y/z/file_name.) Thus, given the
objectivity path, the HPSS path can be generated.
4) The QM will pass to the EI only the bundle_id and the set of
event_ids that qualify for this bundle. The EI will return this
bundle_id when releasing the bundle.
After MDC2:
1) ROOT files (or any other Unix files) will be assigned a 32 bit
file_ids by the QE at the time of index creation. Objectivity IDs will
also be 32 bits to accommodate future objectivity file_per_container
strategy. Internally to the SM, we'll distinguish between these two
file types, so each type will used the full 32 bits for ids.
2) The SM will maintain the map between full file_names and the 32-bit
internal file_id.
3) HPSS file_names will be maintained in the same map for use by the
Cache Manager. In general, it will possible for the HPSS directory
structure to be different than the Unix file structure.
4) As above, the QM will pass to the EI the bundle_id and the set of
event_ids that qualify for this bundle. But, in addition, the QM will
pass an-ordered list of file_ids (or file_names in case of ROOT files)
if this is deemed useful. The EI will only return the bundle_id when
releasing the bundle.
5) This scheme will allow the usage of a mixed types of files in the
same "federation" if that will be found to be useful.
Comments?
Arie.