Concurrent Query Execution
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. -- Regards Happy
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.
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.
-- 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.
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.
-- Regards Happy
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
-- Regards Happy Somani
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 -- Jens Erat [phone]: tel:+49-151-56961126 [mail]: mailto:email@jenserat.de [jabber]: xmpp:jabber@jenserat.de [web]: http://www.jenserat.de PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B Am 10.01.2013 um 19:49 schrieb happy somani <happysomani@gmail.com>:
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.
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.
-- Regards Happy
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
-- Regards Happy Somani _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
participants (3)
-
Christian Grün -
happy somani -
Jens Erat