[MOBY-dev] where are all signature URLs?

Mark Wilkinson markw at illuminae.com
Sat Feb 25 16:11:12 UTC 2006


I think we have the same understanding.  I just didn't explain clearly  
what it is that I had to do.  What had happened was (in temporal order, as  
best I can understand it):

1) Services were registered as consuming a particular namespace - the LSID  
of that namespace, without timestamp, as the primary key, was entered into  
that service's registry entry.

2) Then, somehow (?!?!?) a small number of namespace terms in the  
namespace database were altered by the addition of an underscore.  I don't  
know why or when this happened...  this, however, didn't affect the  
namespace's LSID, which is a different field in the namespace database,  
nor did it affect the namespace LSID's that were associated with the  
service instances in the registry.  We didn't notice this at the time.

3) a few weeks ago I scripted the addition of a timestamp to every  
namespace LSID.  For the Namespace database, I used the namespace term  
(some of them how with additional '_') as the template to create the  
associated namespace LSID.  However, in the Service Instance table, I used  
the namespace LSID itself as the template, and simply appended a timestamp  
on to each namespace that the service instance was using.  This SHOULD  
have been a safe operation... but because of this peculiar and unexplained  
addition of an underscore to certain namespaces, it was not.

4)  At that point, the namespace LSID's associated with service instances  
went out of sync with the namespace LSID's that were in the namespace  
table.  The namespace table LSIDs were e.g. urn:lsid:....:EMBL_:timestamp,  
but the service instance table LSIDs were urn:lsid:...:EMBL:timestamp

Since the LSID is the primary key used to validate and retrieve namespace  
information, this ended up making some service regisrations "invalid"  
(they could not be retrieved properly anymore).

What I was describing below was the operation that I did to fix the  
problem - I modified the LSIDs in the namespace table by removing the '_',  
but I didn't modify the timestamp, because if I had, then I would have had  
to update the namespace LSID in each of the services that used that  
namespace to keep them in sync (and then I'd have to update that service's  
service instance LSID as well...)

Ugh... I hate working on the database manually!  :-)

M




On Sat, 25 Feb 2006 05:57:00 -0800, Martin Senger <senger at ebi.ac.uk> wrote:

> Thanks for the details, interesting.
>    When reading your comments, I suddenly was not sure if we have the  
> same
> understanding for LSID versioning. I guess we have but here is what
> slightly confused me:
>
>> was to modify the lsid in the namespace table (remove the underscore)
>> but keep the same timestamp, since that was the timestamp that the
>> service was registered under
>>
>    This seems to me like a service version depends on the version of a
> namespace used by this service. Is it true? If yes then it differs from  
> my
> version understanding - I thought that a version of a, for example,
> service is changed when the same service is registered again. But it does
> not change if the entities used by this service are changed (which is
> normally impossible, anyway, because except manual editing you cannot
> unregister and register again anything that other entities depend on).
>
>    Martin
>





More information about the MOBY-dev mailing list