Victor Duchovni:
> On Mon, Jun 08, 2009 at 04:23:57PM -0400, Wietse Venema wrote:
> 
> > Victor Duchovni:
> > > On Mon, Jun 08, 2009 at 03:15:22PM -0400, Wietse Venema wrote:
> > > 
> > > > > Mind you, the expected number of transports for a message is I think
> > > > > reasonably small. 
> > > > 
> > > > I see one hash table that is indexed by the queue ID, so this
> > > > would involve one hash-table lookup per transport:
> > > 
> > > Not sure what "this" is referring to above.
> > 
> > To avoid opening the same queue file more than once. That requires
> > a hash lookup by queue file name. I could use the same hash that
> > I was contemplating for an experiment where I elimimate the need
> > for the on-disk active queue. That would shave off one rename
> > operation, or two directory updates and three inode updates.
> 
> Ah, yes, if we want to skip "hot" files already in the active queue,
> we could loop over the transports looking for match, as the message
> will already be in one of the hashes.
> 
> I am a bit concerned about traversing every transport hash table for
> each new message, is this cheap enough?

I wasn't thinking of multiple hash table lookups.

> We could instead avoid the problematic per-transport queue-id->job hashes,
> and allow "nqmgr" to tolerate multiple instances of the queue file,
> just like "oqmgr".

And knowingly write code that can deliver mail twice?

        Wietse

Reply via email to