# Content Addressable File Store

The Content Addressable File Store (CAFS) was a hardware device developed by International Computers Limited (ICL) that provided a disk storage with built-in search capability. The motivation for the device was the discrepancy between the high speed at which a disk could deliver data, and the much lower speed at which a general-purpose processor could filter the data looking for records that matched a search condition. Development of CAFS started in ICL's Research and Advanced Development Centre under Gordon Scarrott in the late 1960s following research by George Coulouris and John Evans who had completed a field study at Imperial College and Queen Mary College on database systems and applications . Their study had revealed the potential for substantial performance improvements in large-scale database applications by the inclusion of search logic in the disk controller.
In its initial form, the search logic was built into the disk head. A standalone CAFS device was installed with a few customers, including BT Directory Enquiries, during the 1970s. The device was subsequently productised and in 1982 was incorporated as a standard feature within ICL's 2900 series and Series 39 mainframes. By this stage, to reduce costs and to take advantage of increased hardware speeds, the search logic was incorporated into the disk controller. A query expressed in a high-level query language could be compiled into a search specification that was then sent to the disk controller for execution. Initially this capability was integrated into ICL's own Querymaster query language, which worked in conjunction with the IDMS database; subsequently it was integrated into the ICL VME port of the Ingres relational database.
ICL received the Queen's Award for Technological Achievement for CAFS in 1985.
One factor which limited the adoption of CAFS was that the device needed to know the layout of data on disk, and placed constraints on this layout. Integrating database products with CAFS often involved a change in page layout, making the integration very expensive, especially with the market trend towards use of third-party database software. Managing data integrity in a concurrent environment also required close attention, since a CAFS search would execute without any knowledge of locks and caches maintained by the database software.
ICL also produced a version of CAFS for its DRS minicomputer range called SCAFS (Son of CAFS). Unlike its mainframe cousin, this was implemented using custom firmware running on an industry-standard microprocessor. Software supporting third-party databases including Ingres, Informix and Oracle was marketed as the Ingres Search Accelerator (etc.). Each third-party product required modification, and was supplied with a dummy SCAFS interface library, to be replaced by the ICL product. The technology was also licensed to IBM for use with DB2 on the RS/6000. The device eventually became obsolete as processor speeds increased, removing the original justification for the device, namely that a central processor was not able to search data as fast as the disk subsystem could deliver it. Larger memory sizes also meant that many medium-sized databases could be kept entirely in memory. These factors removed any mass market for SCAFS and made it uneconomic.