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