Commit graph

185 commits

Author SHA1 Message Date
chrislusf 1b6ab2f6af Add boltdb for volume needle map
boltdb is fairly slow to write, about 6 minutes for recreating index
for 1553934 files. Boltdb loads 1,553,934 x 16 = 24,862,944bytes from
disk, and generate the boltdb as large as 134,217,728 bytes in 6
minutes.

To compare, for leveldb, it recreates index in leveldb as large as
27,188,148 bytes in 8 seconds.
For in memory version, it loads the index in

To test the memory consumption, the leveldb or boltdb index are
created. And the server is restarted. Using the benchmark tool to read
lots of files. There are 7 volumes in benchmark collection, each with
about 1553K files.
For leveldb, the memory starts at 142,884KB, and stays at 179,340KB.
For boltdb, the memory starts at 73,756KB, and stays at 144,564KB.
For in-memory, the memory starts at 368,152KB, and stays at 448,032KB.
2015-03-29 11:04:32 -07:00
chrislusf 020ba6c9a8 add leveldb support for needle map
This supposedly should reduce memory consumption. However, for tests
with millions of, this shows consuming more memories. Need to see
whether this will work out. If not, later boltdb will be tested.
2015-03-27 16:34:58 -07:00
chrislusf f56339f38d [ui] add ui to status page 2015-03-24 10:52:14 -07:00
chrislusf b113760cf4 [ui] format peers 2015-03-24 00:09:20 -07:00
chrislusf 78bc7b393f tweaking ui 2015-03-22 12:50:04 -07:00
chrislusf b75ca9890d Add Initial Seaweed File System UI 2015-03-19 10:39:22 -07:00
chrislusf 62f5e35cbe fix public handler setup 2015-03-13 07:59:29 -07:00
chrislusf b07d81fb08 follow golint suggestions 2015-03-10 00:20:34 -07:00
chrislusf f511b507a5 Add read only public port on volume server
Add read only public port on volume server
2015-03-09 01:10:04 -07:00
chrislusf 853701cb6b Avoid wrong way to delete on replication failure
Avoid wrong way to delete on replication failure. This deletion has bug
to write. The better fix is not to use the deletion on failure at all.
2015-03-09 01:10:04 -07:00
Chris Lu a506e7953f Separate read and write volume handlers. 2015-02-25 23:59:07 -08:00
chrislusf 226df38c95 Redirect to publicUrl
Redirect to publicUrl
2015-02-12 21:12:53 -08:00
chrislusf e0d8259d98 Randomize http redirect.
Randomize http redirect.
Also remove unnecessary empty string checking.
2015-02-12 14:34:05 -08:00
yourchanges 7e0c080581 Move the redirect url perfer to volume server's PublicUrl 2015-02-12 18:46:56 +08:00
yourchanges 2e0d0046c4 Move the redirect url to volume server's PublicUrl (reverted from commit 2df72001b2) 2015-02-12 18:35:29 +08:00
yourchanges 2df72001b2 Move the redirect url to volume server's PublicUrl 2015-02-12 18:15:36 +08:00
Chris Lu f7998f8652 merge conflicts 2015-02-07 15:35:28 -08:00
yanyiwu 7bfa93a283 use sync.RWMutex when masterNode changes 2015-02-04 18:05:18 +08:00
chrislusf e381356af9 change CLI option from publicIp to publicUrl
Now the publicUrl is free style text.
2015-02-02 15:51:25 -08:00
chrislusf cc724305b6 Using Url instead of PublicUrl for volume server
Originally there are only url(ip + port), and publicUrl. Because ip was
used to listen for http service, it has less flexibility and volume
server has to be accessed via publicUrl.

Recently we added ip.bind, for binding http service.

With this change, url can be used to connect to volume servers. And
publicUrl becomes a free style piece of url information, it does not
even need to be unique.
2015-02-02 10:16:50 -08:00
chrislusf 0e23ee4dce Update volume server's master node when masters change. 2015-01-31 12:47:04 -08:00
Chris Lu 7b4a53b2c1 Add optional admin port to volume server, to seperate admin operations from normal file operations. 2015-01-18 17:03:38 -08:00
Chris Lu 41bd5179f3 Resolve Conflicts 2015-01-14 09:56:13 -08:00
Chris Lu af416189f1 Cleanup error printing. 2015-01-13 17:04:41 -08:00
Lei Xue 029e3a3822 fix some typos 2015-01-13 18:46:56 +08:00
Chris Lu 5afdc469a3 Separate into admin and public mux for volume servers. 2015-01-13 00:45:26 -08:00
Chris Lu 8f72a1965f Fix go vet warnings. 2015-01-12 21:20:11 -08:00
yanyiwu 543f5af5af add w.Write for FilerServer HTTP response 2015-01-09 19:24:49 +08:00
yanyiwu fe91fd00ad fix bug: 'http: multiple response.WriteHeader calls' 2015-01-08 19:04:10 +08:00
Chris Lu 5b5d6341e5 Set http status after modifying response headers. 2015-01-08 00:19:32 -08:00
Chris Lu e4531fc1e6 Add Redis support for Distributed Filer store. 2015-01-06 20:15:13 -08:00
Chris Lu d77f3120c3 Adjust function name. 2015-01-06 19:34:11 -08:00
yanyiwu 0b192917f8 fix bug about the collection in volume is wrong when curl -F "file=@/tmp/test.jpg" "localhost:9333/submit?collection=picture" 2015-01-06 19:31:26 +08:00
Chris Lu 49784d7f28 Add support for distributed filer metadata store. 2015-01-05 23:03:27 -08:00
Chris Lu 165734ce11 Refactoring for supporing cassandra as filer meta data store 2015-01-05 14:58:30 -08:00
Chris Lu a3e4145e8a refactoring for later security changes 2015-01-05 14:20:04 -08:00
yanyiwu 5b7628cf08 use github.com/golang/protobuf/proto instead of code.google.com/p/goprotobuf/proto 2014-12-26 16:59:53 +08:00
Brian McQueen d56c748fa8 switch it back to chris's repo 2014-12-14 00:35:26 -08:00
Brian McQueen c0dfdf4392 switch to my forked repo 2014-12-14 00:20:21 -08:00
Brian McQueen a3583e4e7c Merge branch 'master' of https://github.com/chrislusf/weed-fs 2014-12-14 00:13:51 -08:00
chrislusf e431d4121e Add optional http redirect for filer GET requests. 2014-12-08 20:34:27 -08:00
chrislusf ba972694c7 Add filer option to redirect instead of proxying to volume server on file GET requests. 2014-12-08 20:27:26 -08:00
Chris Lu 7ce628bf09 Clean raft configurations if "peers" option is set. 2014-10-27 01:09:45 -07:00
Chris Lu 179d36ba0e formatting code by: goimports -w=true . 2014-10-26 11:34:55 -07:00
Chris Lu f527fc1d5e adjust visibility 2014-10-25 23:45:31 -07:00
Chris Lu 30bcda7136 fix typo 2014-10-25 18:10:32 -07:00
bmcquee bd664def45 Revert "fix func name HasWriableVolume"
This reverts commit bff7b71389.
2014-10-19 23:08:01 -07:00
bmcquee 02ae8b98a5 Revert "change wriable to writeable"
This reverts commit 626b896448.
2014-10-19 23:07:58 -07:00
bmcquee 626b896448 change wriable to writeable 2014-10-19 23:01:15 -07:00
bmcquee 7ca10d8dcf add another logging line verbosity 2 2014-10-19 20:03:00 -07:00
bmcquee bff7b71389 fix func name HasWriableVolume 2014-10-19 08:51:07 -07:00
wyy 4126280d55 use github.com/chrislusf instead of github.com/aszxqw 2014-09-25 16:57:22 +08:00
wyy 1cd19447e3 use github.com/aszxqw instead of code.google.com/p 2014-09-25 00:47:09 +08:00
Chris Lu b9aee2defb add TTL support
The volume TTL and file TTL are not necessarily the same. as long as
file TTL is smaller than volume TTL, it'll be fine.

volume TTL is used when assigning file id, e.g.
http://.../dir/assign?ttl=3h

file TTL is used when uploading
2014-09-20 12:38:59 -07:00
Chris Lu 57a4549d86 wrap etag value with double quotes 2014-08-26 10:15:12 -07:00
Chris Lu ce4acecaa8 Fix filer proxing http status code
Double quote etag value.
2014-08-25 12:02:04 -07:00
Chris Lu df78466a12 remove uploading stated from volume server. 2014-08-05 18:14:12 -07:00
Chris Lu 530927db64 Add Etag support 2014-07-22 00:24:50 -07:00
Chris Lu 5d88cec2df 1. pass through http response headers
2. set http status 201 for creating files
2014-07-21 14:25:51 -07:00
Chris Lu a3fb644d86 fix wrong error printing that caused panic 2014-07-21 13:42:15 -07:00
Chris Lu a0b2582a75 comments change 2014-07-20 23:17:29 -07:00
Chris Lu 77fd5ecd98 Add /admin/mv to move a file or a folder 2014-07-20 23:12:49 -07:00
Chris Lu 38231b6891 return image size when client image processing 2014-07-05 00:43:41 -07:00
Chris Lu cb28c26398 Setting application/json for json result.
Setting application/javascript for jsonp result.
2014-06-13 18:16:03 -07:00
Chris Lu d7f6af09e6 Better guessing mime type with octstream 2014-06-08 21:02:20 -07:00
Chris Lu e60af7b82e Add partial content request support. 2014-05-26 21:15:05 -07:00
Chris Lu 625f880b15 Adjust "weed server" parameters. 2014-05-26 17:34:54 -07:00
Chris Lu 34e03e7cf6 iphone usually has upper cased .JPG extension
refactor
2014-05-15 01:56:08 -07:00
Chris Lu dcd12576c6 Add option to auto fix jpg orientation 2014-05-15 01:08:00 -07:00
Chris Lu f7d6909b6f 1. refactor, move image resizing to its own package
2. make code compile
2014-05-14 23:44:19 -07:00
Chris Lu dc24bad791 releasing 0.58 to handle control+c interrupts.
compilable now. but FUSE mount is not working.
2014-05-13 11:25:48 -07:00
Chris Lu 982aaa41b9 Add control+c or INT handling 2014-05-13 00:03:10 -07:00
Chris Lu 68ceea3f8d support file names with a comma inside. 2014-05-12 22:59:00 -07:00
Chris Lu 1c30a780a7 fix image serving performance problem introduced in last release. 2014-05-07 12:52:42 -07:00
Chris Lu 87b98711f7 A hidden feature: dynamically resize image.
Adding width=xxx or height=xxx, or both, can dynamically resize a
gif,jpg,png. But the performance is bad. So, not recommending, but you
can use it if you insist. :)
2014-04-25 22:28:01 -07:00
Chris Lu d344e87de0 Adjust command line options.
1. switch to use -publicIp instead of -publicUrl
2. -ip can be empty. It will listen to all available interfaces.
3. For "weed master", these options are changed:
  -masterPort => -master.port
  -peers => -master.peers
  -mdir => -master.dir
  -volumeSizeLimitMB => -master.volumeSizeLimitMB
  -conf => -master.conf
  -defaultReplicaPlacement => -master.defaultReplicaPlacement
  -port => -volume.port
  -max => -volume.max
2014-04-25 22:09:42 -07:00
Chris Lu 1818a2a2da Change to protocol buffer for volume-join-masster message
Reduced size to about 1/5 of the previous json format message
2014-04-21 02:11:10 -07:00
Chris Lu 637469e656 log the volume server connected to which master server 2014-04-20 23:28:05 -07:00
Chris Lu 83c0c9843d Add option to recursively delete a folder. 2014-04-17 22:33:21 -07:00
Chris Lu 51939efeac 1. volume server now sends master server its max file key, so that
master server does not need to store the sequence on disk any more
2. fix raft server's failure to init cluster during bootstrapping
2014-04-16 23:43:27 -07:00
Chris Lu 9653a54766 added typed join result 2014-04-16 17:29:58 -07:00
Chris Lu da0480ad72 adjust to upgraded Raft library 2014-04-15 17:56:47 -07:00
Chris Lu 4ecf5956d7 Add types to uploading 2014-04-15 10:01:13 -07:00
Chris Lu 7ad6cd35e8 Use type ClusterStatusResult for writing and reading results 2014-04-15 09:30:08 -07:00
Chris Lu 68021c6fc3 Use type AssignResult when writing and reading result. 2014-04-15 09:20:04 -07:00
Chris Lu cbc5a76e80 Added batch file deleting. 2014-04-15 09:09:40 -07:00
Chris Lu 56a3d30e75 batch delete on volume servers 2014-04-14 01:00:09 -07:00
Chris Lu 460923f094 use fileId as the official name for the file identifier 2014-04-14 00:28:48 -07:00
Chris Lu 85894160c6 refactor: split master handler into 2 files 2014-04-14 00:23:52 -07:00
Chris Lu 7337c29b90 refactor: split volume handlers into 3 files 2014-04-14 00:13:18 -07:00
Chris Lu 5878f7c3a1 refactor lookup result types into package "operation" 2014-04-13 23:56:15 -07:00
Chris Lu f20ef922fd 1. add batched volume lookup handler
2. working-in-progress batch delete
2014-04-13 23:41:34 -07:00
Chris Lu f7f582ec86 1. refactoring, merge "replication" logic into "topology" package
2. when growing volumes, additional preferred "rack" and "dataNode"
paraemters are also provided. Previously only "dataCenter" paraemter is
provided.
2014-04-13 01:29:52 -07:00
Chris Lu 008aee0dc1 Add retrying logic to wait for other peers during cluster bootstrapping. 2014-04-11 16:23:58 -07:00
Chris Lu 5f4dc11409 1. root dir has id of 0
2. only delete empty folders
3. correct listing files under a folder
2014-04-09 21:01:48 -07:00
Chris Lu abde40377c a correct implementation of filer 2014-04-09 09:44:58 -07:00
Chris Lu 67be8a5af8 adding filer!!! 2014-03-30 20:57:25 -07:00
Chris Lu d6aa6239de fix to avoid empty sub directory 2014-03-30 13:32:24 -07:00
Chris Lu 51fafdb525 more robust filer 2014-03-30 13:26:44 -07:00
Chris Lu 2861275fb6 working filer server! 2014-03-30 11:28:04 -07:00