In message <e1781bcc862e47809a0a8d87e18af...@wsp5042a.baltic.seb.net>,
Risto Vaarandi writes:

>I am currently working on the 2.7.7 version, and a recent e-mail
>exchange with one of the users has inspired me to think about
>changing default values for --bufsize and --jointbuf/--nojointbuf
>options.
> [...]
>Nevertheless, when bufsize=1 would be default, some of the code for
>the single-line case could be factored out and written more
>efficiently, which would allow for some performance gains for
>single-line scenario. The downside of changing the default from
>bufsize=10 to bufsize=1 would be the need to set --bufsize explicitly
>on command line, in order to make pattern types like RegExp3,
>NRegExp2, and PerlFunc5 to work. So far, there has been rarely a need
>for this, since --bufsize=10 has been sufficient for most of the
>cases.
>[...]
>Also, currently SEC assumes --jointbuf option by default which means
>that in the case of multi-line matching all events are stored into
>the same input buffer. Nevertheless, in this case --nojointbuf would
>make more sense, since that creates a separate buffer for each input
>source, allowing multiline patterns to work on data from one source
>only. Since with bufsize=1 there is no difference between --jointbuf
>and --nojointbuf, the --nojointbuf option would be a more reasonable
>default.

I think this makes sense. What I suggest is:

if --buffsize > N and any RegExpN, PerlFuncN ... multiline match rules
are defined, SEC should throw an error ("Use --bufsize=N on command
line, currentl setting is too small to allow this rule to work").Then
SEC should exit. I would conssider that a fatal error. This is a
little different from how SEC currently handles invalid rules, but I
think this change would warrant SEC exiting.

If bufsize > 1 then --nojointbuf becomes the default (it might as well
be the default for size=1 as well, but it's effectively a noop in that
case so it doesn't matter). I have never had multiline matches with
multiple inputs work reliably. There was always a race condition.  I
have always used nojointbuf with multiple input streams and multiline
match rules.

So I think those are both good ideas. One thing I will note is that a
project I am working on supplies events in a multiline json data
structure, so making sure that the refactoring doesn't make multiline
process/matching worse is critical to me.

--
                                -- rouilj
John Rouillard
===========================================================================
My employers don't acknowledge my existence much less my opinions.

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Simple-evcorr-users mailing list
Simple-evcorr-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users

Reply via email to