Контентно-адресуемое хранилище данных
Content-addressable storage (CAS) — архитектура хранения, в которой адресация осуществляется образом хранимых данных. Образ данных хешируется и хеш используется для его нахождения на устройствах или системах хранения.
Архитектура обладает большой устойчивостью к дубликатам, а также может быть выполнена децентрализованно, что даёт ей существенную надёжность.
Является персистентным аналогом контентно-адресуемой памяти.
Принцип CAS
В отличие от традиционных дисковых систем (файловая, блоковая адресация), размещение информации производится не по имени файла или конкретному сектору на поверхности диска, а по его содержимому. Для каждого объекта (им может быть файл, блок данных либо иной поток информации) вычисляется контрольная сумма (MD5, SHA-256 и т.д) — своего рода «отпечаток пальца», — которая и является адресом размещения информации. И по этому же адресу объект впоследствии может быть прочитан из устройства. В житейском представлении это напоминает не совсем обычный ломбард, учитывающий объекты, в первую очередь, не по их названиям (как в традиционных файловых системах), а, например, по особенной исключительно-уникальной стоимости, которую он подбирает, оценивая объекты при приёме их на хранение, и которая в дальнейшем послужит такому ломбарду идентификатором при поиске объекта среди других для выдачи его обратно. Если за время хранения к объекту что-то добавили или, наоборот, отняли, то вместе с этим этот ломбард произведёт переоценку, изменив его идентификационную стоимость.
Свойства CAS-устройств
Неизменяемость данных
Сама архитектура системы гарантирует неизменность хранимой информации. Если какой-либо объект был изменён, то у него будет уже другая контрольная сумма, и это будет уже другой объект, хранимый по другому адресу. При обращении по старому адресу объект будет прочтён в гарантированно первозданном виде, что исключает подмену, подделку и иные подобные действия, что неоценимо в области юриспруденции, безопасности, хранения ключевых доказательств и др.
Срок хранения (Retention)
Для каждого из записанных объектов может быть установлен определённый срок хранения, в течение которого он не может быть удалён. Этот срок может составлять от нескольких минут до нескольких лет, а также неограниченное хранение. В последнем случае удаление файла возможно только на заводе-изготовителе либо только физическим уничтожением устройства. Причём начало срока хранения не обязательно исчисляется с текущего момента, а может начинаться с любого определённого или даже неопределённого момента в будущем, как например хранение истории болезни в течение трёх лет с даты смерти пациента, которая на данный момент неизвестна.