On Wed, Apr 1, 2009 at 12:02 PM, Luis Fernando Muñoz Mejías
<[email protected]> wrote:

> It works, but it's way too slow for my needs. As I said when I started
> this project, I need to be very fast, to prepare the statement at
> connection time, run it many times, and definitely want batch
> operations. Say, I want to insert 1000 entries with a single call to the
> Oracle interface, then commit.

..

> which is the statement to prepare by Oracle. This way, I can prepare the
> statement at createInstance() time. Then, I can specify the batch size
> with something like
>
> $OmoracleBatchSize 1000

Another thing you might want to think about is the idea of using a
callback timer, as was outlined for another prospective feature
implementation here:  http://www.rsyslog.com/Article334.phtml

The general idea being, while having a batch size is important, if you
don't have some functional timer callback to the output module, you
will end up in the situation of not flushing regularly.  On
lower-traffic outputs, this would reduce the risk of losing a lot of
data.  So you could have two different mechanisms:

- A high-watermark batch commit
- A timed commit in the case that high-watermarks aren't met in a
certain time period.

That way you could commit every.. say, 60 seconds, in the case you
haven't hit your high watermark.

Just some food for thought.

-Aaron
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to