On Tue, 2007-10-23 at 21:56 -0700, Matthew Ahrens wrote:
> The cache devices are exported and imported with the pool. Cache devices
> cannot be part of a mirror or raidz.
I'm curious about the failure semantics.
- is everything on a cache device checksummed? where are the checksums
kept? host memory? indirect blocks on the cache device? both?
- Are the contents of the cache device retained across reboot or across
export/import cycles, or does it always start out empty/cold?
- What happens if a cache device fails during operation?
- What happens if it's missing at boot or during an import? (It sounds
like we should be able to drive on with reduced performance).
Other thoughts:
1) Applicability: I'd assume that cache devices only start to get
interesting when main memory is already maxed out or if cache storage is
fast enough but much cheaper per bit than main memory.
2) It seems like the properties that make a device suitable as a cache
device largely overlap with the properties that make a device suitable
as a dedicated intent log. While members of the system performance
hotrod association will as always want to tweak every available tunable,
it would be nice if an administrator didn't have to statically partition
a limited amount of expensive fast storage between cache and log if ZFS
could do a reasonable job of allocating space dynamically based on the
workload...
- Bill