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

Reply via email to