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
Frederick F. Kautz IV
8e2f7f9493
Wrapping functions that require gc so that references are released before running
10 years ago
Harshavardhana
d815e6adfd
Changes to CreateObject() now returns back md5 along with any error
...
- This change is necessary to avoid the racy calls to GetObjectMetadata()
- This change is also necessary since one has to reply back md5sum with
PUT object response header
10 years ago
Harshavardhana
f8a16dd22b
Memory now evicts bucket if no more objects in memory struct
...
- To avoid race in expiration while accessing memory driver structs with
in two competing write locks. Use lru Len() instead to know exact length
to schedule for eviction.
- squash both bucket and object structs, instead use a separate map to keep
mutable info of lastAccessTime which can be independently used inside the
expiration routine.
10 years ago
Frederick F. Kautz IV
ed0a9a9e06
Removing entity too large errors from memory driver
10 years ago