MFV r302991: 6950 ARC should cache compressed data
authormav <mav@FreeBSD.org>
Sat, 3 Sep 2016 08:30:51 +0000 (08:30 +0000)
committermav <mav@FreeBSD.org>
Sat, 3 Sep 2016 08:30:51 +0000 (08:30 +0000)
commite7f8bc59abade30f3eacf7a17adcecd7175eba4e
tree31e273b7e45f10101fe936341da7be9692195c5c
parent6772cc48e0aa9c38a05a0ddf5ff3df633c3050d8
MFV r302991: 6950 ARC should cache compressed data

illumos/illumos-gate@dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2
https://github.com/illumos/illumos-gate/commit/dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2

https://www.illumos.org/issues/6950
  When reading compressed data from disk, the ARC should keep the compressed
  block cached and only decompress it when consumers access the block. The
  uncompressed data should be short-lived allowing the ARC to cache a much larger
  amount of data. The DMU would also maintain a smaller cache of uncompressed
  blocks to minimize the impact of decompressing frequently accessed blocks.

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Don Brady <don.brady@intel.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: George Wilson <george.wilson@delphix.com>
22 files changed:
cddl/contrib/opensolaris/cmd/zdb/zdb.c
cddl/contrib/opensolaris/cmd/ztest/ztest.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c