Harshavardhana
676b9058de
Separate out memory statistics and system information into two different services
9 years ago
Harshavardhana
8abb96c030
If NodeDisks are not empty do not impose cache maxSize restriction
9 years ago
Harshavardhana
a50a44b0ca
Add nimbleNet tests
9 years ago
Harshavardhana
317096a0c4
Add net.Addr wrapper with IsEqual() and use it.
9 years ago
Harshavardhana
11b893804c
Moving os.MkdirAll() inside atomic for auto parent directory creates
9 years ago
Harshavardhana
52cd23ad9f
Move atomic file writes into its own package, use them inside quick and disk packages
9 years ago
Harshavardhana
3622fbc87d
Across donut, split, nimble some code cleanup
9 years ago
Harshavardhana
bbb89b5776
Add multi-thread protection and also allow atomic file creates, rename upon Close()
9 years ago
Harshavardhana
c2c7bdf0cd
Cleanup nimble http
9 years ago
Harshavardhana
b029d0a5f0
Avoid config reload all the time, reload is manually triggerred from outside
9 years ago
Harshavardhana
8b94c53345
Fix issues with multipart upload
9 years ago
Harshavardhana
474954022e
Add modified grace library from facebookgo, rename it as nimble
9 years ago
Harshavardhana
1d64e4b6c1
Add Donut rpc service for sending changes to configuration files
9 years ago
Harshavardhana
10b082144e
Add updateConfig code to load config changes if possible for every function
9 years ago
Harshavardhana
ba0a5ed416
Add sighup, sigusr2 into trapping code, to trap signals for reloading configuration.
...
Need to still figure out a way of graceful restarts - gave facebookgo/httpdown a shot,
but it is not suitable.
9 years ago
Harshavardhana
4a27ab0e58
Fix another deadlock inside CreateObjectPart() code, premature return without Unlocking()
...
Also this patch changes the cache key element to be interface{} type not string.
9 years ago
Harshavardhana
75788c7a1d
Fix go installation check on amazon instance
9 years ago
Harshavardhana
7f0c14f2b7
Add basic controller code, initiating json rpc connection getting list of disks and memstats for now.
9 years ago
Harshavardhana
a3ccb9d405
Rename stuttered service names and make them appropriate
9 years ago
Harshavardhana
e66a84242a
Add disk detection for Linux, add new RPC service GetDiskInfoService(), remove dummy HelloService()
9 years ago
Harshavardhana
bab4a47525
Move to container/list datastructure from map[string][]byte
9 years ago
Harshavardhana
aa67a19e99
Implement new CPU detection using cpuid, cpuidex plan9 instructions from klauspost/cpuid project, remove C code
9 years ago
Harshavardhana
0a827305ad
Implement metadata cache, metadata cache is used by top level donut right now. Rename trove as data cache
...
We should use it internally everywhere.
9 years ago
Harshavardhana
14844f48dd
Make donut do everything as an atomic operation, this avoids all the deadlocks and races
9 years ago
Harshavardhana
30fc14e703
Restructure codebase move crypto, checksum to top-level, move ``split`` into donut, move crypto/keys into api/auth
9 years ago
Harshavardhana
8a4e7bcdcf
Add full API tests, move storage/donut to donut, add disk tests as well
9 years ago
Harshavardhana
7c37e9d06a
Make donut fully integrated back into API handlers
9 years ago
Harshavardhana
12bde7df30
Add simple Ticket Master which pro-actively sends messages on proceedChannel
...
Handlers are going to wait on proceedChannel, this the initial step towards
providing priority for different set of API operations
9 years ago
Harshavardhana
5cfb05465e
Add cache, donut tests separately - fix behavior differences
...
Remove priority queue, implement it using a simpler channels
9 years ago
Harshavardhana
ebe61d99d9
Use cache Append() for saving objects in memory, GetObject() caches un-cached entries while reading
9 years ago
Harshavardhana
bce93c1b3a
Integrate cache with donut, add tests
9 years ago
Harshavardhana
0533abf6a8
Make priority queue lambda function return error over a channel
9 years ago
Harshavardhana
38a6ce36e5
Remove slow AppendUniq code, rolling through over a slice is in-efficient
...
Remove it and use map instead
9 years ago
Harshavardhana
84810162f5
Add simple Version and GetSysInfo services
9 years ago
Harshavardhana
14ec42d646
Add initial implementation of priority queue, uses container/heap
9 years ago
Harshavardhana
eb5aa19dfa
Remove custom Config, will use quick Config instead for user access keys
9 years ago
Harshavardhana
701c3e5242
Add new RPC helpers wrapping over regular rpc packages, add middleware chaining ability
9 years ago
Harshavardhana
4addf7a996
Restructure API handlers, add JSON RPC simple HelloService right now.
9 years ago
Harshavardhana
335c7827eb
More donut, cache, api cleanup
9 years ago
Harshavardhana
dc0df3dc0e
Breakaway from driver model, move cache into donut
9 years ago
Harshavardhana
72572d6c71
Remove some api server code bringing in new cleanup
9 years ago
Harshavardhana
c2031ca066
Add server and control command
9 years ago
Frederick F. Kautz IV
cfbc169034
Fixing API definitions
9 years ago
Harshavardhana
8f61d6b6be
Move memory code out, add it as layer on top of existing donut code
...
Just like how http.Handlers can be overlayed on top of each other
with each implementing ServeHTTP().
drivers.Driver can be overlayed on top of each other in similar manner
which would implement the drivers.Driver interface.
API <----> cache <----> donut <----> donut(format)
9 years ago
Harshavardhana
ab6e16bb41
Add dummy driver for community to submit new drivers
9 years ago
Harshavardhana
12de98fb62
Rename memory driver as cache
9 years ago
Harshavardhana
2571342451
Filesystem goes the high road *again*
9 years ago
Harshavardhana
f74d6138da
IsValidBucket() is sufficient we don't need to verify for "."
9 years ago
Harshavardhana
3109909355
Handle couple of cases of OOM conditions, move caching to GetObject() rather than PutObject()
9 years ago
Harshavardhana
d07d0c670a
Return back proper errors in writeObjectData(), rename few functions
9 years ago