On 9 Jan 2019, at 20:39, Christian Grün wrote:
Please check the log entries..there are only HEAD/PROFIND/GET requests on the WebDAV level against a single XML resource.
I just created a collection with 120,000 documents. The time for retrieving a single resource was about 100 ms; but it took much longer indeed to request entries of the root directory. I’ll see if I can so something about this.
In general, you’ll definitely get better performance when using one of our other APIs.
See my first mail…also requests to other arbitrary documents are slow (in the range of course 700ms and higher). And there is only one test db involved here. We did not choose a vendor specific API because we want to have data portability and a unified API. By doing this we were able to move from eXist to Marklogic to BaseX to Filesystem storage without changing the access layer of our applications. Only a few specific scripts for querying the database had to be adjusted.
eXist basically serves only one database per database server instance.
But how is eXist relevant here?
It my be relevant because both eXist-db and BaseX are based on the same Milton library (but maybe a different version?). I experienced bottlenecks with this library in the past, so we once thought about writing our own WebDAV library (because the protocol is using XML anyway. It’s interesting to hear that you are getting better performance with eXist. One reason might be that eXist keeps an index of all files of the chosen database in main-memory while BaseX needs to scan the corresponding database every time it is accessed.
If you are only working with a single database, you can try to open this database at startup time:
basexhhtp -c "open your-db"
However, I will check our WebDAV implementation and give you some more feedback.