Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: exim: dev

parsing costs of acl config

 

 

exim dev RSS feed   Index | Next | Previous | View Threaded


jgh at wizmail

Jul 7, 2013, 8:11 AM

Post #1 of 4 (84 views)
Permalink
parsing costs of acl config

This came up in the context of Axel Rau's facility for database-logging
but is a more general problem.

Currently the config-reader skips over the ACL section when "not
receiving a message". I'm not sure what sub-processes this covers
but assume it's for the routers. For the ${acl } expansion to work
obviously the ACL config section must be parsed, in the context of
the expansion.

Does anyone know if the saving of parse time is significant?
I could put in a lazy evaluation if needed, or merely remove
the current "skip".
--
Thanks,
Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##


pdp at exim

Jul 8, 2013, 4:01 PM

Post #2 of 4 (75 views)
Permalink
Re: parsing costs of acl config [In reply to]

On 2013-07-07 at 16:11 +0100, Jeremy Harris wrote:
> Does anyone know if the saving of parse time is significant?

Changing it will impact all the deliveries and re-exec there. Frankly,
given that the file will be permanently in buffer-cache on any
mail-server (and if not, performance isn't an issue) and all that
happens is parsing into in-memory structures, I'd be surprised if it's
that significant.

> I could put in a lazy evaluation if needed, or merely remove
> the current "skip".

In an ideal world, the "skip" would set some offset pointers to enable
later re-reading, then skip as normal, and ${acl} expansion would detect
those being set and determine that the ACL section then needs to be
ready. If that's the implementation you're thinking of for "lazy
evaluation", then yes.

In practice: your work, your call, benchmarking would be good but not
entirely practical for most of us at this point.

Todd is working on some Vagrant stuff that might change that and make it
easier to benchmark?

-Phil

--
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##


jgh at wizmail

Jul 9, 2013, 3:03 AM

Post #3 of 4 (75 views)
Permalink
Re: parsing costs of acl config [In reply to]

On 07/09/2013 12:01 AM, Phil Pennock wrote:
> In an ideal world, the "skip" would set some offset pointers to enable
> later re-reading, then skip as normal, and ${acl} expansion would detect
> those being set and determine that the ACL section then needs to be
> ready. If that's the implementation you're thinking of for "lazy
> evaluation", then yes.

Pretty much, complexified by file-inclusions though.
--
Cheers,
Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##


jgh at wizmail

Jul 9, 2013, 7:58 AM

Post #4 of 4 (74 views)
Permalink
Re: parsing costs of acl config [In reply to]

On 07/09/2013 12:01 AM, MPhil Pennock wrote:
> benchmarking would be good but not
> entirely practical for most of us at this point.

A very brief test on a mostly-idle server (on a virt
on shared hardware) gives:

best "skip" time: 0.052 s
best "parse" time: 0.054 s

The config has 4800 lines, including blanks,
in the ACL section (I'd call this "large").
--
Cheers,
Jeremy



--
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##

exim dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.