Файловое хранилище с адресацией содержимого (CAFS) [1] было аппаратным устройством, разработанным International Computers Limited (ICL), которое предоставляло дисковое хранилище со встроенной возможностью поиска. Мотивацией для этого устройства было несоответствие между высокой скоростью, с которой диск мог доставлять данные, и гораздо более низкой скоростью, с которой универсальный процессор мог фильтровать данные, ища записи, соответствующие условию поиска. [2] [3] Разработка CAFS началась в Научно-исследовательском и передовом центре развития ICL под руководством Гордона Скарротта в конце 1960-х годов после исследований Джорджа Кулуриса и Джона Эванса, которые завершили полевые исследования в Имперском колледже и колледже королевы Марии по системам баз данных и приложениям [3] . Их исследование выявило потенциал для существенного повышения производительности в крупномасштабных приложениях баз данных за счет включения логики поиска в дисковый контроллер. [1]
В своей первоначальной форме логика поиска была встроена в головку диска. Автономное устройство CAFS было установлено у нескольких клиентов, включая BT Directory Enquiries , в 1970-х годах. Впоследствии устройство было выпущено в производство и в 1982 году было включено в качестве стандартной функции в мэйнфреймы ICL серий 2900 и 39. На этом этапе, чтобы сократить расходы и воспользоваться преимуществами возросшей скорости оборудования, логика поиска была встроена в контроллер диска. Запрос, выраженный на языке запросов высокого уровня, можно было скомпилировать в спецификацию поиска, которая затем отправлялась на контроллер диска для выполнения. Первоначально эта возможность была интегрирована в собственный язык запросов ICL Querymaster, который работал совместно с базой данных IDMS ; впоследствии он был интегрирован в порт ICL VME реляционной базы данных Ingres .
В 1985 году ICL получила Королевскую премию за технологические достижения в области CAFS. [4]
Одним из факторов, ограничивающих внедрение CAFS, было то, что устройство должно было знать структуру данных на диске, и накладывало ограничения на эту структуру. Интеграция продуктов баз данных с CAFS часто подразумевала изменение структуры страницы, что делало интеграцию очень дорогой, особенно с учетом рыночной тенденции к использованию стороннего программного обеспечения для баз данных. Управление целостностью данных в параллельной среде также требовало пристального внимания, поскольку поиск CAFS выполнялся без каких-либо знаний о блокировках и кэшах, поддерживаемых программным обеспечением базы данных.
ICL также выпустила версию CAFS для своей линейки миникомпьютеров DRS под названием SCAFS (Son of CAFS). В отличие от своего кузена-мэйнфрейма, это было реализовано с использованием пользовательской прошивки, работающей на стандартном микропроцессоре. Программное обеспечение, поддерживающее сторонние базы данных, включая Ingres , Informix и Oracle, продавалось как Ingres Search Accelerator (и т. д.). Каждый сторонний продукт требовал модификации и поставлялся с фиктивной библиотекой интерфейса SCAFS, которая должна была быть заменена продуктом ICL. Технология также была лицензирована IBM для использования с DB2 на RS/6000 . Устройство в конечном итоге устарело по мере увеличения скорости процессора, что устранило первоначальное обоснование для устройства, а именно то, что центральный процессор не мог искать данные так быстро, как дисковая подсистема могла их доставлять. Большие объемы памяти также означали, что многие базы данных среднего размера могли храниться полностью в памяти. Эти факторы устранили любой массовый рынок для SCAFS и сделали его неэкономичным.