Commit Graph

21 Commits

Author SHA1 Message Date
Brad Fitzpatrick bfc607fee7 index: reindex blobs when dependent blobs arrive out-of-order
Keep track of missing dependencies both in memory and in the index's
underlying sorted.KeyValue. When we see a dependent blob arrive, see
if we can reindex things.

Fixes camlistore.org/issue/102

Change-Id: I3d8cfc463e4b8c9d158be8f9656e772839b093b9
2014-03-15 08:44:09 -07:00
mpl 62f8a252ff pkg/index: move mysql to sorted
also minor cleanups in sqlite and mongo

Change-Id: I1f371358997d929c72a8f63d2630a1c3fa4a0240
2013-12-18 20:18:20 +01:00
mpl 15bb5f142e pkg/index: use IsDeleted in some of the search methods
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
2013-11-28 16:08:23 +01:00
Brad Fitzpatrick 90c1e48afe Rename index.Storage to sorted.KeyValue and move it into a new package.
Having index.Index and index.Storage both in the same package led to
confusing discussions about "an index". Better names now, and smaller
packages.
2013-11-22 23:24:54 -08:00
mpl fdaf030bc0 index: add deletedAt method, and cache for deletion status
This method will be used to find out when a permanode or claim
was (un)deleted for the last time.

This change also introduces the keyDeletes index entry which
allows to find the permanodes/claims that a delete claim deletes.

Finally, since some index keys have changed, this CL introduces
a check for an index schema version, to force users to reindex
when needed.

http://camlistore.org/issue/191

Change-Id: I6f8e5d3030a6ddc8b21ff5dc5db311f2ea16f613
2013-11-06 23:34:13 +01:00
Brad Fitzpatrick e20c7f44a8 auth: fix security problem where 'localhost' allowed all access.
Also, add tests. And remove CAMLI_ADVERTISED_PASSWORD, replacing it with explicit devauth mode.

Change-Id: I9cdfe2d537ecefcf75df0b9fb8538258703b1eb7
2013-08-31 13:44:44 -07:00
Brad Fitzpatrick f0d4a61b6a Use osutil.Username in more places.
Change-Id: Id1154fc16c98b3c72d425a4a8adae9c6c0bb2c04
2013-08-28 12:00:17 -07:00
mpl f4ef8c0375 dev-server: remove. replaced by devcam server.
Fix related docs, config files, buildbot...

Change-Id: I638d3856f42953603b13204fb56782974d0db9ee
2013-08-03 01:12:38 +02:00
Brad Fitzpatrick 9468e5ba70 More docs. Every package is documented now.
misc.CountingReader moves into readerutil.

pkg/atomics is folded into pkg/types.

pkg/test/testdep is folded into pkg/test, with better name/docs.

Old cruft from pkg/webserver is deleted.

Change-Id: I3f72d8b29804254ef944995fb085837c878f79f5
2013-07-07 21:12:30 -07:00
mpl be2fd70e3c index: set MySQL to binary charset
The immediate concern was to make the index case sensitive,
but the values should be stored in binary anyway as this
layer is just obeying the IndexStorage interface and should
not be concerned with character sets.

http://camlistore.org/issue/130

Change-Id: Iee913b0bd9e5c0c32a5c5570310c2ac5d0cfddf8
2013-04-18 00:59:17 +02:00
Brad Fitzpatrick 75360ee9b3 Rename index.IndexStorage to index.Storage, to reduce stutter.
Change-Id: I52b2a8460c3957a1c8211a470e1df9a8dc5b7067
2013-01-13 20:19:36 -08:00
Brad Fitzpatrick 43e240f0f6 Fix mymysql for Go 1.1; see https://code.google.com/p/go/issues/detail?id=4476
Change-Id: I6b5d66b68715f7d71ce665dbf90dfc0d4eefab5a
2012-11-30 22:09:51 -08:00
Brad Fitzpatrick f696007a14 index: implement EdgesTo
For finding back references in the graph.
2012-11-05 10:29:42 +01:00
Brad Fitzpatrick da32d8d1e8 fix typo in test name
Change-Id: I565422ee6868893a543525853a8e9c24fb14b9fc
2012-04-13 16:08:40 -07:00
Brad Fitzpatrick 1186c452ba Split mysql and generic sql index code. (Prep for sqlite indexer)
Untested.

Change-Id: Iaf53abf5bea9087ab2f8f1e2a7cda53b73ae094d
2012-04-09 09:53:57 -07:00
Brad Fitzpatrick 2ac4da75a7 Add SKIP_DEP_TESTS env var to skip tests with depdendencies.
Now all tests pass like this:

bradmac-2:camlistore.org $ SKIP_DEP_TESTS=1 go test ./pkg/...
?       camlistore.org/pkg/auth [no test files]
ok      camlistore.org/pkg/blobref      0.023s
ok      camlistore.org/pkg/blobserver   0.032s
?       camlistore.org/pkg/blobserver/cond      [no test files]
?       camlistore.org/pkg/blobserver/google    [no test files]
ok      camlistore.org/pkg/blobserver/handlers  0.031s
ok      camlistore.org/pkg/blobserver/localdisk 1.693s
?       camlistore.org/pkg/blobserver/remote    [no test files]
?       camlistore.org/pkg/blobserver/replica   [no test files]
?       camlistore.org/pkg/blobserver/s3        [no test files]
?       camlistore.org/pkg/blobserver/shard     [no test files]
?       camlistore.org/pkg/cacher       [no test files]
ok      camlistore.org/pkg/client       0.029s
?       camlistore.org/pkg/errorutil    [no test files]
?       camlistore.org/pkg/fileembed    [no test files]
?       camlistore.org/pkg/fileembed/genfileembed       [no test files]
?       camlistore.org/pkg/fs   [no test files]
ok      camlistore.org/pkg/googlestorage        0.034s
?       camlistore.org/pkg/httputil     [no test files]
ok      camlistore.org/pkg/index        0.298s
?       camlistore.org/pkg/index/indextest      [no test files]
ok      camlistore.org/pkg/index/mongo  0.524s
ok      camlistore.org/pkg/index/mysql  0.020s
ok      camlistore.org/pkg/jsonconfig   0.022s
ok      camlistore.org/pkg/jsonsign     0.155s
ok      camlistore.org/pkg/lru  0.015s
ok      camlistore.org/pkg/magic        0.030s
?       camlistore.org/pkg/misc [no test files]
ok      camlistore.org/pkg/misc/amazon/s3       0.028s
ok      camlistore.org/pkg/misc/gpgagent        0.018s
ok      camlistore.org/pkg/misc/httprange       0.026s
?       camlistore.org/pkg/misc/pinentry        [no test files]
?       camlistore.org/pkg/misc/resize  [no test files]
ok      camlistore.org/pkg/netutil      0.088s
ok      camlistore.org/pkg/osutil       0.016s
ok      camlistore.org/pkg/rollsum      0.027s
ok      camlistore.org/pkg/schema       0.017s
ok      camlistore.org/pkg/search       0.016s
ok      camlistore.org/pkg/server       0.039s
ok      camlistore.org/pkg/serverconfig 0.031s
?       camlistore.org/pkg/test [no test files]
?       camlistore.org/pkg/test/asserts [no test files]
?       camlistore.org/pkg/test/testdep [no test files]
?       camlistore.org/pkg/webserver    [no test files]

Change-Id: I9c9b0ee4f51cbcf785aed665bbb494339dd84261
2012-03-29 18:21:37 -07:00
Brad Fitzpatrick cf2813a5a4 mysql indexer: implement indextest tests & fix Get bug that it found.
also, delete the other index package's testdata symlinks.

Change-Id: Ie848b880b5d7397e8d334e636a358396024ad144
2012-03-29 16:12:12 -07:00
Brad Fitzpatrick 427ef88dc2 mysql indexer: start of tests.
Change-Id: I5df79f57607b5e4fe4f67f79a8e5ba8966e8dec5
2012-03-28 17:15:37 -07:00
Brad Fitzpatrick 7f90db0291 rename mysqlindexer to mysql to match import
Change-Id: I23cd9cfc40a0e01cb0086fc5c9a3ad108f3705a8
2012-03-27 09:37:32 -07:00
Brad Fitzpatrick 69328c751f fix camdbinit; use correct mysqlindexer import
Change-Id: I227e219ec32f81a11cc6192cd60de8b89878bedc
2012-03-27 09:17:26 -07:00
Brad Fitzpatrick 10cf23c700 Get the MySQL indexer working again.
It now uses the generic indexing layer, rather than its own schema.
Also, move it under pkg/index/, like mongo.
Also, link in mongo to the main binary.
Not using the tests yet (leaving for mpl :))

Change-Id: I47a2203ca6c0b5244cd458aedec46227c4363c62
2012-03-26 13:57:53 -07:00