Оно там, оказывается, на уровне блоков работает. Это несколько ограничивает сферу применения.
Пример. Лежат две копии одной и той же библиотеки (или бинаря). Программы, запущенные в системе, пользуются обеими копиями библиотеки (одни одной, другие другой). В случае бинаря -- оба бинаря запущены.
Так вот, несмотря на дедупликацию, в памяти тоже будет две копии кода, так как иноды разные (только разве что в page cache будет одна копия) Если бы дедупликация была на уровне целых файлов, в памяти была бы одна копия.
Но обе эти копии mmapнуты на один и тот же кусок в кэше zfs :) Я не встречал конкретного описания этой ситуации, но не вижу причин, по которым не может быть так. А если может — то и есть, ведь авторы zfs — настоящие бивни!
no subject
Date: 2009-11-04 00:17 (UTC)Пример. Лежат две копии одной и той же библиотеки (или бинаря). Программы, запущенные в системе, пользуются обеими копиями библиотеки (одни одной, другие другой). В случае бинаря -- оба бинаря запущены.
Так вот, несмотря на дедупликацию, в памяти тоже будет две копии кода, так как иноды разные (только разве что в page cache будет одна копия) Если бы дедупликация была на уровне целых файлов, в памяти была бы одна копия.
no subject
Date: 2009-11-04 01:27 (UTC)Я не встречал конкретного описания этой ситуации, но не вижу причин, по которым не может быть так. А если может — то и есть, ведь авторы zfs — настоящие бивни!