[Box Backup] data store question
Chris Wilson
boxbackup@fluffy.co.uk
Tue, 25 Mar 2008 21:08:48 +0000 (GMT)
Hi Jody,
On Tue, 25 Mar 2008, Jody Belka wrote:
> I just wanted to check something about my understanding of the
> datastore. I believe it's the case that files can be stored as a delta
> against another object in the store, right. So you could have
>
> object 1
> |
> |
> v
> object 2 - delta against object 1
> |
> |
> v
> object 3 - delta against object 2
>
>
> First I want to check I've got that correct?
I believe so, yes.
> Then, assuming that it is, let's say that the store want's to free up
> some space. Does it have to keep objects 1 and 2 around, or is it able
> in some way to merge things back together?
It merges "object 1" and "object 2" to create a new "object 2", which no
longer depends on "object 1", and then deletes "object 1".
> Also, again assuming the above to hold true, can more than one object
> exist as a delta against the same single object? eg, is this possible?
>
> object 1
> / \
> / \
> / \
> / \
> object 2 object 3
> (delta v 1) (delta v 1)
I don't believe so at the moment. The automatic merging code would be made
a lot more complex by this kind of structure. And the diffing code would
be made a lot more complex by creating it in the first place. Box Backup
only diffs against previous versions of the same file, so it could never
end up with a tree structure like this.
However, you might find that object 3 is a newer version of objects 1 and
2, but only in practice depends on blocks in object 1. You could view that
as a tree structure if you choose, or equivalently that object 3 depends
on the completely reconstructed object 2 (not just the difference blocks),
which itself contains blocks from object 1, which is a linear structure.
Cheers, Chris.
--
_____ __ _
\ __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Ruby/Perl/SQL Developer |
\ _/_/_/_//_/___/ | We are GNU : free your mind & your software |