You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

275 lines
8.8 KiB

10 years ago
  1. Change List
  2. ===================================
  3. Introduction
  4. ############
  5. This file contains list of recent changes, important features, usage changes, data format changes, etc. Do read this if you upgrade.
  6. v0.67
  7. #####
  8. 1. Increase "weed benchmark" performance to pump in more data. The bottleneck is on the client side. Duh...
  9. v0.65
  10. #####
  11. 1. Reset the cluster configuration if "-peers" is not empty.
  12. v0.64
  13. #####
  14. 1. Add TTL support!
  15. 1. filer: resolve directory log file error, avoid possible race condition
  16. v0.63
  17. #####
  18. 1. Compiled with Go 1.3.1 to fix a rare crashing issue.
  19. v0.62
  20. #####
  21. 1. Add support for Etag.
  22. 2. Add /admin/mv to move a file or a folder.
  23. 3. Add client Go API to pre-process the images.
  24. v0.61
  25. #####
  26. 1. Reduce memory requirements for "weed fix"
  27. 2. Guess mime type by file name extensions when stored mime type is "application/octstream"
  28. 3. Added simple volume id lookup caching expiring by time.
  29. v0.60
  30. #####
  31. Fix file missing error caused by .idx file overwriting. The problem shows up if the weed volume server is restarted after 2 times. But the actual .idx file may have already been overwritten on second restart.
  32. To fix this issue, please run "weed fix -dir=... -volumeId=..." to re-generate the .idx file.
  33. v0.59
  34. #####
  35. 1. Add option to automatically fix jpeg picture orientation.
  36. 2. Add volume id lookup caching
  37. 3. Support Partial Content and Range Requests. http status code == 206.
  38. v0.57
  39. #####
  40. Add hidden dynamic image resizing feature
  41. Add an hidden feature: For images, jpg/png/gif, if you specify append these url parameters, &width=xxx or &height=xxx or both, the image will be dynamically resized. However, resizing the image would cause high CPU and memory usage. Not recommended unless special use cases. So this would not be documented anywhere else.
  42. v0.56 Major Command line options change
  43. #####
  44. Adjust command line options.
  45. 1. switch to use -publicIp instead of -publicUrl
  46. 2. -ip can be empty. It will listen to all available interfaces.
  47. 3. For "weed server", these options are changed:
  48. - -masterPort => -master.port
  49. - -peers => -master.peers
  50. - -mdir => -master.dir
  51. - -volumeSizeLimitMB => -master.volumeSizeLimitMB
  52. - -conf => -master.conf
  53. - -defaultReplicaPlacement => -master.defaultReplicaPlacement
  54. - -port => -volume.port
  55. - -max => -volume.max
  56. v0.55 Recursive folder deletion for Filer
  57. #####
  58. Now folders with sub folders or files can be deleted recursively.
  59. Also, for filer, avoid showing files under the first created directory when listing the root directory.
  60. v0.54 Misc improvements
  61. #####
  62. No need to persist metadata for master sequence number generation. This shall avoid possible issues where file are lost due to duplicated sequence number generated in rare cases.
  63. More robust handing of "peers" in master node clustering mode.
  64. Added logging instructions.
  65. v0.53 Miscellaneous improvements
  66. #####
  67. Added retry logic to wait for cluster peers during cluster bootstrapping. Previously the cluster bootstrapping is ordered. This make it tricky to deploy automatically and repeatedly. The fix make the commands repeatable.
  68. Also, when growing volumes, additional preferred "rack" and "dataNode" parameters are also provided, works together with existing "dataCenter" parameter.
  69. Fix important bug where settings for non-"000" replications are read back wrong, if volume server is restarted.
  70. v0.52 Added "filer" server
  71. #####
  72. A "weed filer" server is added, to provide more "common" file storage. Currently the fullFileName-to-fileId mapping is stored with an efficient embedded leveldb. So it's not linearly scalable yet. But it can handle LOTS of files.
  73. .. code-block:: bash
  74. //POST a file and read it back
  75. curl -F "filename=@README.md" "http://localhost:8888/path/to/sources/"
  76. curl "http://localhost:8888/path/to/sources/README.md"
  77. //POST a file with a new name and read it back
  78. curl -F "filename=@Makefile" "http://localhost:8888/path/to/sources/new_name"
  79. curl "http://localhost:8888/path/to/sources/new_name"
  80. //list sub folders and files
  81. curl "http://localhost:8888/path/to/sources/?pretty=y"
  82. v0.51 Idle Timeout
  83. #####
  84. Previously the timeout setting is "-readTimeout", which is the time limit of the whole http connection. This is inconvenient for large files or for slow internet connections. Now this option is replaced with "-idleTimeout", and default to 10 seconds. Ideally, you should not need to tweak it based on your use case.
  85. v0.50 Improved Locking
  86. #####
  87. 1. All read operation switched to thread-safe pread, no read locks now.
  88. 2. When vacuuming large volumes, a lock was preventing heartbeats to master node. This is fixed now.
  89. 3. Fix volume compaction error for collections.
  90. v0.49 Bug Fixes
  91. #####
  92. With the new benchmark tool to bombard the system, many bugs are found and fixed, especially on clustering, http connection reuse.
  93. v0.48 added benchmark command!
  94. #####
  95. Benchmark! Enough said.
  96. v0.47 Improving replication
  97. #####
  98. Support more replication types.
  99. v0.46 Adding failover master server
  100. #####
  101. Automatically fail over master servers!
  102. v0.46 Add "weed server" command
  103. #####
  104. Now you can start one master server and one volume server in just one command!
  105. .. code-block:: bash
  106. weed server
  107. v0.45 Add support for extra large file
  108. #####
  109. For extra large file, this example will split the file into 100MB chunks.
  110. .. code-block:: bash
  111. weed upload -maxMB=100 the_file_name
  112. Also, Added "download" command, for simple files or chunked files.
  113. .. code-block:: bash
  114. weed download file_id [file_id3](file_id2)
  115. v0.34 Add support for multiple directories on volume server
  116. #####
  117. For volume server, add support for multiple folders and multiple max limit. For example:
  118. .. code-block:: bash
  119. weed volume -dir=folder1,folder2,folder3 -max=7,8,9
  120. v0.33 Add Nicer URL support
  121. #####
  122. For HTTP GET request
  123. .. code-block:: bash
  124. http://localhost:8080/3,01637037d6
  125. Can also be retrieved by
  126. .. code-block:: bash
  127. http://localhost:8080/3/01637037d6/my_preferred_name.jpg
  128. v0.32 Add support for Last-Modified header
  129. #####
  130. The last modified timestamp is stored with 5 additional bytes.
  131. Return http code 304 if the file is not modified.
  132. Also, the writing are more solid with the fix for issue#26.
  133. v0.31 Allocate File Key on specific data center
  134. #####
  135. Volume servers can start with a specific data center name.
  136. .. code-block:: bash
  137. weed volume -dir=/tmp/1 -port=8080 -dataCenter=dc1
  138. weed volume -dir=/tmp/2 -port=8081 -dataCenter=dc2
  139. Or the master server can determine the data center via volume server's IP address and settings in weed.conf file.
  140. Now when requesting a file key, an optional "dataCenter" parameter can limit the assigned volume to the specific data center. For example, this specif
  141. .. code-block:: bash
  142. http://localhost:9333/dir/assign?dataCenter=dc1
  143. v0.26 Storing File Name and Mime Type
  144. #####
  145. In order to keep one single disk read for each file, a new storage format is implemented to store: is gzipped or not, file name and mime type (used when downloading files), and possibly other future new attributes. The volumes with old storage format are treated as read only and deprecated.
  146. Also, you can pre-gzip and submit your file directly, for example, gzip "my.css" into "my.css.gz", and submit. In this case, "my.css" will be stored as the file name. This should save some transmission time, and allow you to force gzipped storage or customize the gzip compression level.
  147. v0.25 Adding reclaiming garbage spaces
  148. Garbage spaces are reclaimed by an automatic compacting process. Garbage spaces are generated when updating or deleting files. If they exceed a configurable threshold, 0.3 by default (meaning 30% of the used disk space is garbage), the volume will be marked as readonly, compacted and garbage spaces are reclaimed, and then marked as writable.
  149. v0.19 Adding rack and data center aware replication
  150. #####
  151. Now when you have one rack, or multiple racks, or multiple data centers, you can choose your own replication strategy.
  152. v0.18 Detect disconnected volume servers
  153. #####
  154. The disconnected volume servers would not be assigned when generating the file keys. Volume servers by default send a heartbeat to master server every 5~10 seconds. Master thinks the volume server is disconnected after 5 times of the heartbeat interval, or 25 seconds by default.
  155. v0.16 Change to single executable file to do everything
  156. #####
  157. If you are using v0.15 or earlier, you would use
  158. .. code-block:: bash
  159. >weedvolume -dir="/tmp" -volumes=0-4 -mserver="localhost:9333" -port=8080 -publicUrl="localhost:8080"
  160. With v0.16 or later, you would need to do this in stead:
  161. .. code-block:: bash
  162. >weed volume -dir="/tmp" -volumes=0-4 -mserver="localhost:9333" -port=8080 -publicUrl="localhost:8080"
  163. And more new commands, in addition to "server","volume","fix", etc, will be added.
  164. This provides a simple deliverable file, and the file size is much smaller since Go language statically compile the commands. Combining commands into one file would avoid lots of duplication.