On Mon, 2 Jul 2001 15:11:14 -0700 (PDT) you wrote:
have you looked at Coda or Intermezzo? Both distributed file systems, although I've used niether.
I've looked at these for other purposes. They're pretty complex solutions for such a simple problem. Because Data.fs is a transaction log, and thus only grows by having bits added at the end (except when packed - certainly an exception that must be handled), it is ripe for this simple "tail -f" solution. There is no need to have something that is good at recognizing changes within a file or handling all the other filesystem goodies (like ownership/modes/locks/...). After talking about it more today, it looks like we will probably even stream the updates to at least two machines. One will be off-site in case things *really* go bad. It will not be used as a ZEO server, but will only serve to hold the data in case the other two go bad. (This is especially important when the primary has already gone down.) I might even encrypt the outgoing stream and store it at another location that I do not administer. Hmmmm...it shouldn't take much hacking to be able to specify one "file" as input to Zope and one as output. That would mean that I could, for example, write each day's transactions to a separate file, concatenating all of them any time I start Zope. This would allow me to easily back the database out a day (as I did recently) or stream only updates to another server. (I could even compress the input files.) --kyler