Harshavardhana
c8de5bad2f
Implement presigned policy
9 years ago
Harshavardhana
81cc017f91
Implement presigned signature v4 support
9 years ago
Harshavardhana
50750efb52
Reduce memory usage for memory multipart write by doing io.Pipe() streaming copy
9 years ago
Harshavardhana
45b59b8456
Probe revamped to provide for a new WrappedError struct to wrap probes as error interface
...
This convenience was necessary to be used for golang library functions like io.Copy and io.Pipe
where we shouldn't be writing proxies and alternatives returning *probe.Error
This change also brings more changes across code base for clear separation regarding where an error
interface should be passed encapsulating *probe.Error and where it should be used as is.
9 years ago
Harshavardhana
f8141493bd
use command not found helper
10 years ago
Harshavardhana
d09fd8b0a1
Migrate from iodine to probe
10 years ago
Harshavardhana
d346250f1c
Collapse GetPartialObject() into GetObject()
10 years ago
Krishna Srinivas
bcfaa12a4d
Encoder now directly reads from the object stream. Using split.Stream() was causing lot of redundant memory operations.
10 years ago
Harshavardhana
63c9cf0c4b
Move from Minimalist Object Storage to Minio Cloud Storage
10 years ago
Harshavardhana
43c908d5b9
ListObjects now considers multipart objects, also move to upstream check.v1
10 years ago
Harshavardhana
5507a39840
Heal buckets upon init if needed, adding new disks and HUP works
10 years ago
Harshavardhana
6baf45e360
Fix a crash during listObjects() populating NextMarker
10 years ago
Harshavardhana
c4cf7635bf
Read req.Body for PutBucket() if any
10 years ago
Harshavardhana
45ddec925c
Fix an ugly multipart bug
10 years ago
Harshavardhana
29838bb851
Cleanup temporary writers upon errors during putObject(), all metadata() write operations
10 years ago
Harshavardhana
15dd0df187
Support signature v4 at rest
10 years ago
Harshavardhana
84f427f14a
All other API's now support signature v4
10 years ago
Harshavardhana
00890c254e
CompleteMultipartUpload and CreateObjectPart now fully support signature v4
10 years ago
Harshavardhana
89c1215194
PutObject handler gets initial support for signature v4, working
10 years ago
Harshavardhana
375860077d
HTTP header Content-Length signifies body length of the request, if its smaller reply appropriately
...
This patch also handles large individual part sizes > 5MB by using less memory copies.
10 years ago
Harshavardhana
d1deda3a96
Add API tests for both donut on disk and donut cache
10 years ago
Harshavardhana
8abb96c030
If NodeDisks are not empty do not impose cache maxSize restriction
10 years ago
Harshavardhana
3622fbc87d
Across donut, split, nimble some code cleanup
10 years ago
Harshavardhana
b029d0a5f0
Avoid config reload all the time, reload is manually triggerred from outside
10 years ago
Harshavardhana
8b94c53345
Fix issues with multipart upload
10 years ago
Harshavardhana
10b082144e
Add updateConfig code to load config changes if possible for every function
10 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.
10 years ago
Harshavardhana
bab4a47525
Move to container/list datastructure from map[string][]byte
10 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.
10 years ago
Harshavardhana
14844f48dd
Make donut do everything as an atomic operation, this avoids all the deadlocks and races
10 years ago
Harshavardhana
8a4e7bcdcf
Add full API tests, move storage/donut to donut, add disk tests as well
10 years ago
Harshavardhana
7c37e9d06a
Make donut fully integrated back into API handlers
10 years ago
Harshavardhana
5cfb05465e
Add cache, donut tests separately - fix behavior differences
...
Remove priority queue, implement it using a simpler channels
10 years ago
Harshavardhana
ebe61d99d9
Use cache Append() for saving objects in memory, GetObject() caches un-cached entries while reading
10 years ago
Harshavardhana
bce93c1b3a
Integrate cache with donut, add tests
10 years ago
Harshavardhana
38a6ce36e5
Remove slow AppendUniq code, rolling through over a slice is in-efficient
...
Remove it and use map instead
10 years ago
Harshavardhana
335c7827eb
More donut, cache, api cleanup
10 years ago
Harshavardhana
dc0df3dc0e
Breakaway from driver model, move cache into donut
10 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)
10 years ago
Harshavardhana
12de98fb62
Rename memory driver as cache
10 years ago
Harshavardhana
42c0287943
Use errorChannels only for services not for drivers, reduce them to use simple functions
10 years ago
Harshavardhana
45a7eab804
An attempt to bring in memory layer into donut driver
10 years ago
Harshavardhana
d4e71beb54
Add time.Since on buckets created time to avoid deleting buckets spuriously during eviction of objects
10 years ago
Harshavardhana
636788997b
Minor optimization avoiding one unnecessary copy
10 years ago
Harshavardhana
64b014369c
Return back entity too large for createObject requests bigger than cache size
10 years ago
Harshavardhana
a91e519692
Make caching a package trove, and use it inside memory driver
10 years ago
Anis Elleuch
d360d0fec3
Forbid the upload of files bigger than the memory backend capacity
10 years ago
Harshavardhana
3d61ba5930
Fix duplicate map allocation
10 years ago
Harshavardhana
5c5761ae16
Remove unnecessary GetObjectMetadata prefix argument
10 years ago
Harshavardhana
6275238a47
For multiparts use its own cache avoids deadlocks during object expiration
...
Using same object cache as regular objects for multiparts causes deadlocks during object expiration routine.
As a side affect this also fixes the bug of listing multiparts during regular 'listing' of objects.
10 years ago