swift/releasenotes/notes/2_15_0_release-0a05a011fb85a9c9.yaml
John Dickinson dfd0ea20a1 2.15.0 authors and changelog update
Change-Id: I8ee9d657ebc030b9335cb53a51951c118539cb91
2017-07-27 14:44:21 -07:00

103 lines
4.8 KiB
YAML

---
features:
- |
Add Composite Ring Functionality
A composite ring comprises two or more component rings that are
combined to form a single ring with a replica count equal to the
sum of the component rings. The component rings are built
independently, using distinct devices in distinct regions, which
means that the dispersion of replicas between the components can
be guaranteed.
Composite rings can be used for explicit replica placement and
"replicated EC" for global erasure codes policies.
Composite rings support 'cooperative' rebalance which means that
during rebalance all component rings will be consulted before a
partition is moved in any component ring. This avoids the same
partition being simultaneously moved in multiple components.
We do not yet have CLI tools for creating composite rings, but
the functionality has been enabled in the ring modules to
support this advanced functionality. CLI tools will be delivered
in a subsequent release.
For further information see the
`docs <https://docs.openstack.org/swift/latest/overview_ring.html#module-swift.common.ring.composite_builder>`__
- |
The EC reconstructor process has been dramatically improved by
adding support for multiple concurrent workers. Multiple
processes are required to get high concurrency, and this change
results in much faster rebalance times on servers with many
drives.
Currently the default is still only one process, and no workers.
Set ``reconstructor_workers`` in the ``[object-reconstructor]``
section to some whole number <= the number of devices on a node
to get that many reconstructor workers.
- |
Add support to increase object ring partition power transparently
to end users and with no cluster downtime. Increasing the ring
part power allows for incremental adjustment to the upper bound
of the cluster size. Please review the
`full docs <https://docs.openstack.org/swift/latest/ring_partpower.html>`__
for more information.
- |
Added support for per-policy proxy config options. This allows
per-policy affinity options to be set for use with duplicated EC
policies and composite rings. Certain options found in per-policy
conf sections will override their equivalents that may be set
in the [app:proxy-server] section. Currently the options handled that
way are ``sorting_method``, ``read_affinity``, ``write_affinity``,
``write_affinity_node_count``, and ``write_affinity_handoff_delete_count``.
- Enabled versioned writes on Dynamic Large Objects (DLOs).
- |
Write-affinity aware object deletion
Previously, when deleting objects in multi-region swift
deployment with write affinity configured, users always get 404
when deleting object before it's replicated to appropriate nodes.
Now Swift will use ``write_affinity_handoff_delete_count`` to
define how many local handoff nodes should swift send request to
get more candidates for the final response. The default value
"auto" means Swift will calculate the number automatically based
on the number of replicas and current cluster topology.
- |
Require that known-bad EC schemes be deprecated
Erasure-coded storage policies using ``isa_l_rs_vand`` and ``nparity``
>= 5 must be configured as deprecated, preventing any new
containers from being created with such a policy. This
configuration is known to harm data durability. Any data in such
policies should be migrated to a new policy. See
See `Launchpad bug 1639691 <https://bugs.launchpad.net/swift/+bug/1639691>`__
for more information.
- |
Optimize the Erasure Code reconstructor protocol to reduce IO
load on servers.
- Fixed a bug where SSYNC would fail to replicate unexpired object.
- Fixed a bug in domain_remap when obj starts/ends with slash.
- Fixed a socket leak in copy middleware when a large object was copied.
- Fixed a few areas where the ``swiftdir`` option was not respected.
- swift-recon now respects storage policy aliases.
- |
cname_lookup middleware now accepts a ``nameservers`` config
variable that, if defined, will be used for DNS lookups instead of
the system default.
- |
Make mount_check option usable in containerized environments by
adding a check for an ".ismount" file at the root directory of
a device.
- Remove deprecated ``vm_test_mode`` option.
- |
The object and container server config option ``slowdown`` has been
deprecated in favor of the new ``objects_per_second`` and
``containers_per_second`` options.
- |
The output of devices from ``swift-ring-builder`` has been reordered
by region, zone, ip, and device.
- Imported docs content from openstack-manuals project.
- Various other minor bug fixes and improvements.