Previously, every time you restarted the server, it forgot about all
thumbnails previously generated. (in practice it didn't/doesn't
matter with a single user, though, since they're still cached in the
browser and we always reply to If-Modified-Since immediately without
checking the cache) But it'll matter more with the Publish handler.
Also, rename some stuff, clean up some stuff, drop an unused interface.
And then necessarily change the serverconfig low-level generator to use
a kvfile for the thumbmeta map when using local disk for blobs.
--
Change-Id: I4dcfcb21429a440aa118794c03f7abf7bd69c33b
We had the legacy "memIndex" option to put the Camlistore index in
memory (the leveldb memdb) as an option in genconfig called
"memIndex", and we also had an option called "memoryIndex" for whether
to slurp the on-disk index to memory on start-up. Too confusing!
Instead, delete "memIndex" (since it's not the default anyway, now
that we have kv).
Then, also (the original point of this change): default the
memoryIndex option to true, so search works for people by default.
This option might go away in the future if it becomes the only required
way.
Also, document this.
Change-Id: Iddffa6e19adbf09c5aacd063aa44de362d90633b
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
Previous TODO entry was:
-- Get rid of QueueCreator entirely. Plan:
-- sync handler still has a source and dest (one pair) but
instead of calling CreateQueue on the source, it instead
has an index.Storage (configured via a RequiredObject
so it can be a kvfile, leveldb, mysql, postgres etc)
-- make all the index.Storage types be instantiable
from a jsonconfig Object, perhaps with constructors keyed
on a "type" field.
-- make sync handler support blobserver.Receiver (or StatReceiver)
like indexes, so it can receive blobs. but all it needs to
do to acknowledge the ReceiveBlob is write and flush to its
index.Storage. the syncing is async by default. (otherwise callers
could just use "replica" if they wanted sync replication).
But maybe for ease of configuration switching, we could also
support a sync mode. when it needs to replicate a blob,
it uses the source.
-- future option: sync mirror to an alternate path on ReceiveBlob
that can delete. e.g. you're uploading to s3 and google,
but don't want to upload to both at once, so you use the localdisk
as a buffer to spread out your upstream bandwidth.
-- end result: no more hardlinks or queue creator.
Change-Id: I6244fc4f3a655f08470ae3160502659399f468ed
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
Because no localdisk means either s3 or google is the primary,
and none of them support efficient replication.
1) Added a dummy synchandler constructor for when config has "idle"
2) Set "idle" for synchandler config when no localdisk
3) fixed corresponding tests
Also:
- added error (and test) when no localdisk and both s3 and google
in config
- added s3 + mysql test
http://camlistore.org/issue/201
Change-Id: I861fdca0c203bc0181ab6d548adab501ed98d2f0
This change enables the ability to profile with:
go tool pprof http://<host>:<port>/debug/pprof/profile
Setting CAMLI_HTTP_PPROF=1 in your environment before running camlistored will
enable the handler.
Change-Id: I91993f5166e257e5be406a4d2c3e6bc0028a435a
of enumerating Drive files, needs to be fixed once Drive supports
range queries. Allows you to sync to /sto-googledrive/, but not from.
Change-Id: I6ac5ef02c5f51a6abdab5c207a3a5693c6bb8581