Re: [binc] program HOOKS - feature request?
"Kenneth Lyons" <[email protected]> Fri, 29 Jul 2005 10:10:06 -0400
| Newsgroups | gmane.mail.imap.binc.general |
|---|---|
| Message-ID | <[email protected]> |
>I still don't see why you want to put this type of "space compressing" >in the IMAP layer rather then to put it in the maildrop layer where it >would do the most good. The maildrop is the one doing the symlink and managing email ID's. Binc just acts like a normal IMAPD reading a NFS mounted Maildir.. BUT I just wanted Binc to have a text filter when it opens each email from the Maildir. -- This is just a feature request... for the filter. %%full_name%% %%company%% tags are unlikely to change, so to the end client they won't see a message that appears different everytime they download it. >Having the MDA sorting out if the recent 100 droped mails could be the >same and then moving it to a shared location and linking it into the >users Maildir seems to me to be the effect you want. Yes it is. And the MDA does it. >Having the space compressed right away insteed of the MDA duplicating the >mails and >waiting for binc to HOOKS it right and _then_ compressing. >That would mean that the 10MB mail gets duplicated 100 times until the >users checks its INBOX. Binc has nothing to do with the Symlink system other than CAT (reading) the symlink file. >Again, this should be done directly by the MDA. It is. > If performance and reliability is important, then you must remove the NFS > mount and store the emails physically on disk. NFS is unreliable in its > very nature, as there is no guarantee that emails are committed to disk. The NFS is 99% ONE-WAY [read], the MDA uses sockets to store the messages on the NFS server. Binc would only WRITE to the NFS when a person checks their email (to uncheck it) or moves a message. http://www.time-travellers.org/shane/papers/NFS_considered_harmful.html I don't think caching would be a big issue, as the client is reading their email from which-ever IMAPD server they connected to. [caching could be turned off also, to ensure no latency] > If you store emails on an NFS mount and your machines crash, then email > data will certainly be lost Depends when it crashed and what it was doing. If it was unchecking an email then the user would see it as unread still (minor), if it was moving a message then as long as the headers were written to the NFS then the symlink system can recover. [Clients create a new file and copy the contents of the EMAIL in the new folder when a message is moved.] A cron job on the NFS scans for files that are NOT symlinks... reads the ID in the headers, deletes the email, and makes a symlink. The client would notice that an email was deleted and that a new email (marked as read or unread) now exists and would download it. I've moved files back and forth in on a shell to controll spam and never had trouble with deleting or moving maildir files. The imap client just updates it's email list and downloads/deletes messages as they exist in the FS. >. Also performancewise, NFS is a killer. The load on your system will be >much higher than with a physical volume. Thats expected. Though the Gigabit network should have enough bandwidth. There are OTHER alternatives to NFS, like SHFS and Unless we put 3 TB of space on EVERY imap server and use Rsync, I don't see an alternative. -- NFS is pretty widely used in the hosting world. I can have a dozen servers load-balance a single site. When the user FTP's they all get updated. > If saving space is important, then of course, symlinking emails will do > some good for you. But it's much better to do what the huge email stores > do, and use a file system that eliminates duplicates for you. If you want > to use the accessor, or IMAP server, to work with symlinks and so on, then > you will be breaking important features in the mailbox specification that > directly affect reliability. Binc IS NOT the program doing the Symlinks! It just has to read them. I'm just asking if a Text Filter could be added to Binc when it reads a files in the Maildir so that the 'single email' could be customized based on the users login ID. (personalize the email if tags were embedded) > If I was to do something like what you are describing, then I'd define a > specialized mailbox format that stores IDs only, with message bodies > stored in a shared collection. Then I'd write a backend for the mailstore > accessors that allowed them to deal with this format.. Already done. It's now part of the MTA. We noticed that our Tagged Emails now break as there is nothing to filter them. The MTA can't filter them as a dozen or more people read the same one. > In any case, if you start messing with message contents after they have > been delivered to a Maildir mailbox (or any other mailbox), then IMAP > clients are at risk to go haywire... :-) The client should never notice the contents changing. The filter (added to Binc) would make the same replacements, time and again when the user RE-downloads a message. -- Clients usually cache known/read emails and don't redownload unless told to. As the filename is the ID, I'd doubt Binc would have to refilter the same message more than once a month. Notes that the Filter is actually a 3rd party perl script (yes, there is a performance hit) I just wanted to know or ask if I could get a HOOK in the fileopen section of binc to call the script, if it exists.