diff --git a/.mailmap b/.mailmap index becc2207a1..718565fb23 100644 --- a/.mailmap +++ b/.mailmap @@ -83,7 +83,8 @@ Atsushi Sakai Takashi Natsume Nakagawa Masaaki nakagawamsa Romain Le Disez Romain LE DISEZ -Donagh McCabe +Donagh McCabe +Donagh McCabe Eamonn O'Toole Gerry Drudy Mark Seger @@ -114,4 +115,5 @@ Cheng Li Nandini Tata Flavio Percoco Tin Lam -Hisashi Osanai +Hisashi Osanai +Bryan Keller diff --git a/AUTHORS b/AUTHORS index 637021b075..809077082e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -72,6 +72,7 @@ ChangBo Guo(gcb) (eric.guo@easystack.cn) Chaozhe Chen (chaozhe.chen@easystack.cn) Charles Hsu (charles0126@gmail.com) Cheng Li (shcli@cn.ibm.com) +Chmouel Boudjnah (chmouel@enovance.com) Chris Wedgwood (cw@f00f.org) Christian Berendt (berendt@b1-systems.de) Christian Hugo (hugo.christian@web.de) @@ -110,6 +111,7 @@ Dirk Mueller (dirk@dmllr.de) Dmitriy Ukhlov (dukhlov@mirantis.com) Dmitry Ukov (dukov@mirantis.com) Dolph Mathews (dolph.mathews@gmail.com) +Donagh McCabe (donagh.mccabe@gmail.com) Doron Chen (cdoron@il.ibm.com) Doug Hellmann (doug.hellmann@dreamhost.com) Doug Weimer (dweimer@gmail.com) @@ -133,6 +135,7 @@ Ferenc Horváth (hferenc@inf.u-szeged.hu) Filippo Giunchedi (fgiunchedi@wikimedia.org) Flavio Percoco (flaper87@gmail.com) Florent Flament (florent.flament-ext@cloudwatt.com) +Florian Hines (syn@ronin.io) François Charlier (francois.charlier@enovance.com) Fujita Tomonori (fujita.tomonori@lab.ntt.co.jp) Félix Cantournet (felix.cantournet@cloudwatt.com) @@ -154,6 +157,7 @@ Hanxi Liu (hanxi.liu@easystack.cn) Harshada Mangesh Kakad (harshadak@metsi.co.uk) Harshit Chitalia (harshit@acelio.com) hgangwx (hgangwx@cn.ibm.com) +Hisashi Osanai (osanai.hisashi@gmail.com) Hodong Hwang (hodong.hwang@kt.com) Hou Ming Wang (houming.wang@easystack.cn) houweichao (houwch@gohighsec.com) @@ -263,6 +267,7 @@ Pawel Palucki (pawel.palucki@gmail.com) Pearl Yajing Tan (pearl.y.tan@seagate.com) Pete Zaitcev (zaitcev@kotori.zaitcev.us) Peter Lisak (peter.lisak@firma.seznam.cz) +Peter Portante (peter.portante@redhat.com) Petr Kovar (pkovar@redhat.com) Pradeep Kumar Singh (pradeep.singh@nectechnologies.in) Prashanth Pai (ppai@redhat.com) @@ -277,6 +282,7 @@ Richard Hawkins (richard.hawkins@rackspace.com) Romain Le Disez (romain.ledisez@ovh.net) Russ Nelson (russ@crynwr.com) Russell Bryant (rbryant@redhat.com) +Sachin Patil (psachin@redhat.com) Samuel Merritt (sam@swiftstack.com) Sarafraj Singh (Sarafraj.Singh@intel.com) Sarvesh Ranjan (saranjan@cisco.com) @@ -312,6 +318,7 @@ Tin Lam (tinlam@gmail.com) Tobias Stevenson (tstevenson@vbridges.com) Tom Fifield (tom@openstack.org) Tomas Matlocha (tomas.matlocha@firma.seznam.cz) +tone-zhang (tone.zhang@linaro.org) Tong Li (litong01@us.ibm.com) Travis McPeak (tmcpeak@us.ibm.com) Tushar Gohad (tushar.gohad@intel.com) @@ -329,6 +336,7 @@ Ye Jia Xu (xyj.asmy@gmail.com) Yee (mail.zhang.yee@gmail.com) Yu Yafei (yu.yafei@zte.com.cn) Yuan Zhou (yuan.zhou@intel.com) +yuhui_inspur (yuhui@inspur.com) Yummy Bian (yummy.bian@gmail.com) Yuriy Taraday (yorik.sar@gmail.com) Yushiro FURUKAWA (y.furukawa_2@jp.fujitsu.com) diff --git a/CHANGELOG b/CHANGELOG index 2438ec8ab4..6b7f2e0d23 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,89 @@ +swift (2.13.0, OpenStack Ocata) + + * Improvements in key parts of the consistency engine + + - Improved performance by eliminating an unneeded directory + structure hash. + + - Optimized the common case for hashing filesystem trees, thus + eliminating a lot of extraneous disk I/O. + + - Updated the `hashes.pkl` file format to include timestamp information + for race detection. Also simplified hashing logic to prevent race + conditions and optimize for the common case. + + - The erasure code reconstructor will now shuffle work jobs across all + disks instead of going disk-by-disk. This eliminates single-disk I/O + contention and allows continued scaling as concurrency is increased. + + - Erasure code reconstruction handles moving data from handoff nodes + better. Instead of moving the data to another handoff, it waits + until it can be moved to a primary node. + + Upgrade Impact: If you upgrade and roll back, you must delete all + `hashes.pkl` files. + + * If using erasure coding with ISA-L in rs_vand mode and 5 or more parity + fragments, Swift will emit a warning. This is a configuration that is + known to harm data durability. In a future release, this warning will be + upgraded to an error unless the policy is marked as deprecated. All data + in an erasure code storage policy using isa_l_rs_vand with 5 or more + parity should be migrated as soon as possible. Please see + https://bugs.launchpad.net/swift/+bug/1639691 for more information. + + * The erasure code reconstructor `handoffs_first` option has been + deprecated in favor of `handoffs_only`. `handoffs_only` is far more + useful, and just like `handoffs_first` mode in the replicator, it gives + the operator the option of forcing the consistency engine to focus + solely on revert (handoff) jobs, thus improving the speed of + rebalances. The `handoffs_only` behavior is somewhat consistent with + the replicator's `handoffs_first` option (any error on any handoff in + the replicator will make it essentially handoff only forever) but the + `handoff_only` option does what you want and is named correctly in the + reconstructor. + + * The default for `object_post_as_copy` has been changed to False. The + option is now deprecated and will be removed in a future release. If + your cluster is still running with post-as-copy enabled, please update + it to use the "fast-post" method. Future versions of Swift will not + support post-as-copy, and future features will not be supported under + post-as-copy. ("Fast-post" is where `object_post_as_copy` is false). + + * Temporary URLs now support one common form of ISO 8601 timestamps in + addition to Unix seconds-since-epoch timestamps. The ISO 8601 format + accepted is '%Y-%m-%dT%H:%M:%SZ'. This makes TempURLs more + user-friendly to produce and consume. + + * Listing containers in accounts with json or xml now includes a + `last_modified` time. This does not change any on-disk data, but simply + exposes the value to offer consistency with the object listings on + containers. + + * Fixed a bug where the ring builder would not allow removal of a device + when min_part_seconds_left was greater than zero. + + * PUT subrequests generated from a client-side COPY will now properly log + the SSC (server-side copy) Swift source field. See + https://docs.openstack.org/developer/swift/logs.html#swift-source for + more information. + + * Fixed a bug where an SLO download with a range request may have resulted + in a 5xx series response. + + * SLO manifest PUT requests can now be properly validated by sending an + ETag header of the md5 sum of the concatenated md5 sums of the + referenced segments. + + * Fixed the stats calculation in the erasure code reconstructor. + + * Rings with min_part_hours set to zero will now only move one partition + replica per rebalance, thus matching behavior when min_part_hours is + greater than zero. + + * I/O priority is now supported on AArch64 architecture. + + * Various other minor bug fixes and improvements. + swift (2.12.0) * Ring files now include byteorder information about the endian of diff --git a/releasenotes/notes/2_13_0_release-875e1fb1ef59f015.yaml b/releasenotes/notes/2_13_0_release-875e1fb1ef59f015.yaml new file mode 100644 index 0000000000..cd922910d7 --- /dev/null +++ b/releasenotes/notes/2_13_0_release-875e1fb1ef59f015.yaml @@ -0,0 +1,83 @@ +--- +features: + - > + Improved performance by eliminating an unneeded directory + structure hash. + - > + Optimized the common case for hashing filesystem trees, thus + eliminating a lot of extraneous disk I/O. + - > + Updated the `hashes.pkl` file format to include timestamp information + for race detection. Also simplified hashing logic to prevent race + conditions and optimize for the common case. + - > + The erasure code reconstructor will now shuffle work jobs across all + disks instead of going disk-by-disk. This eliminates single-disk I/O + contention and allows continued scaling as concurrency is increased. + - > + Erasure code reconstruction handles moving data from handoff nodes + better. Instead of moving the data to another handoff, it waits + until it can be moved to a primary node. + - > + Temporary URLs now support one common form of ISO 8601 timestamps in + addition to Unix seconds-since-epoch timestamps. The ISO 8601 format + accepted is '%Y-%m-%dT%H:%M:%SZ'. This makes TempURLs more + user-friendly to produce and consume. + - > + Listing containers in accounts with json or xml now includes a + `last_modified` time. This does not change any on-disk data, but simply + exposes the value to offer consistency with the object listings on + containers. + - I/O priority is now supported on AArch64 architecture. +upgrade: + - If you upgrade and roll back, you must delete all `hashes.pkl` files. +deprecations: + - > + If using erasure coding with ISA-L in rs_vand mode and 5 or more parity + fragments, Swift will emit a warning. This is a configuration that is + known to harm data durability. In a future release, this warning will be + upgraded to an error unless the policy is marked as deprecated. All data + in an erasure code storage policy using isa_l_rs_vand with 5 or more + parity should be migrated as soon as possible. Please see + https://bugs.launchpad.net/swift/+bug/1639691 for more information. + - > + The erasure code reconstructor `handoffs_first` option has been + deprecated in favor of `handoffs_only`. `handoffs_only` is far more + useful, and just like `handoffs_first` mode in the replicator, it gives + the operator the option of forcing the consistency engine to focus + solely on revert (handoff) jobs, thus improving the speed of + rebalances. The `handoffs_only` behavior is somewhat consistent with + the replicator's `handoffs_first` option (any error on any handoff in + the replicator will make it essentially handoff only forever) but the + `handoff_only` option does what you want and is named correctly in the + reconstructor. + - > + The default for `object_post_as_copy` has been changed to False. The + option is now deprecated and will be removed in a future release. If + your cluster is still running with post-as-copy enabled, please update + it to use the "fast-post" method. Future versions of Swift will not + support post-as-copy, and future features will not be supported under + post-as-copy. ("Fast-post" is where `object_post_as_copy` is false). +fixes: + - > + Fixed a bug where the ring builder would not allow removal of a device + when min_part_seconds_left was greater than zero. + - > + PUT subrequests generated from a client-side COPY will now properly log + the SSC (server-side copy) Swift source field. See + https://docs.openstack.org/developer/swift/logs.html#swift-source for + more information. + - > + Fixed a bug where an SLO download with a range request may have resulted + in a 5xx series response. + - > + SLO manifest PUT requests can now be properly validated by sending an + ETag header of the md5 sum of the concatenated md5 sums of the + referenced segments. + - Fixed the stats calculation in the erasure code reconstructor. + - > + Rings with min_part_hours set to zero will now only move one partition + replica per rebalance, thus matching behavior when min_part_hours is + greater than zero. +other: + - Various other minor bug fixes and improvements.