Difference between revisions of "Feature Flags"

From OpenZFS
Jump to navigation Jump to search
(Add feature flags page)
 
(Redirect to new location)
 
(19 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Originally the ZFS on-disk format was versioned with a single number that was increased whenever a new on-disk format change was introduced. This worked well when a single entity controlled the development of ZFS; however, in the more distributed development model of OpenZFS a single version number is not ideal. Every OpenZFS implementation would need to agree on every change to the on-disk format.
This page was moved to: https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Feature%20Flags.html
 
One of the first OpenZFS projects was a new versioning system called "feature flags" that tags on-disk format changes with unique names. The system supports both completely independent format changes, as well as format changes that depend on each other. A pool's on-disk format is portable between OpenZFS implementations as long as all of the feature flags in use by the pool are supported by both implementations.
 
For more details see these [http://blog.delphix.com/csiden/files/2012/01/ZFS_Feature_Flags.pdf slides (Jan 2012)] and [http://illumos.org/man/5/zpool-features <tt>zpool-features(5)</tt>] (illumos) or [http://www.freebsd.org/cgi/man.cgi?query=zpool-features&sektion=7&manpath=FreeBSD+11-current <tt>zpool-features(7)</tt>] (FreeBSD).
 
For greatest compatibility, features that are exclusive (when enabled) should be periodically ported to all other distributions.
 
== Feature Flags Implementation ==
The current state of OpenZFS feature flags implementation is in the following table.
 
{| class="wikitable"
!Feature flag
!colspan=3|FreeBSD
!ZFS on Linux
!OpenZFS OSX
!OmniOS
|-
|
| 8.4
| 9.3
| 10.1
| 0.6.4
| 1.3.1
| r15104
|-
!async_destroy
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!empty_bpobj
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!lz4_compress
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!multi_vdev_crash_dump
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|no
|no
|style="background-color:lightgreen"|yes
|-
!spacemap_histogram
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!enabled_txg
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!hole_birth
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!extensible_dataset
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!embedded_data
|no
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!bookmarks
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|-
!filesystem_limits
|no
|style="background-color:lightgreen"|yes
|style="background-color:lightgreen"|yes
|no
|no
|style="background-color:lightgreen"|yes
|-
!large_blocks
|no
|no
|no
|no
|no
|style="background-color:lightgreen"|yes
|}
 
'''Table legend'''
Other distributions:
* no = not implemented
* yes = implemented

Latest revision as of 19:26, 22 November 2020