diff --git a/.mailmap b/.mailmap index 4a6368f24a..717b0ec369 100644 --- a/.mailmap +++ b/.mailmap @@ -78,3 +78,6 @@ Jaivish Kothari Kazuhiro Miyahara Alexandra Settle +Kenichiro Matsuda +Atsushi Sakai +Takashi Natsume diff --git a/AUTHORS b/AUTHORS index 1f628d9c3b..29bc166604 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,6 +26,7 @@ Chuck Thier (cthier@gmail.com) Contributors ------------ Mehdi Abaakouk (mehdi.abaakouk@enovance.com) +Timur Alperovich (timur.alperovich@gmail.com) Jesse Andrews (anotherjesse@gmail.com) Joe Arnold (joe@swiftstack.com) Ionuț Arțăriși (iartarisi@suse.cz) @@ -47,6 +48,7 @@ Tim Burke (tim.burke@gmail.com) Brian D. Burns (iosctr@gmail.com) Devin Carlen (devin.carlen@gmail.com) Thierry Carrez (thierry@openstack.org) +Carlos Cavanna (ccavanna@ca.ibm.com) Emmanuel Cazenave (contact@emcaz.fr) Mahati Chamarthy (mahati.chamarthy@gmail.com) Zap Chang (zapchang@gmail.com) @@ -55,6 +57,7 @@ Ray Chen (oldsharp@163.com) Harshit Chitalia (harshit@acelio.com) Brian Cline (bcline@softlayer.com) Alistair Coles (alistair.coles@hp.com) +Clément Contini (ccontini@cloudops.com) Brian Curtin (brian.curtin@rackspace.com) Thiago da Silva (thiago@redhat.com) Julien Danjou (julien@danjou.info) @@ -64,6 +67,7 @@ Cedric Dos Santos (cedric.dos.sant@gmail.com) Gerry Drudy (gerry.drudy@hp.com) Morgan Fainberg (morgan.fainberg@gmail.com) ZhiQiang Fan (aji.zqfan@gmail.com) +Oshrit Feder (oshritf@il.ibm.com) Mike Fedosin (mfedosin@mirantis.com) Ricardo Ferreira (ricardo.sff@gmail.com) Flaper Fesp (flaper87@gmail.com) @@ -91,8 +95,10 @@ Dan Hersam (dan.hersam@hp.com) Derek Higgins (derekh@redhat.com) Alex Holden (alex@alexjonasholden.com) Edward Hope-Morley (opentastic@gmail.com) +Charles Hsu (charles0126@gmail.com) Joanna H. Huang (joanna.huitzu.huang@gmail.com) Kun Huang (gareth@unitedstack.com) +Bill Huber (wbhuber@us.ibm.com) Matthieu Huin (mhu@enovance.com) Hodong Hwang (hodong.hwang@kt.com) Motonobu Ichimura (motonobu@gmail.com) @@ -126,6 +132,7 @@ John Leach (john@johnleach.co.uk) Ed Leafe (ed.leafe@rackspace.com) Thomas Leaman (thomas.leaman@hp.com) Eohyung Lee (liquidnuker@gmail.com) +Zhao Lei (zhaolei@cn.fujitsu.com) Jamie Lennox (jlennox@redhat.com) Tong Li (litong01@us.ibm.com) Changbin Liu (changbin.liu@gmail.com) @@ -136,10 +143,12 @@ Zhongyue Luo (zhongyue.nah@intel.com) Paul Luse (paul.e.luse@intel.com) Christopher MacGown (chris@pistoncloud.com) Dragos Manolescu (dragosm@hp.com) +Ben Martin (blmartin@us.ibm.com) Steve Martinelli (stevemar@ca.ibm.com) Juan J. Martinez (juan@memset.com) Marcelo Martins (btorch@gmail.com) Dolph Mathews (dolph.mathews@gmail.com) +Kenichiro Matsuda (matsuda_kenichi@jp.fujitsu.com) Michael Matur (michael.matur@gmail.com) Donagh McCabe (donagh.mccabe@hp.com) Andy McCrae (andy.mccrae@gmail.com) @@ -151,6 +160,7 @@ Jola Mirecka (jola.mirecka@hp.com) Kazuhiro Miyahara (miyahara.kazuhiro@lab.ntt.co.jp) Daisuke Morita (morita.daisuke@lab.ntt.co.jp) Dirk Mueller (dirk@dmllr.de) +Takashi Natsume (natsume.takashi@lab.ntt.co.jp) Russ Nelson (russ@crynwr.com) Maru Newby (mnewby@internap.com) Newptone (xingchao@unitedstack.com) @@ -170,18 +180,24 @@ Constantine Peresypkin (constantine.peresypk@rackspace.com) Dieter Plaetinck (dieter@vimeo.com) Dan Prince (dprince@redhat.com) Sarvesh Ranjan (saranjan@cisco.com) +Falk Reimann (falk.reimann@sap.com) +Brian Reitz (brian.reitz@oracle.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) Victor Rodionov (victor.rodionov@nexenta.com) +Eran Rom (eranr@il.ibm.com) Aaron Rosen (arosen@nicira.com) Brent Roskos (broskos@internap.com) +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) Christian Schwede (cschwede@redhat.com) Mark Seger (Mark.Seger@hp.com) +Azhagu Selvan SP (tamizhgeek@gmail.com) Alexandra Settle (alexandra.settle@rackspace.com) Andrew Clay Shafer (acs@parvuscaptus.com) Mitsuhiro SHIGEMATSU (shigematsu.mitsuhiro@lab.ntt.co.jp) @@ -199,6 +215,7 @@ Jeremy Stanley (fungi@yuggoth.org) Mauro Stettler (mauro.stettler@gmail.com) Tobias Stevenson (tstevenson@vbridges.com) Victor Stinner (vstinner@redhat.com) +Akihito Takai (takaiak@nttdata.co.jp) Pearl Yajing Tan (pearl.y.tan@seagate.com) Yuriy Taraday (yorik.sar@gmail.com) Monty Taylor (mordred@inaugust.com) @@ -232,5 +249,6 @@ Guang Yee (guang.yee@hp.com) Pete Zaitcev (zaitcev@kotori.zaitcev.us) Hua Zhang (zhuadl@cn.ibm.com) Jian Zhang (jian.zhang@intel.com) +Kai Zhang (zakir.exe@gmail.com) Ning Zhang (ning@zmanda.com) Yuan Zhou (yuan.zhou@intel.com) diff --git a/CHANGELOG b/CHANGELOG index 3625a077ed..f4ce9fcf35 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,132 @@ +swift (2.4.0) + + * Dependency changes + + - Added six requirement. This is part of an ongoing effort to add + support for Python 3. + + - Dropped support for Python 2.6. + + * Config changes + + - Recent versions of Python restrict the number of headers allowed in a + request to 100. This number may be too low for custom middleware. The + new "extra_header_count" config value in swift.conf can be used to + increase the number of headers allowed. + + - Renamed "run_pause" setting to "interval" (current configs with + run_pause still work). Future versions of Swift may remove the + run_pause setting. + + * Versioned writes middleware + + The versioned writes feature has been refactored and reimplemented as + middleware. You should explicitly add the versioned_writes middleware to + your proxy pipeline, but do not remove or disable the existing container + server config setting ("allow_versions"), if it is currently enabled. + The existing container server config setting enables existing + containers to continue being versioned. Please see + http://swift.openstack.org/middleware.html#how-to-enable-object-versioning-in-a-swift-cluster + for further upgrade notes. + + * Allow 1+ object-servers-per-disk deployment + + Enabled by a new > 0 integer config value, "servers_per_port" in the + [DEFAULT] config section for object-server and/or replication server + configs. The setting's integer value determines how many different + object-server workers handle requests for any single unique local port + in the ring. In this mode, the parent swift-object-server process + continues to run as the original user (i.e. root if low-port binding + is required), binds to all ports as defined in the ring, and forks off + the specified number of workers per listen socket. The child, per-port + servers drop privileges and behave pretty much how object-server workers + always have, except that because the ring has unique ports per disk, the + object-servers will only be handling requests for a single disk. The + parent process detects dead servers and restarts them (with the correct + listen socket), starts missing servers when an updated ring file is + found with a device on the server with a new port, and kills extraneous + servers when their port is found to no longer be in the ring. The ring + files are stat'ed at most every "ring_check_interval" seconds, as + configured in the object-server config (same default of 15s). + + In testing, this deployment configuration (with a value of 3) lowers + request latency, improves requests per second, and isolates slow disk + IO as compared to the existing "workers" setting. To use this, each + device must be added to the ring using a different port. + + * Do container listing updates in another (green)thread + + The object server has learned the "container_update_timeout" setting + (with a default of 1 second). This value is the number of seconds that + the object server will wait for the container server to update the + listing before returning the status of the object PUT operation. + + Previously, the object server would wait up to 3 seconds for the + container server response. The new behavior dramatically lowers object + PUT latency when container servers in the cluster are busy (e.g. when + the container is very large). Setting the value too low may result in a + client PUT'ing an object and not being able to immediately find it in + listings. Setting it too high will increase latency for clients when + container servers are busy. + + * TempURL fixes (closes CVE-2015-5223) + + Do not allow PUT tempurls to create pointers to other data. + Specifically, disallow the creation of DLO object manifests via a PUT + tempurl. This prevents discoverability attacks which can use any PUT + tempurl to probe for private data by creating a DLO object manifest and + then using the PUT tempurl to head the object. + + * Ring changes + + - Partition placement no longer uses the port number to place + partitions. This improves dispersion in small clusters running one + object server per drive, and it does not affect dispersion in + clusters running one object server per server. + + - Added ring-builder-analyzer tool to more easily test and analyze a + series of ring management operations. + + - Stop moving partitions unnecessarily when overload is on. + + * Significant improvements and bug fixes have been made to erasure code + support. This feature is suitable for beta testing, but it is not yet + ready for broad production usage. + + * Bulk upload now treats user xattrs on files in the given archive as + object metadata on the resulting created objects. + + * Emit warning log in object replicator if "handoffs_first" or + "handoff_delete" is set. + + * Enable object replicator's failure count in swift-recon. + + * Added storage policy support to dispersion tools. + + * Support keystone v3 domains in swift-dispersion. + + * Added domain_remap information to the /info endpoint. + + * Added support for a "default_reseller_prefix" in domain_remap + middleware config. + + * Allow SLO PUTs to forgo per-segment integrity checks. Previously, each + segment referenced in the manifest also needed the correct etag and + bytes setting. These fields now allow the "null" value to skip those + particular checks on the given segment. + + * Allow rsync to use compression via a "rsync_compress" config. If set to + true, compression is only enabled for an rsync to a device in a + different region. In some cases, this can speed up cross-region + replication data transfer. + + * Added time synchronization check in swift-recon (the --time option). + + * The account reaper now runs faster on large accounts. + + * Various other minor bug fixes and improvements. + + swift (2.3.0, OpenStack Kilo) * Erasure Code support (beta) @@ -58,6 +187,7 @@ swift (2.3.0, OpenStack Kilo) * Various other minor bug fixes and improvements. + swift (2.2.2) * Data placement changes @@ -117,6 +247,7 @@ swift (2.2.2) * Various other minor bug fixes and improvements. + swift (2.2.1) * Swift now rejects object names with Unicode surrogates. @@ -962,14 +1093,14 @@ swift (1.7.0) Serialize RingData in a versioned, custom format which is a combination of a JSON-encoded header and .tostring() dumps of the - replica2part2dev_id arrays. This format deserializes hundreds of times + replica2part2dev_id arrays. This format deserializes hundreds of times faster than rings serialized with Python 2.7's pickle (a significant performance regression for ring loading between Python 2.6 and Python - 2.7). Fixes bug 1031954. + 2.7). Fixes bug 1031954. The new implementation is backward-compatible; if a ring does not begin with a new-style magic string, it is assumed to be an - old-style pickle-dumped ring and is handled as before. So new Swift + old-style pickle-dumped ring and is handled as before. So new Swift code can read old rings, but old Swift code will not be able to read newly-serialized rings. @@ -1430,4 +1561,6 @@ swift (1.3.0, OpenStack Cactus) swift (1.2.0, OpenStack Bexar) -swift (1.0.0, OpenStack Austin) +swift (1.1.0, OpenStack Austin) + +swift (1.0.0, Initial Release)