← Back to team overview

openstack team mailing list archive

Swift 1.5.0 release


I'm pleased to announce the release of swift 1.5.0. This is a big release with
some big changes. I recommend that deployers upgrade, and, as always, you can
upgrade your production cluster with no downtime.

Swift docs: http://swift.openstack.org
Swift code: http://github.com/openstack/swift
Openstack swift PPAs: https://launchpad.net/~swift-core/+archive/release
Launchpad page: https://launchpad.net/swift/folsom/1.5.0

The changelog for 1.5.0 is at https://github.com/openstack/swift/blob/master/CHANGELOG.

I'd like to highlight a few of the more significant changes.

First, you will notice that the top three bullet points in the 1.5.0 changelog
mention that config changes are required. Proxy server logging has been
refactored to live in a new middleware module, proxy-logging. The sample
config file for the proxy server has been updated to show how this new
middlware fits into the proxy server
This change requires a config change for all existing deployments, but it does
not introduce any new dependencies.

We have also remove the swift3 middleware from the swift project. This is the
AWS S3 API compatibility layer for swift. The Openstack PPB has decided that
3rd party APIs should be external to the Openstack projects
As a result, the swift3 middleware now lives at https://github.com/fujita/swift3
and is managed as a separate project apart from swift. Any deployers who have
been using the swift3 middleware will now have a dependency on the swift3
project and need to update their proxy config to reflect the new dependency.

The last big change requiring config changes when upgrading to 1.5.0 is a DB
preallocation feature that has been added. Swift account and containers are
implemented on disk as sqlite databases. In order to increase performance on
spinning media, the code that accesses these DBs may at times preallocate disk
space for the data. While this obviously uses more disk space, it also limits
disk fragmentation and therefore increases performance on spinning media where
random IO is very expensive. However, if a deployment uses SSDs, space is
very expensive and random IO is not. In this case, DB preallocation is a bad
idea. Because any process that uses swift's code to access the DB but has not
explicitly told the DB to not preallocate space may trigger the preallocation
code path, the preallocation default has been set to False. This is a change
from previous version of swift which always preallocated space. It is very
important to explicitly turn this option on for account and container servers
that are using traditional (spinning) media to store the data[1]. The provided
sample config files for the account and container servers show how this value
should be set.

There are also two other new features in swift that should be mentioned.
First, swift now supports versioned objects. Docs for this feature are found
at http://swift.openstack.org/overview_object_versioning.html. Second, swift
now has a deep integration with StatsD metrics. Nearly every part of the
system can now be monitored with StatsD. You can find more details at
http://swift.openstack.org/admin_guide.html#reporting-metrics-to-statsd. Note
that this feature is considered "beta" since some of the metric names may
change. The "beta" label does not reflect this feature's stability or
fitness for production--it is both stable and production-ready.

On a community side, Swift 1.5.0 is the work of 23 contributors, including 7
new contributors. I'm happy to see the continued growth of the swift
developer community.


[1] As a footnote, it is a good idea to consider using SSDs for account and
container servers on larger clusters and clusters that require higher

Attachment: smime.p7s
Description: S/MIME cryptographic signature