WARNING: This server is unstable and will be retired in the next days. If you want to keep this forum available, please request immediately a migration on the Nabble Support forum. Forums that don't receive any migration request will be deleted forever.

 « Return to Thread: "Multiple BTM with multiple jdbc datastores" + "jdbc prepareStatements"

"Multiple BTM with multiple jdbc datastores" + "jdbc prepareStatements"

by Fazool :: Rate this Message:

| View in Thread

Hi,

I am using BTM for prototyping a shared nothing database; where a transaction can touch multiple databases so I need two-phase commit. I will appreciate if you can answer the following:

1) As per documentation, I can use multiple BTM with a single datastore. I want to use multiple BTMs (running on different machines) for multiple jdbc datastores, where a transaction can update rows on different datastores. According to my experiments, we cannot have 'Seriablizable' isolation level in this context. Is this correct?

2) I am using prepareStatements in jdbc. As I see, I have to 'prepare' a prepareStatement everytime I want to run a query. For example:

   btm.begin()
   PrepareStatement p = con.prepareStatement("...");
   p.setInt(1,1);
   ...
   p.executeUpdate();
   btm.commit();

Creating a statement everytime I want to run a transaction has performance penalties. I am unable to do something like:

   PrepareStatement p = con.prepareStatement("...");

   btm.begin()
   p.setInt(1,1);
   p.executeUpdate();
   btm.commit();

   btm.begin()
   p.setInt(1,2);
   p.executeUpdate();
   btm.commit();

i.e. use the same prepare statement multiple times. Is setting a high value of PreparedStatementCacheSize going to improve efficiency of "con.prepareStatement("...");" within a btm.begin()/end()? I ran some basic experiments, and PreparedStatementCacheSize didnt help much. Can you kindly comment on how to make this efficient?

Thank you very much!

 « Return to Thread: "Multiple BTM with multiple jdbc datastores" + "jdbc prepareStatements"