[ome-devel] Synchronize Omero with an external DB

Josh Moore josh at glencoesoftware.com
Fri Sep 28 11:50:44 BST 2012


On Sep 26, 2012, at 11:22 AM, Luca Lianas wrote:

> Hi everyone,

Ciao Luca,

> 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')

This is how both the PixelData [1] and the Indexer [2] process work. They check if they've already handled a particular EventLog and then go about their business.

Cheers,
~Josh.

[1] https://github.com/openmicroscopy/openmicroscopy/blob/develop/components/server/src/ome/services/pixeldata/PersistentEventLogLoader.java
[2] https://github.com/openmicroscopy/openmicroscopy/blob/develop/components/server/src/ome/services/fulltext/PersistentEventLogLoader.java


> 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


More information about the ome-devel mailing list