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
Harshavardhana
c41ebf7535
Fixing a race in NewMultipartUpload() session for simultaneous requests, observed at play.minio.io
10 years ago
Harshavardhana
1bd94ec6ab
An attempt to implement ListMultipartUploads()
10 years ago
Harshavardhana
82b043005a
Avoid one last memory copy
10 years ago
Harshavardhana
8d06504068
Change all minio-io path to minio
10 years ago
Harshavardhana
b48b7f51ef
Use convenience functions for url.Values over looping through keys, fix a bug in listObjectParts()
10 years ago
Harshavardhana
14b5828505
Handle partNumberMarker with listObjectParts now and other fixes
10 years ago
Frederick F. Kautz IV
cf559fa48e
Limiting upload id size
10 years ago
Harshavardhana
8860aa0c8c
Implement AbortMultipart
10 years ago
Harshavardhana
18c7f620cc
Add listparts support
10 years ago
Harshavardhana
01b474fca3
Move expiration code into its own and add ticker select case
10 years ago
Harshavardhana
23a545673d
Verify incoming md5sum for invidual parts in complete multipart request and some simplification of the code
...
Add two new functions for session cleanup
10 years ago
Harshavardhana
616241a2c1
Re-enable bucket deletion, this time with uploadID sitting there
10 years ago
Harshavardhana
2ea10c798b
Implement proper errors for Multipart
10 years ago
Harshavardhana
82c3656f79
Reply back CompleteMultipartUploadResult properly with final ETag computed
...
- Now s3 libraries and also objectstorage-go work properly
10 years ago
Frederick F. Kautz IV
f050d5e974
Adding multipart support
10 years ago
Harshavardhana
75028c2ad1
Add lexicographic Marker/NextMarker support for recursive listing of objects.
...
Also update times when an object is accessed logic
10 years ago
Harshavardhana
ed1259d6f0
Deprecate LRU use just map[string]interface{} and call it intelligent 'cache'
10 years ago
Harshavardhana
d63064b8af
Optimize memory usage in GetPartialObject() for memory driver
10 years ago
Harshavardhana
c8f31d97a8
Modify LRU further to add object expiration
10 years ago
Harshavardhana
d0df548eb5
Use new LRU inside memory driver
10 years ago
Frederick F. Kautz IV
3cf045fd1b
Deleting key from lastAccessedObjects on eviction
10 years ago
Harshavardhana
9ec8925f1c
Rename IsValidObject() to IsValidObjectName()
10 years ago
Frederick F. Kautz IV
33ecba8e49
Reimagining memory settings cli input
10 years ago
Frederick F. Kautz IV
25c268ac88
Attempt to fix memory lock on Get preventing write
10 years ago
Harshavardhana
8e3d48bf35
Use UTC() everywhere
...
ref - https://github.com/golang/go/issues/1988 , no standard function to set timeZone
10 years ago
Frederick F. Kautz IV
94e24f1a05
Disable eviction on 0 expiration time
10 years ago