Hi Borut,
I may try running it in debugger this week or early next week (during ApacheCon, when I have a bit of spare time).
For now can you explain how do you know that batching didn't work? Was there an exception? Was a a difference in performance, etc?
IIRC the only difference in Cayenne logging output between batch and no-batch mode is "bind" vs. "batch bind" String for parameters. Is this what you are referring to?
Andrus
On Oct 27, 2010, at 12:00 PM, Borut Bolčina wrote:
> Hello,
>
> in another thred Andrus suggested to have a look at current support for
> MySQL batching.
>
> According to:
>
> - http://bbish.net/htmls/mysql/news.html (Changes in MySQL Connector/J
> 5.1.3)
> - http://www.jroller.com/mmatthews/entry/speeding_up_batch_inserts_for(bug
> corrected in connectorJ 5.1.8)
>
> the batching is supported.
>
> I added
> rewriteBatchedStatements=true
>
> to conection string and in the modeller I set the
> Custom Adapter to org.apache.cayenne.dba.mysql.MySQLAdapter
>
> and in the code I initialized the adapter with
> DataDomain dataChannel = (DataDomain) dataContext.getChannel();
> DataNode dataNode = dataChannel.getNode("MapsNode");
> MySQLAdapter mySQLAdapter = (MySQLAdapter) dataNode.getAdapter();
> mySQLAdapter.setSupportsBatchUpdates(true);
>
> Then I tried different scenarios: datacontext.commit() on every 100 changed
> objects and commit after all (4000) objects were added to a datacontext.
>
> I was running my test with connectorJ 5.1.12 and sadly the batch insert does
> not work. I was watching the MySQL server's general query log for definite
> confirmation what the database is getting from the driver.
>
> Maybe there is something else to set-up? I really wish this would work, as
> performance gains are enormous.
>
> Cheers,
> Borut
This archive was generated by hypermail 2.0.0 : Wed Oct 27 2010 - 10:13:36 UTC