On Tue, 2 May 2000, Jason Spisak wrote:
This is what I'm talking about. Splitting the Data.fs into pieces and maybe even each object has it's own piece with revisions of that object stored in it's piece. This offers some interesting pluses. Anyone see anything really glaringly wrong with this?
I would suggest that splitting should be done at the transaction level not the individual object level. Initially one might keep the whole system as is, and run a seperate process that monitors data.fs and caches a map of transaction ids to byte offsets. A client can place a request to that process passing as parameters a transaction id (and a few other things) and the server process returning the data segment of Data.fs that occured after that transaction. If packing has occured the server can notify the client about it, and then it is up to the client to deal with 'its own' Data.fs. The client upon receiving the data can either append them to the Data.fs or store them individually. A script then can use those segments to reconstruct a snapshot Data.fs for a specified time. What you are suggesting is more interesting but I think also more difficult. Pavlos