Введение

Content Addressable File Store (CAFS) — аппаратное устройство, разработанное компанией International Computers Limited (ICL), которое обеспечивало дисковое хранилище со встроенными возможностями поиска. Мотивацией для создания устройства было несоответствие между высокой скоростью передачи данных диском и значительно более низкой скоростью фильтрации данных процессором общего назначения при поиске записей, соответствующих заданным условиям. Разработка CAFS началась в Центре исследований и передового развития ICL под руководством Гордона Скарротта в конце 1960-х годов, после исследований Джорджа Кулуриса и Джона Эванса, которые провели полевое исследование систем баз данных и приложений в Имперском колледже и Королеве Мэри-колледже (Scarrott, 1995). Их исследование показало потенциал существенного повышения производительности в крупномасштабных приложениях баз данных за счет включения логики поиска непосредственно в дисковый контроллер. В первоначальной реализации логика поиска была встроена в головку диска. В 1970-х годах отдельные устройства CAFS были установлены у нескольких клиентов, включая службу телефонных справок BT Directory Enquiries. Впоследствии устройство было запущено в производство и в 1982 году стало стандартной функцией в мейнфреймах серий 2900 и 39 от ICL. К этому моменту, для снижения затрат и использования возросшей скорости аппаратного обеспечения, логика поиска была интегрирована в дисковый контроллер. Запрос, сформулированный на языке запросов высокого уровня, компилировался в спецификацию поиска, которая затем отправлялась в дисковый контроллер для выполнения. Первоначально эта возможность была интегрирована в собственный язык запросов Querymaster от ICL, который использовался совместно с базой данных IDMS; впоследствии она была интегрирована в VME-порт ICL для реляционной базы данных Ingres. В 1985 году ICL получила награду королевы за технологические достижения в области CAFS. Одним из факторов, ограничивших распространение CAFS, было требование устройства знать структуру данных на диске и накладывать на нее ограничения. Интеграция продуктов баз данных с CAFS часто требовала изменения структуры страниц, что делало интеграцию очень дорогостоящей, особенно в условиях рыночной тенденции к использованию стороннего программного обеспечения баз данных. Управление целостностью данных в многопоточной среде также требовало особого внимания, поскольку поиск CAFS выполнялся без учета блокировок и кэшей, поддерживаемых программным обеспечением базы данных. ICL также выпустила версию CAFS для своей линейки миникомпьютеров DRS под названием SCAFS (Сын CAFS). В отличие от своего «старшего брата», эта версия была реализована с использованием специализированной прошивки, работающей на стандартном микропроцессоре. Программное обеспечение, поддерживающее сторонние базы данных, включая Ingres, Informix и Oracle, продавалось под названием Ingres Search Accelerator (и т.д.). Для каждого стороннего продукта требовалась модификация, и он поставлялся с заглушкой интерфейса SCAFS, которую необходимо было заменить продуктом ICL. Технология также была лицензирована компании IBM для использования с DB2 на RS/6000. Устройство устарело по мере увеличения скорости процессоров, что устранило первоначальное обоснование его существования, а именно неспособность центрального процессора осуществлять поиск данных так же быстро, как подсистема диска могла их предоставить. Увеличение объема памяти также позволило хранить многие базы данных среднего размера целиком в памяти. Эти факторы лишили SCAFS массового рынка и сделали его нерентабельным.