Feature #3145

single-copy arc

Added by Christopher Siden almost 5 years ago. Updated almost 5 years ago.

Status:ResolvedStart date:2012-09-03
Priority:NormalDue date:
Assignee:Christopher Siden% Done:

100%

Category:zfs - Zettabyte File System
Target version:-
Difficulty:Medium Tags:needs-triage

Description

From George Wilson's original bug report at Delphix:

The arc currently caches extra copies of the same block because when they are accessed from different datasets (i.e. from different clones of the same filesystem). We should evict these extra copies from the arc making the arc more efficient.

This is a simple solution to the problem and further improvements are possible. The approach taken is to request any dbuf which is in the processes of releasing its hold to check to see if it contains a duplicate arc_buf_t. If so, then instead of simply releasing the hold it will instead evict itself.

History

#1 Updated by Christopher Siden almost 5 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

changeset: 13840:97fd5cdf328a
tag: tip
user: George Wilson <>
date: Thu Sep 27 21:55:09 2012 -0700

description:
3145 single-copy arc
3212 ztest: race condition between vdev_online() and spa_vdev_remove()
Reviewed by: Matt Ahrens <>
Reviewed by: Adam Leventhal <>
Reviewed by: Eric Schrock <>
Reviewed by: Justin T. Gibbs <>
Approved by: Eric Schrock <>

modified:
usr/src/cmd/mdb/common/modules/zfs/zfs.c
usr/src/cmd/ztest/ztest.c
usr/src/uts/common/fs/zfs/arc.c
usr/src/uts/common/fs/zfs/dbuf.c
usr/src/uts/common/fs/zfs/sys/arc.h

Also available in: Atom