From: Wolfgang M. M. <wol...@us...> - 2004-08-16 19:53:55
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19982/src/org/exist/xmldb Modified Files: LocalCollection.java LocalIndexQueryService.java Log Message: Removed the cache sync events that had been triggered by every database file independantly. Instead, the global BrokerPool will now trigger all sync events (through the SyncDaemon background thread). It distinguishes between minor and major syncs. Major syncs write all caches to disk, minor syncs only write the main document store (dom.dbx + collections.dbx). Minor syncs occur every 2 seconds, major syncs after a configurable period of time. As BrokerPool controls all sync events, it is guaranteed that only one cache is written at the same time. This has a positive effect on indexing performance. Index: LocalCollection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/LocalCollection.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** LocalCollection.java 9 Aug 2004 10:24:31 -0000 1.41 --- LocalCollection.java 16 Aug 2004 19:53:47 -0000 1.42 *************** *** 49,52 **** --- 49,53 ---- import org.exist.storage.DBBroker; import org.exist.storage.serializers.EXistOutputKeys; + import org.exist.storage.sync.Sync; import org.exist.util.Lock; import org.exist.util.LockException; *************** *** 204,208 **** try { broker = brokerPool.get(user); ! broker.sync(); } catch (EXistException e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e.getMessage(), e); --- 205,209 ---- try { broker = brokerPool.get(user); ! broker.sync(Sync.MAJOR_SYNC); } catch (EXistException e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e.getMessage(), e); Index: LocalIndexQueryService.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/LocalIndexQueryService.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** LocalIndexQueryService.java 8 Jun 2004 08:16:08 -0000 1.8 --- LocalIndexQueryService.java 16 Aug 2004 19:53:47 -0000 1.9 *************** *** 27,30 **** --- 27,31 ---- import org.exist.storage.BrokerPool; import org.exist.storage.DBBroker; + import org.exist.storage.sync.Sync; import org.exist.util.Occurrences; import org.xmldb.api.base.Collection; *************** *** 56,60 **** broker = pool.get(user); broker.reindex(parent.getCollection().getName()); ! broker.sync(); } catch (PermissionDeniedException e) { throw new XMLDBException(ErrorCodes.PERMISSION_DENIED, e.getMessage(), e); --- 57,61 ---- broker = pool.get(user); broker.reindex(parent.getCollection().getName()); ! broker.sync(Sync.MAJOR_SYNC); } catch (PermissionDeniedException e) { throw new XMLDBException(ErrorCodes.PERMISSION_DENIED, e.getMessage(), e); *************** *** 77,81 **** broker = pool.get(user); broker.reindex(path); ! broker.sync(); } catch (PermissionDeniedException e) { throw new XMLDBException(ErrorCodes.PERMISSION_DENIED, e.getMessage(), e); --- 78,82 ---- broker = pool.get(user); broker.reindex(path); ! broker.sync(Sync.MAJOR_SYNC); } catch (PermissionDeniedException e) { throw new XMLDBException(ErrorCodes.PERMISSION_DENIED, e.getMessage(), e); |