An update

a) and b) are more or less completed. I now shifted my approach a bit. I
think I need to concentrate on the output plugin interface *before* I look at
queue termination. The reason is that there is a very intimate relationship
between the two. The rsyslog interface API dictates part of the termination
process, but proper termination also dictates some of the interface details.

So to design and implement that, I'll be going down the full stack and then
up again. That means 

a) add basic batching support to queue object
b) create new batching output module interface
c) add transactional behavior to queue shutdown and error conditions

I have now arrived at step b). Today, I will need to think hard about the
overall picture, but also about the plugin interface (plus do a couple of
not-so-fun things ;)). So if you have any suggestions/opinions on the
interface, please let me know. I will also see that I can extend the
testbench, so that we can check the more complex conditions (this task is far
more complex than it sounds, a lot of timing conditions are involved).

Please also note that the multi-dequeue git branch now should work rather
well (except, of course, when terminating the queue). The tcp input's
performance has also enhanced. It would be very useful if someone could look
at the new engine's speedup. It should be considerable. I expect that most of
the potential speedup for non-database outputs is already gained in this
version. Further speedup for e.g. the file writer or tcp forwarding output
should be really marginal compared to what we gained with this step. So it is
vital to confirm if it is well enough and within our expectations. I have not
yet done performance tests, because they take a lot of time and I prefer not
to be "disturbed" by such longer activity while I still work on the overall
picture (even though I implement in parallel, think of this as proof of
concept tasks - from my POV, I am looking at a very high level at the code
and dig down only occasionally - longer testing task interrupt that process).

Thanks, 
Rainer

> -----Original Message-----
> From: [email protected] [mailto:rsyslog-
> [email protected]] On Behalf Of Rainer Gerhards
> Sent: Wednesday, April 22, 2009 5:42 PM
> To: rsyslog-users
> Subject: Re: [rsyslog] multi-dequeue git branch
> 
> Oh, and I forgot to mention: it dequeues in batches, but the output
> plugin
> interface is unchanged. So we do not yet have the ability to add
> batching to
> the outputs. That's a totally different story, and I'll look at
> implementation when we have done basic verification that the queue
> works (or
> earlier, as needs require ;)).
> 
> Rainer
> 
> > -----Original Message-----
> > From: [email protected] [mailto:rsyslog-
> > [email protected]] On Behalf Of Rainer Gerhards
> > Sent: Wednesday, April 22, 2009 5:40 PM
> > To: rsyslog-users
> > Subject: [rsyslog] multi-dequeue git branch
> >
> > Hi all,
> >
> > I spent today on reviewing code and implementing a design approach
> that
> > I
> > worked on the past days. Good thinking seems to pay well, and so I
> > ended up
> > with a version that should have performance benefits over the
> previous
> > versions. Actually, I hope that the performance is much better, even
> > though
> > the version currently dequeues in batches of 8 (soon to be
> > configurable). If
> > someone would like to give it a try, please use the "multi-dequeue"
> git
> > branch. I will be actively working on it.
> >
> > The current version is a proof of concept. It does NOT work fully
> > correct.
> > Most importantly, queue termination is not properly handled, nor are
> > error
> > conditions. If you use this version, you will probably lose message
> on
> > HUP,
> > shutdown and when something goes wrong. I have also not yet done any
> > performance testing myself.
> >
> > My planned next steps are
> >
> > a) extend the test bench to ensure that DA-mode works properly
> > b) add config statements
> > c) work on either the termination conditions or a new output plugin
> > interface
> >
> > Especially c) will require lots of additional doc work, so there will
> > hopefully some additional reading for you. I would also like to
> mention
> > that
> > feedback in the current phase is very valuable. Most importantly,
> once
> > I have
> > finalized the new algorithms, it will probably very hard to convince
> me
> > to
> > change anything for the next couple of month. So if you are
> interested
> > in
> > performance and the output plugin interface, it would be useful to
> keep
> > an
> > eye on the list and provide comments where appropriate ;)
> >
> > Thanks,
> > Rainer
> > _______________________________________________
> > rsyslog mailing list
> > http://lists.adiscon.net/mailman/listinfo/rsyslog
> > http://www.rsyslog.com
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to