Implement alternative cache algorithm to ARC
In the spirit of having additional options, perhaps it is time to explore the possibility of implementing other adaptive cache algorithms besides ARC for ZFS.Some algorithms, like
- Dueling Clock (http://www.date-conference.com/proceedings/PAPERS/2010/DATE10/PDFFILES/07.7_2.PDF)
- CAR (http://www-cs.stanford.edu/~sbansal/pubs/fast04.pdf)
- DSB (http://www.jilp.org/jwac-1/online/papers/005_gao.pdf)
- LIRS (http://en.wikipedia.org/wiki/LIRS_caching_algorithm)
would be beneficial to have as block cache for ZFS as an alternative to ARC. This is not a slight against ARC, however, this is for the few workloads (or few systems) that ARC is not the optimal solution.
Granted this would a low-priority task, this however gives a few benefits for illumos:
- Move away from a patent-encumbered algorithm (ARC)
- Provide ZFS functionality for systems that were traditionally not optimized for ZFS (i.e low memory systems, OSes with suboptimal memory management like Linux)
- Provide an alternative algorithm to use in the few cases that ARC is not optimized for it
- Give users the freedom to choose.