[ome-devel] Synchronize Omero with an external DB

Luca Lianas luca.lianas at crs4.it
Wed Sep 26 10:22:32 BST 2012


Hi everyone,

I'm working on a new feature for our OMERO.biobank platform:
a graph-oriented database developed using Bulbs (http://bulbflow.com) with
a Neo4j (http://neo4j.org) backend.
This tool addresses our need to quickly retrieve objects connected by
chains of actions --- every object in OMERO.biobank can be generated by
performing an action on another object, and since connections are dynamic
and unpredictable we can't use a static workflow to represent them.

Our previous solution --- an in-memory graph built by querying all
connected objects at runtime --- rapidly reached its scalability limits as
we started handling something like 500K objects. Preliminary tests of the
new implementation show a speedup of 10, with greatly reduced memory
consumption.

The main issue at this point is keeping the Neo4j DB and
OMERO synchronized.  Our libraries propagate object creations, deletions
and updates (only when connections between objects change) to the Neo4j
server, but this is not enough. Is there a way to obtain something that can
be used as synchronization token from the OMERO server?

I'd like to be able to do something like the following:

conn = connect_to_omero(host, user, passwd)
token = conn.get_token()
neo4j = connect_to_neo4j(host)
if neo4j.check_token(token):
  go_on()
else:
  raise GraphSyncError('server out of sync')


Thanks,

Luca

-- 
Luca Lianas
Data Fusion - Healthcare Flows
CRS4 - Centro di Ricerche, Sviluppo e Studi Superiori della Sardegna
POLARIS, Edificio 1, 09010 PULA (CA - Italy)


Phone: 070/9250266
Email: luca.lianas at crs4.it
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openmicroscopy.org.uk/pipermail/ome-devel/attachments/20120926/a5d49745/attachment.html>


More information about the ome-devel mailing list