Hi,
Our online help offers a form to collect comments from end-users. We have a lot of users and when a new product hits the market, we get a lot of feedback.
We have found that BaseX is unable to handle so many write operations.
Is there a suggested setup/configuration to handle multiple write operations coming from http requests. Is it possible to queue them somehow? Or is it better to use a more traditional approach to feedback collection? I.e. use a different toolset?
Right now, BaseX just goes blank (freeze) with all the feedback coming in.
Expectations: Average 5 comments/minute, but bursts of 2 per second should not break anything. Dropping comments during bursts is acceptable to us for our current business case because we hope to identify the most important issues after a new product release/software upgrade. Major issues should come up often enough.
Any suggestion would be appreciated.
Hi France,
We have found that BaseX is unable to handle so many write operations. […] Expectations: Average 5 comments/minute, but bursts of 2 per second should not break anything.
It’s not possible to give a general limit of write operations per second in BaseX. In a little performance tests some time ago, we have inserted 300 tweets per second into a BaseX database over several hours [1], so 5 comments per minute doesn’t sound like a big deal.
Is there a suggested setup/configuration to handle multiple write operations coming from http requests. Is it possible to queue them somehow? Or is it better to use a more traditional approach to feedback collection? I.e. use a different toolset?
If the query does not allow parallel execution, the requests will be executed one after another, as all operations will automatically be queued by the server’s transaction management [2]. If you have distinct data sets you write to and read from, it could be helpful to store read and updated data in different databases.
If we encounter bottlenecks, we usually look first if the responsible queries can be optimized, so I may ask some questions in return: How do you insert data in BaseX? Do you use WebDAV, XQuery Udpate, or the updating functions of our XQuery Database Module? Did you already have a look a the compiler’s optimization output in the GUI’s InfoView or the -V command-line output, and did you profile/measure the execution time of single queries?
Christian
[1] http://docs.basex.org/wiki/Twitter [2] http://docs.basex.org/wiki/Transaction_Management ___________________________
On Thu, Nov 7, 2013 at 1:17 AM, France Baril france.baril@architextus.com wrote:
Hi,
Our online help offers a form to collect comments from end-users. We have a lot of users and when a new product hits the market, we get a lot of feedback.
We have found that BaseX is unable to handle so many write operations.
Is there a suggested setup/configuration to handle multiple write operations coming from http requests. Is it possible to queue them somehow? Or is it better to use a more traditional approach to feedback collection? I.e. use a different toolset?
Right now, BaseX just goes blank (freeze) with all the feedback coming in.
Expectations: Average 5 comments/minute, but bursts of 2 per second should not break anything. Dropping comments during bursts is acceptable to us for our current business case because we hope to identify the most important issues after a new product release/software upgrade. Major issues should come up often enough.
Any suggestion would be appreciated.
-- France Baril Architecte documentaire / Documentation architect france.baril@architextus.com (514) 572-0341
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
basex-talk@mailman.uni-konstanz.de