Hey Tom,

You've correctly discovered this. This was an intentional by-design
artifact of my belief that versioning and data movement should be
sort of co-located on the same machine. So if you do client side
data movement (which most people do), then the versioning should
happen alongside of it, and thus any metadata extraction present
there should be available during versioning for use in e.g., Metadata
based versioning.

The rub comes in the issue where the metadata is generated on the
server side and you expect versioning to be available to the system.
One way of getting around this is taking a look at the way that
the FinalFileLocationExtractor [1] grabs the latest version of the
CoreMetKeys.FILE_LOCATION property and then makes it available for e.g.,
versioning.

See discussion too in OODT-72 [2] for some rationale behind my
sentiments there. Happy to discuss!

Cheers,
Chris

[1] http://s.apache.org/bvd
[2] https://issues.apache.org/jira/browse/OODT-72

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chris Mattmann, Ph.D.
Chief Architect
Instrument Software and Science Data Systems Section (398)
NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
Office: 168-519, Mailstop: 168-5th floor
Email: [email protected]
WWW:  http://sunset.usc.edu/~mattmann/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adjunct Associate Professor, Computer Science Department
University of Southern California, Los Angeles, CA 90089 USA
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++






-----Original Message-----
From: Thomas Bennett <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Tuesday, May 27, 2014 3:53 AM
To: OODT <[email protected]>
Subject: Metadata based versioning

>Hey,
>
>
>When calling  *XmlRpcFileManager.ingestProduct()*, I noticed that the
>variable *"m"* (Metadata m = new Metadata()) is never updated with server
>side met extraction.
>
>This means that metadata based versioning cannot work unless the metadata
>used is client side metadata.
>
>For example:
>
>I use CoreMetExtractor on the server side to extract FileLocation and
>Filename.
>
>Howeve when *addMetadata(p,m)* is called it does the following steps:
>
>   1. does the server based met extraction (in my case CoreMetExtraction)
>   2. updates the catalog
>   3. returns true.
>
>Since it only returns true, the updates that have been made to the
>internal
>version of m passed into the method are lost.
>
>Versioning happens after this step and I use Filename as part of my
>versioner, which ends up getting set to 'null'.
>
>Any reason why sever side met extraction should not be used for product
>versioning?
>Any reason why should addMetadata should not return the updated m?
>
>Cheers,
>Tom

Reply via email to