diff --git a/.mailmap b/.mailmap index 6827a2d4a3..b640039bfb 100644 --- a/.mailmap +++ b/.mailmap @@ -93,3 +93,11 @@ Richard Hawkins Ondrej Novy Peter Lisak Ke Liang +Daisuke Morita +Andreas Jaeger +Hugo Kuo +Gage Hugo +Oshrit Feder +Larry Rensing +Ben Keller +Chaozhe Chen diff --git a/AUTHORS b/AUTHORS index f3225dff2a..f299597cdb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,7 +13,7 @@ Jay Payne (letterj@gmail.com) Will Reese (wreese@gmail.com) Chuck Thier (cthier@gmail.com) -CORE Emeritus +Core Emeritus ------------- Chmouel Boudjnah (chmouel@enovance.com) Florian Hines (syn@ronin.io) @@ -33,6 +33,7 @@ Joe Arnold (joe@swiftstack.com) Ionuț Arțăriși (iartarisi@suse.cz) Minwoo Bae (minwoob@us.ibm.com) Bob Ball (bob.ball@citrix.com) +Christopher Bartz (bartz@dkrz.de) Christian Berendt (berendt@b1-systems.de) Luis de Bethencourt (luis@debethencourt.com) Keshava Bharadwaj (kb.sankethi@gmail.com) @@ -54,6 +55,7 @@ Emmanuel Cazenave (contact@emcaz.fr) Mahati Chamarthy (mahati.chamarthy@gmail.com) Zap Chang (zapchang@gmail.com) François Charlier (francois.charlier@enovance.com) +Chaozhe Chen (chaozhe.chen@easystack.cn) Ray Chen (oldsharp@163.com) Harshit Chitalia (harshit@acelio.com) Brian Cline (bcline@softlayer.com) @@ -61,6 +63,7 @@ Alistair Coles (alistair.coles@hpe.com) Clément Contini (ccontini@cloudops.com) Brian Curtin (brian.curtin@rackspace.com) Thiago da Silva (thiago@redhat.com) +dangming (dangming@unitedstack.com) Julien Danjou (julien@danjou.info) Paul Dardeau (paul.dardeau@intel.com) Zack M. Davis (zdavis@swiftstack.com) @@ -86,9 +89,11 @@ Filippo Giunchedi (fgiunchedi@wikimedia.org) Mark Gius (launchpad@markgius.com) David Goetz (david.goetz@rackspace.com) Tushar Gohad (tushar.gohad@intel.com) +Thomas Goirand (thomas@goirand.fr) Jonathan Gonzalez V (jonathan.abdiel@gmail.com) Joe Gordon (jogo@cloudscaling.com) ChangBo Guo(gcb) (eric.guo@easystack.cn) +Ankur Gupta (ankur.gupta@intel.com) David Hadas (davidh@il.ibm.com) Andrew Hale (andy@wwwdata.eu) Soren Hansen (soren@linux2go.dk) @@ -106,6 +111,7 @@ Charles Hsu (charles0126@gmail.com) Joanna H. Huang (joanna.huitzu.huang@gmail.com) Kun Huang (gareth@unitedstack.com) Bill Huber (wbhuber@us.ibm.com) +Gage Hugo (gh159m@att.com) Matthieu Huin (mhu@enovance.com) Hodong Hwang (hodong.hwang@kt.com) Motonobu Ichimura (motonobu@gmail.com) @@ -127,6 +133,7 @@ Ilya Kharin (ikharin@mirantis.com) Dae S. Kim (dae@velatum.com) Nathan Kinder (nkinder@redhat.com) Eugene Kirpichov (ekirpichov@gmail.com) +Ben Keller (bjkeller@us.ibm.com) Leah Klearman (lklrmn@gmail.com) Martin Kletzander (mkletzan@redhat.com) Jaivish Kothari (jaivish.kothari@nectechnologies.in) @@ -134,6 +141,7 @@ Steve Kowalik (steven@wedontsleep.org) Sergey Kraynev (skraynev@mirantis.com) Sushil Kumar (sushil.kumar2@globallogic.com) Madhuri Kumari (madhuri.rai07@gmail.com) +Hugo Kuo (tonytkdk@gmail.com) Steven Lang (Steven.Lang@hgst.com) Gonéri Le Bouder (goneri.lebouder@enovance.com) Romain Le Disez (romain.ledisez@ovh.net) @@ -143,6 +151,8 @@ Thomas Leaman (thomas.leaman@hp.com) Eohyung Lee (liquidnuker@gmail.com) Zhao Lei (zhaolei@cn.fujitsu.com) Jamie Lennox (jlennox@redhat.com) +Cheng Li (shcli@cn.ibm.com) +Mingyu Li (li.mingyu@99cloud.net) Tong Li (litong01@us.ibm.com) Ke Liang (ke.liang@easystack.cn) Peter Lisak (peter.lisak@firma.seznam.cz) @@ -161,6 +171,7 @@ Juan J. Martinez (juan@memset.com) Marcelo Martins (btorch@gmail.com) Nakagawa Masaaki (nakagawamsa@nttdata.co.jp) Dolph Mathews (dolph.mathews@gmail.com) +Tomas Matlocha (tomas.matlocha@firma.seznam.cz) Kenichiro Matsuda (matsuda_kenichi@jp.fujitsu.com) Michael Matur (michael.matur@gmail.com) Donagh McCabe (donagh.mccabe@hpe.com) @@ -171,7 +182,7 @@ Samuel Merritt (sam@swiftstack.com) Stephen Milton (milton@isomedia.com) Jola Mirecka (jola.mirecka@hp.com) Kazuhiro Miyahara (miyahara.kazuhiro@lab.ntt.co.jp) -Daisuke Morita (morita.daisuke@lab.ntt.co.jp) +Daisuke Morita (morita.daisuke@ntti3.com) Dirk Mueller (dirk@dmllr.de) Takashi Natsume (natsume.takashi@lab.ntt.co.jp) Russ Nelson (russ@crynwr.com) @@ -198,11 +209,13 @@ Sivasathurappan Radhakrishnan (siva.radhakrishnan@intel.com) Sarvesh Ranjan (saranjan@cisco.com) Falk Reimann (falk.reimann@sap.com) Brian Reitz (brian.reitz@oracle.com) +Qiaowei Ren (qiaowei.ren@intel.com) Felipe Reyes (freyes@tty.cl) Janie Richling (jrichli@us.ibm.com) Matt Riedemann (mriedem@us.ibm.com) Li Riqiang (lrqrun@gmail.com) Rafael Rivero (rafael@cloudscaling.com) +Larry Rensing (lr699s@att.com) Victor Rodionov (victor.rodionov@nexenta.com) Eran Rom (eranr@il.ibm.com) Aaron Rosen (arosen@nicira.com) @@ -211,6 +224,7 @@ Hamdi Roumani (roumani@ca.ibm.com) Shilla Saebi (shilla.saebi@gmail.com) Atsushi Sakai (sakaia@jp.fujitsu.com) Cristian A Sanchez (cristian.a.sanchez@intel.com) +Olga Saprycheva (osapryc@us.ibm.com) Christian Schwede (cschwede@redhat.com) Mark Seger (mark.seger@hpe.com) Azhagu Selvan SP (tamizhgeek@gmail.com) @@ -223,6 +237,7 @@ Michael Shuler (mshuler@gmail.com) David Moreau Simard (dmsimard@iweb.com) Scott Simpson (sasimpson@gmail.com) Pradeep Kumar Singh (pradeep.singh@nectechnologies.in) +Sarafraj Singh (Sarafraj.Singh@intel.com) Liu Siqi (meizu647@gmail.com) Adrian Smith (adrian_f_smith@dell.com) Jon Snitow (otherjon@swiftstack.com) @@ -259,6 +274,7 @@ Yaguang Wang (yaguang.wang@intel.com) Chris Wedgwood (cw@f00f.org) Conrad Weidenkeller (conrad.weidenkeller@rackspace.com) Doug Weimer (dweimer@gmail.com) +Andrew Welleck (awellec@us.ibm.com) Wu Wenxiang (wu.wenxiang@99cloud.net) Cory Wright (cory.wright@rackspace.com) Ye Jia Xu (xyj.asmy@gmail.com) diff --git a/CHANGELOG b/CHANGELOG index c1b335d548..799382b38e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,151 @@ +swift (2.7.0, OpenStack Mitaka) + + * Bump PyECLib requirement to >= 1.2.0 + + * Update container on fast-POST + + "Fast-POST" is the mode where `object_post_as_copy` is set to + `False` in the proxy server config. This mode now allows for + fast, efficient updates of metadata without needing to fully + recopy the contents of the object. While the default still is + `object_post_as_copy` as True, the plan is to change the default + to False and then deprecate post-as-copy functionality in later + releases. Fast-POST now supports container-sync functionality. + + * Add concurrent reads option to proxy. + + This change adds 2 new parameters to enable and control concurrent + GETs in Swift, these are `concurrent_gets` and `concurrency_timeout`. + + `concurrent_gets` allows you to turn on or off concurrent + GETs; when on, it will set the GET/HEAD concurrency to the + replica count. And in the case of EC HEADs it will set it to + ndata. The proxy will then serve only the first valid source to + respond. This applies to all account, container, and replicated + object GETs and HEADs. For EC only HEAD requests are affected. + The default for `concurrent_gets` is off. + + `concurrency_timeout` is related to `concurrent_gets` and is + the amount of time to wait before firing the next thread. A + value of 0 will fire at the same time (fully concurrent), but + setting another value will stagger the firing allowing you the + ability to give a node a short chance to respond before firing + the next. This value is a float and should be somewhere between + 0 and `node_timeout`. The default is `conn_timeout`, meaning by + default it will stagger the firing. + + * Added an operational procedures guide to the docs. It can be + found at http://swift.openstack.org/ops_runbook/index.html and + includes information on detecting and handling day-to-day + operational issues in a Swift cluster. + + * Make `handoffs_first` a more useful mode for the object replicator. + + The `handoffs_first` replication mode is used during periods of + problematic cluster behavior (e.g. full disks) when replication + needs to quickly drain partitions from a handoff node and move + them to a primary node. + + Previously, `handoffs_first` would sort that handoff work before + "normal" replication jobs, but the normal replication work could + take quite some time and result in handoffs not being drained + quickly enough. + + In order to focus on getting handoff partitions off the node + `handoffs_first` mode will now abort the current replication + sweep before attempting any primary suffix syncing if any of the + handoff partitions were not removed for any reason - and start + over with replication of handoffs jobs as the highest priority. + + Note that `handoffs_first` being enabled will emit a warning on + start up, even if no handoff jobs fail, because of the negative + impact it can have during normal operations by dog-piling on a + node that was temporarily unavailable. + + * By default, inbound `X-Timestamp` headers are now disallowed + (except when in an authorized container-sync request). This + header is useful for allowing data migration from other storage + systems to Swift and keeping the original timestamp of the data. + If you have this migration use case (or any other requirement on + allowing the clients to set an object's timestamp), set the + `shunt_inbound_x_timestamp` config variable to False in the + gatekeeper middleware config section of the proxy server config. + + * Requesting a SLO manifest file with the query parameters + "?multipart-manifest=get&format=raw" will return the contents of + the manifest in the format as was originally sent by the client. + The "format=raw" is new. + + * Static web page listings can now be rendered with a custom + label. By default listings are rendered with a label of: + "Listing of /v1///". This change adds + a new custom metadata key/value pair + `X-Container-Meta-Web-Listings-Label: My Label` that when set, + will cause the following: "Listing of My Label/" to be + rendered instead. + + * Previously, static large objects (SLOs) had a minimum segment + size (default to 1MiB). This limit has been removed, but small + segments will be ratelimited. The config parameter + `rate_limit_under_size` controls the definition of "small" + segments (1MiB by default), and `rate_limit_segments_per_sec` + controls how many segments per second can be served (default is 1). + With the default values, the effective behavior is identical to the + previous behavior when serving SLOs. + + * Container sync has been improved to perform a HEAD on the remote + side of the sync for each object being synced. If the object + exists on the remote side, container-sync will no longer + transfer the object, thus significantly lowering the network + requirements to use the feature. + + * The object auditor will now clean up any old, stale rsync temp + files that it finds. These rsync temp files are left if the + rsync process fails without completing a full transfer of an + object. Since these files can be large, the temp files may end + up filling a disk. The new auditor functionality will reap these + rsync temp files if they are old. The new object-auditor config + variable `rsync_tempfile_timeout` is the number of seconds old a + tempfile must be before it is reaped. By default, this variable + is set to "auto" or the rsync_timeout plus 900 seconds (falling + back to a value of 1 day). + + * The Erasure Code reconstruction process has been made more + efficient by not syncing data files when only the durable commit + file is missing. + + * Fixed a bug where 304 and 416 response may not have the right + Etag and Accept-Ranges headers when the object is stored in an + Erasure Coded policy. + + * Versioned writes now correctly stores the date of previous versions + using GMT instead of local time. + + * The deprecated Keystone middleware option is_admin has been removed. + + * Fixed log format in object auditor. + + * The zero-byte mode (ZBF) of the object auditor will now properly + observe the `--once` option. + + * Swift keeps track, internally, of "dirty" parts of the partition + keyspace with a "hashes.pkl" file. Operations on this file no + longer require a read-modify-write cycle and use a new + "hashes.invalid" file to track dirty partitions. This change + will improve end-user performance for PUT and DELETE operations. + + * The object replicator's succeeded and failed counts are now logged. + + * `swift-recon` can now query hosts by storage policy. + + * The log_statsd_host value can now be an IPv6 address or a hostname + which only resolves to an IPv6 address. + + * Erasure coded fragments now properly call fallocate to reserve disk + space before being written. + + * Various other minor bug fixes and improvements. + swift (2.6.0) * Dependency changes