Hey Guys,
I was trying a scenario out today and wanted to see if I could query two different databases in parallel. I tried out using the code attached and found that while one of the program was trying to write data to a database the other program waits for the write to the database to finish before it could read data from a database. I am attaching the code in this email and here are the steps that you would need to take to reproduce this issue.
1. Run the UploadFileTest class. (This class is trying to create a db using a large xml file) 2. Run the GetData class (This class is trying to read from a small database called sam. The sam database is being created in this program).
I would appreciate if somebody could help me in setting up this concurrent query execution framework or if I have been doing something in the wrong way. Thanks.
Hi Happy,
I didn’t have time to check out your example (just a warning: we received several mail provider warning because of your large attachments..), but it may be worth to have a look at our Wiki page on transaction management [1], which refers to our current locking mechanism (multiple readers, single writer).
However, we (i.e. our team member Jens) has recently been working on a more fine granular locking (database-wise), and the documentation is supposed to capture that pretty soon. In a nutshell: in the .basex configuration file [2], you can switch the DBLOCKING flag to true in order to deactivate process locking and turn on database-wise locking. If everything works out as planned, the first version of database-wise locking will be part of our next release due to XMLPrague.
Christian
[1] http://docs.basex.org/wiki/Transaction_Management [2] http://docs.basex.org/wiki/Configuration ___________________________
On Fri, Jan 4, 2013 at 7:04 PM, happy somani happysomani@gmail.com wrote:
Hey Guys,
I was trying a scenario out today and wanted to see if I could query two different databases in parallel. I tried out using the code attached and found that while one of the program was trying to write data to a database the other program waits for the write to the database to finish before it could read data from a database. I am attaching the code in this email and here are the steps that you would need to take to reproduce this issue.
- Run the UploadFileTest class. (This class is trying to create a db
using a large xml file) 2. Run the GetData class (This class is trying to read from a small database called sam. The sam database is being created in this program).
I would appreciate if somebody could help me in setting up this concurrent query execution framework or if I have been doing something in the wrong way. Thanks.
-- Regards Happy
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Hey Christian,
I tried out the latest build of BaseX and tried both the values for the DBLOCKING configuration parameter, but I did not see any change in the behavior of the program that I had attached earlier. Can you point me to a sample example that demonstrates the usage of the DBLOCKING configuration parameter. Or is there something else that I should be doing so that I am able to update and read data from two different databases simultaneously?
Thanks
On Sat, Jan 5, 2013 at 1:46 AM, Christian Grün christian.gruen@gmail.com wrote:
Hi Happy,
I didn’t have time to check out your example (just a warning: we received several mail provider warning because of your large attachments..), but it may be worth to have a look at our Wiki page on transaction management [1], which refers to our current locking mechanism (multiple readers, single writer).
However, we (i.e. our team member Jens) has recently been working on a more fine granular locking (database-wise), and the documentation is supposed to capture that pretty soon. In a nutshell: in the .basex configuration file [2], you can switch the DBLOCKING flag to true in order to deactivate process locking and turn on database-wise locking. If everything works out as planned, the first version of database-wise locking will be part of our next release due to XMLPrague.
Christian
[1] http://docs.basex.org/wiki/Transaction_Management [2] http://docs.basex.org/wiki/Configuration ___________________________
On Fri, Jan 4, 2013 at 7:04 PM, happy somani happysomani@gmail.com wrote:
Hey Guys,
I was trying a scenario out today and wanted to see if I could query two different databases in parallel. I tried out using the code attached and found that while one of the program was trying to write data to a database the other program waits for the write to the database to finish before it could read data from a database. I am attaching the code in this email and here are the steps that you would need to take to reproduce this issue.
- Run the UploadFileTest class. (This class is trying to create a db
using a large xml file) 2. Run the GetData class (This class is trying to read from a small database called sam. The sam database is being created in this program).
I would appreciate if somebody could help me in setting up this concurrent query execution framework or if I have been doing something in the wrong way. Thanks.
-- Regards Happy
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Hi Happy,
Database locking is in active development, but expect some pre-release information on how to use it and current limits this weekend. We're still cleaning up some stuff and have to do some documentation.
Regards, Jens
basex-talk@mailman.uni-konstanz.de