I've just checked in some changes to the low level filing stuff so that Paged files (BTreeFiler, HashFiler, NameIndexer, ValueIndexer) support multiple descriptors and safe concurrent access. Previously, all high-level calls were synchronized, so only one thread could have access to the underlying file at any one time, which was very safe, but presented a serious performance bottleneck.

I've tested this with 50 threads randomly reading and writing values to the same collection, and haven't run into any problems. Let me know if any problems creep up.

--
Tom Bradford - http://www.tbradford.org
Architect - XQRL (XQuery Engine) - http://www.xqrl.com
Apache Xindice (XML Database) - http://xml.apache.org/xindice
Labrador (Web Services Hub) - http://www.notdotnet.org/labrador



Reply via email to