Karthic Rao
8bd78fbdfb
performance: gjson parsing for readXLMeta, listParts, getObjectInfo. ( #2631 )
...
- Using gjson for constructing xlMetaV1{} in realXLMeta.
- Test for parsing constructing xlMetaV1{} using gjson.
- Changes made since benchmarks showed 30-40% improvement in speed.
- Follow up comments in issue https://github.com/minio/minio/issues/2208
for more details.
- gjson parsing of parts from xl.json for listParts.
- gjson parsing of statInfo from xl.json for getObjectInfo.
- Vendorizing gjson dependency.
2016-09-13 21:18:30 -07:00
Harshavardhana
f655592ff5
vendorize new dsync with new changes of logging.
2016-09-13 21:18:30 -07:00
Harshavardhana
9605fde04d
controller/auth: Implement JWT based authorization for controller. ( #2544 )
...
Fixes #2474
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
bda6bcd5be
Layered rpc-client implementation ( #2512 )
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
c33d1b8ee6
Vendorize minio/dsync for server-side read lock ( #2484 )
...
- Prevention of stale lock accumulation.
- Removal of dead code.
2016-09-13 21:18:30 -07:00
Harshavardhana
83074ed57e
Add missing rpc-client.go - missing in previous commit.
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
64a7e6992e
Vendorize rpc reconnect changes from minio/dsync ( #2405 )
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
b0f3f94163
unify single-node and distributed namespace locking ( #2401 )
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
b7c169d71d
object layer initialization using distributed locking ( #2397 )
...
* vendorized latest minio/dsync
* wip - object layer initialization using distributed locking
2016-09-13 21:18:30 -07:00
Krishnan Parthasarathi
e55926e8cf
distribute: Make server work with multiple remote disks
...
This change initializes rpc servers associated with disks that are
local. It makes object layer initialization on demand, namely on the
first request to the object layer.
Also adds lock RPC service vendorized minio/dsync
2016-09-13 21:18:30 -07:00
Bala FA
7431acb2c4
web: add handlers for set/get bucket policy. ( #2486 )
...
Refer #1858
2016-08-30 10:04:50 -07:00
Harshavardhana
975eb31973
api/bucketPolicy: Use minio-go/pkg/set and fix bucket policy regression. ( #2506 )
...
Current master has a regression 'mc policy <policy-type> alias/bucket/prefix'
does not work anymore, due to the way new minio-go changes do json marshalling.
This led to a regression on server side when a ``prefix`` is provided
policy is rejected as malformed from th server which is not the case with
AWS S3.
This patch uses the new ``minio-go/pkg/set`` package to address the
unmarshalling problems.
Fixes #2503
2016-08-20 03:16:38 -07:00
Harshavardhana
0a3d43273f
vendor: sha256 32bit updated. ( #2459 )
2016-08-16 16:19:29 -07:00
Frank
f239fcac67
Switched to faster minio/sha256-simd implementation ( #2320 )
2016-07-28 14:44:37 -07:00
Harshavardhana
f248089523
api: Implement bucket notification. ( #2271 )
...
* Implement basic S3 notifications through queues
Supports multiple queues and three basic queue types:
1. NilQueue -- messages don't get sent anywhere
2. LogQueue -- messages get logged
3. AmqpQueue -- messages are sent to an AMQP queue
* api: Implement bucket notification.
Supports two different queue types
- AMQP
- ElasticSearch.
* Add support for redis
2016-07-23 22:51:12 -07:00
Harshavardhana
35d438e0ff
vendorize: update all vendorized packages. ( #2206 )
...
Bring in new changes from upstream for all the packages.
Important ones include
- gorilla/mux
- logrus
- jwt
2016-07-14 14:59:20 -07:00
Harshavardhana
169c72cdab
vendor: Bring new updates from blake2b-simd repo. ( #2094 )
...
This vendorization is needed to bring in new improvements
and support for AVX2 and SSE.
Fixes #2081
2016-07-06 18:24:31 -07:00
Harshavardhana
48ac34919f
browser: Add new release for ui-assets.go ( #2070 )
...
update `ui-assets.go` using `x-amz-date` for JSON rpc.
2016-07-02 10:54:17 -07:00
Harshavardhana
d484157d67
XL/bitrot: Migrate to new blake2b-simd SIMD optimized implementation. ( #2031 )
...
Thanks for Frank Wessels <fwessels@xs4all.nl> for all the heavy lifting work.
Comparative benchmarks are as below.
```
benchmark old ns/op new ns/op delta
BenchmarkHash64-4 742 411 -44.61%
BenchmarkHash128-4 681 346 -49.19%
BenchmarkWrite1K-4 4239 1497 -64.69%
BenchmarkWrite8K-4 33633 11514 -65.77%
BenchmarkWrite32K-4 134091 45947 -65.73%
BenchmarkWrite128K-4 537976 183643 -65.86%
benchmark old MB/s new MB/s speedup
BenchmarkHash64-4 86.18 155.51 1.80x
BenchmarkHash128-4 187.96 369.10 1.96x
BenchmarkWrite1K-4 241.55 683.87 2.83x
BenchmarkWrite8K-4 3897.06 11383.41 2.92x
BenchmarkWrite32K-4 977.48 2852.63 2.92x
BenchmarkWrite128K-4 243.64 713.73 2.93x
```
Fixes #2030
2016-06-29 02:06:35 -07:00
Harshavardhana
e10934a88e
bitrot: Start using blake2b algorithm and remove sha512 usage. ( #1957 )
...
Fixes #1952
2016-06-22 17:13:26 -07:00
Harshavardhana
7f38f46e20
vendor: update klauspost/reedsomon package with upstream changes. ( #1912 )
2016-06-17 15:16:26 +05:30
Harshavardhana
4ab57f7d60
server: terminal width should fallback to 80x25. ( #1895 )
...
Some environments might disable access to `/dev/tty`, fall
back to '80' in such scenarios.
Move to 'cheggaaa/pb' package for better cross platform
support on fetching terminal width.
Fixes #1891
2016-06-12 19:35:28 -07:00
Harshavardhana
2e4ab71303
Web: Update with ui changes. ( #1808 )
2016-05-31 02:01:02 -07:00
karthic rao
2da34e4668
vendor changes to pkg/profile ( #1671 )
2016-05-18 09:22:06 -07:00
Harshavardhana
8828fd1e5c
vendor: Remove unused packages.
2016-05-15 00:04:56 -07:00
Harshavardhana
b66c3bf35e
server: Enable server profiling as needed. ( #1565 )
2016-05-09 16:18:56 -07:00
Harshavardhana
ba7a55c321
xl: ReedSolomon code fix small file erasure bug. ( #1431 )
...
For files less than 'dataBlocks', erasure encoding would fail
with short data due to a bug in the implementation itself.
Relax the error return, even a single byte can be properly
erasure coded without issues.
Fixes #1413
2016-05-01 15:30:40 -07:00
Harshavardhana
a9935f886c
vendor: update reedsolomon package with new perm improvements. ( #1422 )
2016-04-29 14:59:03 -07:00
Harshavardhana
a98a7fb1ad
Implement XL layer - preliminary work.
2016-04-25 12:47:31 -07:00
Harshavardhana
444d1f8a65
miniobrowser: Vendorize to new changes in miniobrowser.
2016-04-21 20:35:48 -07:00
Harshavardhana
8603185f2f
browser: Add new ui-assets.go
2016-04-08 01:47:30 -07:00
Bala.FA
083e4e9479
backend/fs: Refactor multipart upload
...
This patch modifies multipart upload related functions as below
* New multipart upload call creates file
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.uploadid
* Put object part call creates file
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.PART_NUMBER.MD5SUM_STRING
* Abort multipart call removes all files matching
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.*
* Complete multipart call does
1. creates a staging file
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete.TEMP_NAME
then renames to
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete
2. rename staging file
EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete
to EXPORT_DIR/BUCKET/PATH/TO/OBJECT
2016-04-05 22:22:29 +05:30
Harshavardhana
ba3a5805c1
vendorize: Add updated ui-assets.go.
2016-04-02 17:27:36 -07:00
Krishna Srinivas
331890c4c8
UI-handler: remove minio-go dependancy.
2016-04-01 13:56:32 +05:30
Harshavardhana
aaf97ea02c
config/main: Re-write config files - add to new config v3
...
- New config format.
```
{
"version": "3",
"address": ":9000",
"backend": {
"type": "fs",
"disk": "/path"
},
"credential": {
"accessKey": "WLGDGYAQYIGI833EV05A",
"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
},
"region": "us-east-1",
"logger": {
"file": {
"enable": false,
"fileName": "",
"level": "error"
},
"syslog": {
"enable": false,
"address": "",
"level": "debug"
},
"console": {
"enable": true,
"level": "fatal"
}
}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
2016-03-23 19:16:09 -07:00
Harshavardhana
5606232567
vendor: Update ui-assets with new changes and release.
2016-03-10 17:36:32 -08:00
Harshavardhana
e781959d5b
vendor: Add minio-go vendor updates.
2016-03-10 14:33:15 -08:00
Harshavardhana
164dfe2ec9
console: Fix console color printing on windows.
...
Print colored accessKeyID and secretAccessKey are unreadable on windows
on command prompts and powershell.
Use the console package from minio client.
2016-03-04 10:07:19 -08:00
Krishna Srinivas
44b2037667
browser-assets: serve asset files with compression.
2016-03-04 07:47:26 +05:30
Harshavardhana
95d3ecb9ce
browser: vendorize to new browser update
2016-03-03 17:46:09 -08:00
Harshavardhana
781540081d
vendor: Update to new upstream changes from fatih/color
...
Brings in changes like support for Solaris/FreeBSD.
2016-02-23 15:01:17 -08:00
Harshavardhana
2181003609
web: Removing dependency for gpg and downloading assets.
...
Assets are vendorized from now on and updated for each release.
2016-02-23 13:32:12 -08:00
Anand Babu (AB) Periasamy
f53e9dd1b8
vendor update for go-homedir
2016-02-18 13:02:41 +05:30
Harshavardhana
9e10ee7e47
cpu: Remove pkg/cpu in favor of better klauspost/cpuid.
...
Fixes #1128
2016-02-15 13:50:33 -08:00
Anand Babu (AB) Periasamy
bbca70e13b
rewrite minio runtime checks
2016-02-15 17:56:56 +05:30
Harshavardhana
e59ceba51b
rpc: Fix json rpc to handle array and object request params.
...
rpc/v2/json2 code has a bug where it treats all jsonrpc 2.0
request params like an 'object'. In accordance with the spec
it could be both 'object' or an 'array'.
Handle both cases.
2016-02-13 19:01:36 -08:00
Krishna Srinivas
6ad39cb386
WebUI: move from rpc/v2/json to rpc/v2/json2 which has better error response structure.
2016-02-12 20:29:56 -08:00
Harshavardhana
62f6ffb6db
xl: Moved to minio/minio - fixes #1112
2016-02-11 15:43:36 -08:00
Harshavardhana
99fbc0fcb3
getObject: Add support for special response headers.
...
Supports now response-content-type, response-content-disposition,
response-cache-control, response-expires.
2016-02-07 03:55:16 -08:00
Harshavardhana
a066184bed
ui-assets: Integrate UI assets.
2016-02-04 18:07:05 -08:00
Krishna Srinivas
d038393156
UI: vendorize github.com/elazarl/go-bindata-assetfs which is needed by ui-assets.go
2016-02-04 16:50:34 +05:30
Harshavardhana
de9682a4e7
vendor: Update minio-go library with fixes for objectlisting.
2016-02-02 11:59:55 -08:00
Harshavardhana
3f1c4bb4b0
Bring in the list APIs implemented by Bala <bala@minio.io>
2016-01-24 16:39:48 -08:00
Harshavardhana
0a9496462a
jwt: Add JWT support for minio server.
...
Please read JWT.md before using this feature.
2016-01-22 17:38:05 -08:00
Harshavardhana
88686dc6e3
build: Handle builds on env where CGO_ENABLED=0
...
Fixes #1033
2016-01-14 18:19:01 -08:00
Harshavardhana
ab3fd8ea7f
cli: vendorize to new CLI package updates.
...
- Fix a new line issue for minioHelpTemplate.
- Fixes #974
2015-11-21 09:01:18 -08:00
Harshavardhana
da2a6066c7
atomic: do not sync by default, if needed use CloseAndSync()
2015-11-17 23:04:18 -08:00
Harshavardhana
35b9f965f1
fs: use new atomic package - use FileCreateWithPrefix() API
2015-11-17 16:32:20 -08:00
Harshavardhana
ff161a9943
vendorize: Add new changes for sha256, sha512 for 32bit support.
2015-11-14 00:55:24 -08:00
Harshavardhana
3566d08c52
Update new changes in probe and add setAppInfo
2015-10-25 11:11:29 -07:00
Anand Babu (AB) Periasamy
8e68591933
updated probe
2015-10-23 20:09:14 -07:00
Harshavardhana
b74852116a
Fix portability issues for arm on raspberry pi
2015-10-20 11:22:00 -07:00
Harshavardhana
762b798767
Migrate this project to minio micro services code
2015-10-16 11:26:08 -07:00
Harshavardhana
c4faf47e64
First time mode for controller
...
- Upon first time invocation ``minio controller`` would create access keys and secret id
- Upon request passing 'keys' arg ``minio controller`` would provide the keys
- Add colorized notification
2015-10-04 16:42:16 -07:00
Anis ELLEUCH
b5ea05d839
A better way to print prettified json syntax error msg
2015-10-03 12:25:44 -07:00
Harshavardhana
3b278b7f67
Add WebUI assetfs initial version
2015-09-25 00:45:23 -07:00
Anand Babu (AB) Periasamy
1394d8a7a8
logrus based logger
2015-09-17 23:49:30 -07:00
Anand Babu (AB) Periasamy
93b406c986
vendor package logrus
2015-09-09 21:51:45 -07:00
Harshavardhana
f39ac24e99
Enable controller to have CORS
2015-08-31 01:47:05 -07:00
Harshavardhana
988d39a5b6
Migrate to golang1.5 release with GO15VENDOREXPERIMENT=1 enabled
2015-08-22 18:35:37 -07:00