Dear Anton,
Performance. How it feels on large databases, about 50-100
millions of nodes? Does performance degrades significally? What is the maximum number of nodes that BaseX have been tested with?
it’s difficult, if not impossible, to make general testimonies reg. performance, as XQuery, which is mostly used to access the database, is a full-blown programming language. Two articles in our documentation may give you some hints what can be done with BaseX:
http://docs.basex.org/wiki/Statistics http://docs.basex.org/wiki/Twitter
If your data exceeds the limit of 2^31 nodes, a popular approach is to distribute it into multiple databases, which can all be accessed by a single XQuery.
Streamable queries. We will need to send large datasets to client
including the whole database. Does BaseX provides a streamable queries without caching whole resultset nowhere in memory (something like server cursors in RDBMS)?
There are numerous (maybe even too many) ways to communicate with BaseX. If you use the Java client API, for example, you can pass on an output stream to the execute() function [1]. If you query data via the REST interface [2], data will also be executed in an iterative manner and directly streamed to the client.
Failover. Our clients strongly require failover mode. I saw that
at the moment BaseX does not support clustering and replication but it can be done at OS level using distributed file systems like Ceph or ClusterFS. Can we have two o more BaseX instances connected to the same shared storage?
As you already found out, this is still work in progress (see e.g. our talk on distribution at [3]). I remember that users have done experiments on distributing data with BaseX; you may find some helpful information on our mailing list [4].
What transaction isolation levels BaseX supports? Do BaseX
transactions support JTA architecture?
Our Wiki articles on transaction management [5] and the semantics of XQuery Update [6] may answer some of your questions.
Let’s hope this helps, Christian
[1] https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/base... [2] http://docs.basex.org/wiki/REST [3] http://files.basex.org/xmlprague2013/ [4] http://www.mail-archive.com/basex-talk@mailman.uni-konstanz.de/ [5] http://docs.basex.org/wiki/Transaction_Management [6] http://docs.basex.org/wiki/XQuery_Update#Concepts