Timo Sirainen wrote:
On Mon, 2009-09-28 at 18:35 +0100, Ed W wrote:
I would have thought that your API will prefer to request message parts
where it can (eg header, body, mime part), and just issue a read_bytes,
where that's what the client is asking for otherwise. This would allow
the storage engine to optimise where it can and sadly for the dumb
client we just stream bytes since that's all they asked for...
In my mind this is more about what lib-storage API was supposed to
abstract out, whereas my filesystem API would be used simply for binary
data storage. The same FS API could be used to store both dbox files and
index files.
I guess in this case it would be interesting to hear the kind of use
cases you imagine that the storage API will be used for in practice? I
think I might be kind of overthinking the problem?
Seems like it's a very thin shim between a real file system and dovecot
and would be mainly useful for supporting filesystems with non posix
protocols, eg someone wants to store their mail files on mogile or DAV,
but it doesn't address anything lower or higher than blocks of data?
I can see how this would be useful in certain scenarios, but kind of
interested to hear where you think it will go?
Seems like it would be useful for:
- implementing very specific optimisations for example for NFS
- optimisation for filesystems with unusual strengths/weaknesses, eg GFS
or Gluster?
- non posix file system storage (but without trying to leverage
particular features of that storage)
Actually, it mainly seems like a way for you to break out the access
paths for NFS versus local storage when I write it down like that?
Ed W