Before the files were stored in directories like
sha1/012/345/sha-012345xxxxx.dat, meaning there were 4096 (16^3)
top-level directories, each with up to 4096 child directories. We
never really did the math, and the result millions (up to 16.7
million) directories with 1 file each.
Now the hashing structure is only 256 wide (two hex digits). If we
considered 4096 files in a directory acceptable before, that means the
new scheme can go up to 256*256*4096 files (268 million), which is
about 512 times bigger than my personal Camlistore instance
now. Larger users should probably be using the diskpacked storage
backend, anyway.
On start-up, the code now migrates the old format to the new format.
Change-Id: I17f7e830c50a5b770c57ee92d51f122340a0afbb
This test verifies that a permanode is still considered
deleted until all its deleters have been deleted.
http://camlistore.org/issue/191
Change-Id: Ifa4f17f031884b766d9ac90f1643a62ada591ae5
1) Done in AppendClaims, PermanodeOfSignerAttrValue,
SearchPermanodesWithAttr, PathsOfSignerTarget,
and PathsLookup.
2) camtypes.Path.DateClaim is now a time.Time, and used
as such in Path search methods.
3) Added kvSignerAttrValue, kvPathBackward, and kvPathForward
4) More Delete tests. We probably want more cases, but that's
a start.
http://camlistore.org/issue/191
Change-Id: I1d42485f2c6d1eea024f70378daacaaad9197768
1) The deletes cache now simply reflects all the keyDeleted index entries,
instead of trying to always hold the computed deletion state of the
blobs.
2) The IsDeleted and DeletedAt methods have been changed accordingly.
Moreover, while they previously were only taking into account the most
recent delete claim that affected the input blob, they now take
into account all delete claims that concern said blob.
In other words, a blob is considered "active" only if all of its past
deleters are deleted too (or it does not have any deleter).
http://camlistore.org/issue/191
Change-Id: I1b276dac0b3c6a3fb3beaf96828a45a85d27e4c6
Revision imported:
commit 20cea4dfef0c0151bba0422a6244cc1d3e8292b1
Author: David Symonds <dsymonds@golang.org>
Date: Wed Oct 9 08:22:02 2013 +1100
Create a relative symlink for log files.
This matches what C++ does in practice, and permits this code to work
if -log_dir is a relative path.
Change-Id: Ifb81ae766ed5ab58fd45d3c7f485a065b01ec162
As a diskPack boolean flag in the high-level server config,
reusing the blobPath parameter for destination.
Change-Id: I9ec0583b160f89952cdad851e66c7fabf22b7bb4
In the future this might be more configurable (e.g. mysql or sqlite or whatever, or different
paths). But this works for now.
Change-Id: I85853e6bfdd9063fc2eba5922b138d5552b730a9