[openstack-dev] [Ceilometer][Oslo] Consuming Notifications in Batches

Jay Pipes jaypipes at gmail.com
Sat Dec 21 21:12:11 UTC 2013


On 12/21/2013 04:51 AM, Boris Pavlovic wrote:
> Jay,
>
> The session object will be commit()'d after the session.begin() context
> manager exits, which will cause the aforementioned BEGIN; INSERT;
> COMMIT; transaction to be executed against the server for each event record.
>
> It is a just half of problem. We should use SQL Bulk Inserts as well.
> And we should mention that declarative_base won't make this work for us
> transparent. (Even if we make all in one transactions there will be N
> Inserts).

Well, the performance benefit will show up if there is a single 
transaction with multiple INSERT statements in it. The slowdown in 
performance is due to the multiple COMMITs, which each typically cause 
an fsync() (or fdatasync()), which is the slow part of the operation. 
Having a transaction containing thousands of INSERT statements with one 
COMMIT is much better performing since there is only a single call to 
fsync() the log records.

Not quite sure what you mean about the declarative_base not working for 
this. Would you mind elaborating a bit more?

Thanks!
-jay




More information about the OpenStack-dev mailing list