OCR-D / ocrd-webapi-implementation

4 stars 0 forks source link

mets/workspace synchronization #16

Open joschrew opened 1 year ago

joschrew commented 1 year ago

with the processing broker / processing servers a workspace is accessed by different processors possibly at the same time. Some mechanism is necessary to synchronize the mets modification. Further discussion is needed on how to solve this problem. Options could be the mets-server or some kind of lock-mechanism on the metsfile. I created this issue according to what robert mentioned at the open techcall.

kba commented 1 year ago

I think solution should be the METS server, which does not require file locking since all file access happens through the server. You would start it for a specific workspace:

ocrd workspace mets-server start --port 12345 --host localhost --mets-file /path/to/workspace/mets.xml

The METS server should implement the same behavior as the OcrdMets class and offer the same Python interface for clients, so processors don't need to know wheter they are running with a file- or server-based OcrdMets.

Then you can run the processors with a reference to the METS server:

ocrd-process-stuff -m https://localhost:12345
ocrd-process-other-stuff -m https://localhost:12345