Hi,
We are building a solution that is actually using baseX, you can get a brief description there : http://launch.mysimplegrid.com/ The prototype works ok today for a few users. It is basically a spreadsheet UI storing its data in BaseX using the PHP library.
Our question today is about this database use. For each spreadsheet we create a database in basex which means if we have a thousand users with 20 spreadsheets each, it makes a total of 20 thousand database in basex. where each one is access by one or a few users (not simulteanously). Would it be better to create just one database containing all the spreadsheets but access by the 1000 users?
I'm looking for some information about concurrent performance and the utility of having multiple database or just one database for all?
The other option would be to store just xml as text in mysql but It's really handy to work with basex and it allows us to update single nodes when to do that with mysql I would have to save the whole xml everytime.
Hello Yoann,
In my opinion it is the best option to use multiple databases, as you already do. Please note, that databases are a very lightweight construct in BaseX, so there is not much overhead here. The benefit of using multiple database is especially prominent during updating: Locks are hold per database. So if you would have just one single big database, there would be a lock blocking each read/write operation until the write operation is finished, even if just a single spreadsheet is updated.
You can find some bits of information about this issue in [1].
Working with MySQL in the way you describe would certainly be very slow. I don't know that much about MySQL, but as far as I remember it is not really XML-enabled, so basically your xml would simple be stored as blob. In BaseX, of course, your data is stored in a much more efficient way so that you can access your data much faster. Of course there are also other traditional SQL databases like Oracle and DB2, which also support xml as a data type and then also optimize the storage. This certainly is an option, but if you want to use the full power of XPath/XQuery 3.0 you are most likely better off with a native XML database as BaseX.
Cheers, Dirk
[1] http://docs.basex.org/wiki/Transaction_Management
On Thu, Aug 16, 2012 at 2:07 PM, Yoann Maingon <yoann.maingon@mydatalinx.com
wrote:
Hi,
We are building a solution that is actually using baseX, you can get a brief description there : http://launch.mysimplegrid.com/ The prototype works ok today for a few users. It is basically a spreadsheet UI storing its data in BaseX using the PHP library.
Our question today is about this database use. For each spreadsheet we create a database in basex which means if we have a thousand users with 20 spreadsheets each, it makes a total of 20 thousand database in basex. where each one is access by one or a few users (not simulteanously). Would it be better to create just one database containing all the spreadsheets but access by the 1000 users?
I'm looking for some information about concurrent performance and the utility of having multiple database or just one database for all?
The other option would be to store just xml as text in mysql but It's really handy to work with basex and it allows us to update single nodes when to do that with mysql I would have to save the whole xml everytime.
-- Yoann Maingon mydatalinx 0664324966
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