Commit Graph

82 Commits

Author SHA1 Message Date
Brad Fitzpatrick 3eb493599e in-memory search: better structure for keeping memory corpus and kv
index in sync, both at start-up and while running and receiving blobs.
They both use the same mechanism now.

Also adds KeyId to the index and Corpus, as the next step. Plenty more
row types remain...

Change-Id: Id79955ba25dc79d5fbd94b0e5248d33dcf71d97e
2013-11-17 09:41:45 -08:00
Brad Fitzpatrick 272db6545a index: change GetBlobMIMEType to GetBlobMeta. mime types on a blob was wrong anyway.
And some more of in-memory search, which this makes easier / less garbage-y.

Change-Id: If1fa7dd44842244ae5e5440f84e92d66dc3321fb
2013-11-16 19:40:14 -08:00
Brad Fitzpatrick bbabc52723 test: add Diff function.
forgot to commit earlier.

Change-Id: I9986b6bd2266d455837bc20e47b43e4c971654d7
2013-11-16 19:06:30 -08:00
Brad Fitzpatrick e26eacfa2f index: return FileInfo and ImageInfo as values, not pointers.
Change-Id: I6aba3a74ce233cc834550b561f597e549fb2bfab
2013-11-16 17:49:28 -08:00
Brad Fitzpatrick 705107ad80 search/index: invert depedency. search now depends on index.
creates new package types/camtypes for misc types needed by both. might eventually go away as
search matures.

Change-Id: Ib771ead7bea39936ba478b7e5d58de997060861b
2013-11-16 15:00:30 -08:00
mpl 01a8dbb163 pkg/search: add modtime in WANT to fix tests
Also fixed fakeindex clock to use a time.Time.
And synchronized the fakeindex and the indextests clocks to the
same origin.

Change-Id: I986abca300d61241069132619028f470cacd61da
2013-11-15 23:31:24 +01:00
Brad Fitzpatrick 17ecf8df07 search: start of general Query support. very rough draft.
Start of something that builds and 'works', but barely fleshed out at all.
Likely to change drastically yet.

Change-Id: I7fba25528a341ff2dbbc4dbb579f2450d7889320
2013-10-18 17:17:35 -07:00
Brad Fitzpatrick 99ea128752 schema: fix a race on errors in FileReader.GetChunkOffsets, add tests
Change-Id: I51635d01c3c88c5f97ac15172c5b565f07dde350
2013-09-22 13:10:16 +01:00
mpl d488c576fc search: support for static directory children
This change introduces a new index entry
to help with finding the children of a static directory.
It also fixes ResolvePrefixHop so that it takes
into account static directories, and not only collections.

This is the first step to support publishing static directories.

http://camlistore.org/issue/179

Change-Id: I5666e5caa6c782004054ae4c19a6b6119d4fda8b
2013-09-10 23:06:48 +02:00
Brad Fitzpatrick 83c81035bc Don't open the browser in integration tests.
Change-Id: I75e552cfbc7312f0df1530ea8529adf9fdceb4a0
2013-08-26 18:03:24 -05:00
Brad Fitzpatrick b24cad68dd Cleanup: remove BlobHub and time.Duration waits from storage interface
Move up a layer to the HTTP.  Also, start to remove ContextWrapper
stuff.  We've done it differently for App Engine instead, and will do
it differently yet moving forward.

Also add blobserver.Receive and use it in most places, moving checksum
verification up a layer.

Bunch of other cleanup and TODO fixing too.

Much simpler and cleaner.

Change-Id: I12e56c5d4e53bfcf82bdd8fb0b6d57c248ff605c
2013-08-21 13:57:28 -07:00
Brad Fitzpatrick 0bdf20884b all: delete pkg/blobref; convert all from *blobref.BlobRef to new blob.Ref
Change-Id: Id2dfb7f19452bedf4f3c9310b36227fd8117b225
2013-08-03 19:54:30 -07:00
mpl 5fa82a3abb integration tests: kill camlistored when all tests are done
-osutil: PollParent to monitor parent process.
-camlistored: option to kill itself if it has been orphaned.

Change-Id: I87193254d55847e46134439ecd1b04f71718d083
2013-08-02 15:42:49 +02:00
Brad Fitzpatrick b0bff61d30 types: move ReadSeekCloser types from pkg/blobref to pkg/types
Change-Id: I24e2b2a068d9b09479b145409a3b7e5693dd8ac5
2013-07-28 20:08:55 -07:00
Brad Fitzpatrick 753f717cd4 test: add WaitFor func
Change-Id: I3d60ea9701721f9107da5322521a3c742d340646
2013-07-21 22:43:39 -07:00
Brad Fitzpatrick 98eb69b5e1 fs: bunch of read-write FUSE work, debugging, and integration tests.
Change-Id: I74807f693720effb7ae8405259797331f79f59fd
2013-07-21 12:26:05 -07:00
Brad Fitzpatrick 13fe0608fb Start of integration tests and a library to make them easy.
Change-Id: I24c55252d81d2170205f090a11a5c45473707e5d
2013-07-20 22:36:53 -07: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
Brad Fitzpatrick 31c37b6368 Make test.Fetcher a full in-memory storage implementation
Change-Id: I7551c22998526804f525f65609f7539f674802cb
2013-07-07 13:02:42 -07:00
Brad Fitzpatrick bf54afe1fc localdisk: clean up tests, use test.Blob instead
Change-Id: I1463c35f3af6695e0c73afc03f616af2a238e6a0
2013-07-07 12:15:19 -07:00
mpl 0dfd84a7d8 search handler: return correct thumbnail dimensions
images: DecodeConfig to get the predicted width
and height after EXIF correction
search&index: add GetImageInfo and use it in search
to predict the thumbnail dimensions

http://camlistore.org/issue/115

Change-Id: I358136a2ab03ea09c8f8fd2fa0dc574921c819c5
2013-03-25 17:06:15 +01:00
Brad Fitzpatrick 8155b3867a Fix case of MimeType to MIMEType, per Go style.
Change-Id: I6c67a61cea2c71d7fa5d52c4ae283e33e993fd0f
2013-02-18 11:16:13 -08:00
Brad Fitzpatrick 7ceaaa0012 blobref: simplify the FromHash func. Make type implicit.
Change-Id: I2e01c3663bdb1151c11dfc9a1d59c7081940ffac
2013-01-20 13:36:27 -08:00
Brad Fitzpatrick 08f09ebf2b schema: fix FileReader bugs, simplify, add exhaustive tests
Change-Id: I5d098d7b12892d278190391dd5abd7272ed997c2
2012-12-25 17:27:52 -08:00
Brad Fitzpatrick 0a0cbe72c1 schema: start of more stressful FileReader tests, chasing a bug
Change-Id: I2aa2b815c785d37674c309a9d6b7c26c67ec3b6e
2012-12-25 12:17:45 -08:00
Brad Fitzpatrick ab98ebfa23 some FakeIndex docs
Change-Id: I508e5326c07c8cc7bd39068a2d7e342d0b27884c
2012-11-04 12:38:33 +01:00
Brad Fitzpatrick 0ccf9ba3f1 some TODOs
Change-Id: Ifcc2612ea323347ba78d5cb493ebe9fabd3a10aa
2012-11-03 22:27:27 +01:00
Brad Fitzpatrick 4b0d2841ee Add search.EdgesTo method to search interface. No implementation yet.
Change-Id: Ie3a9eb91e218e172b195d55cb9c17cb6c8f819ce
2012-11-03 16:08:37 +01: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 c463c3a26e fix pkg/server tests
Change-Id: I66fa74f52035b3185ac6390d4e38244f4b29597f
2012-03-29 16:21:07 -07:00
mpl 50df48d519 first pass with mgo as indexer
fixed indexer so that it builds as a package
added mgo as a third party
fixed mgoindexer
fixed (hackishly) tests so that they pass
I ignored everything memindex for now

Change-Id: I3c03ecfa859cf92b088a759239278b1c0edaf8aa
2012-02-20 14:40:24 +01:00
Brad Fitzpatrick 0714a463c9 Update from r60 to [almost] Go 1.
A lot is still broken, but most stuff at least compiles now.

The directory tree has been rearranged now too.  Go libraries are now
under "pkg".  Fully qualified, they are e.g. "camlistore.org/pkg/jsonsign".

The go tool cannot yet fetch from arbitrary domains, but discussion is
happening now on which mechanism to use to allow that.

For now, put the camlistore root under $GOPATH/src.  Typically $GOPATH
is $HOME, so Camlistore should be at $HOME/src/camlistore.org.

Then you can:

$ go build ./server/camlistored

... etc

The build.pl script is currently disabled.  It'll be resurrected at
some point, but with a very different role (helping create a fake
GOPATH and running the go build command, if things are installed at
the wrong place, and/or running fileembed generators).

Many things are certainly broken.

Many things are disabled.  (MySQL, all indexing, etc).

Many things need to be moved into
camlistore.org/third_party/{code.google.com,github.com} and updated
from their r60 to Go 1 versions, where applicable.

The GoMySQL stuff should be updated to use database/sql and the ziutek
library implementing database/sql/driver.

Help wanted.

Change-Id: If71217dc5c8f0e70dbe46e9504ca5131c6eeacde
2012-02-18 21:53:06 -08:00