[fcrepo-dev] RE : Ingest performances

2012-11-06 Thread Nicolas Hervé
Hi, I think I've found the main problem with massive parallel ingestion. I'm working with the last github snapshot. In org.fcrepo.server.storage.DefaultDOManager, the getIngestWriter method should not be synchronized as it seems there is only a single instance of that class for the server.

Re: [fcrepo-dev] RE : Ingest performances

2012-11-06 Thread Benjamin Armintor
If I recall correctly, that method is synchronized so that a document factory can be reused. We might be able to remove the synchronization if we use the Templates class, I'll look into it. It is important to note that having a single manager object increases the importance of guaranteeing thread

Re: [fcrepo-dev] RE : Ingest performances

2012-11-06 Thread Scott Prater
Nicolas, That's very encouraging... this problem has been on my radar for years. Not being very familiar with the details of the internals of DefaultDOManager, I can't comment concretely on the merits of your patch, but I would be especially interested in tests that provoke race conditions and

Re: [fcrepo-dev] RE : Ingest performances

2012-11-06 Thread Jesper Damkjaer
It might be possible to simply just move the call to pidLock.getWriteLock() up before the call to objectExists(). Then the first thread will get the lock and the second thread will be rejected. Even if the first thread have released the writelock, then it will have registered the object and the