Le Content Addressable File Store (CAFS) était un périphérique matériel développé par International Computers Limited (ICL) qui fournissait un stockage sur disque avec une capacité de recherche intégrée. La motivation de ce périphérique était la différence entre la vitesse élevée à laquelle un disque pouvait fournir des données et la vitesse beaucoup plus faible à laquelle un processeur à usage général pouvait filtrer les données à la recherche d'enregistrements correspondant à une condition de recherche. Le développement du CAFS a commencé au Centre de recherche et de développement avancé d'ICL sous la direction de Gordon Scarrott à la fin des années 1960, suite aux recherches de George Coulouris et John Evans qui avaient réalisé une étude de terrain à l'Imperial College et au Queen Mary College sur les systèmes et applications de bases de données . Leur étude avait révélé le potentiel d'améliorations substantielles des performances dans les applications de bases de données à grande échelle grâce à l'inclusion d'une logique de recherche dans le contrôleur de disque.
Dans sa forme initiale, la logique de recherche était intégrée à la tête de disque. Un dispositif CAFS autonome a été installé chez quelques clients, dont BT Directory Enquiries , dans les années 1970. Le dispositif a ensuite été commercialisé et a été intégré en 1982 comme fonction standard dans les mainframes ICL des séries 2900 et 39. À ce stade, pour réduire les coûts et tirer parti des vitesses matérielles accrues, la logique de recherche a été intégrée au contrôleur de disque. Une requête exprimée dans un langage de requête de haut niveau pouvait être compilée dans une spécification de recherche qui était ensuite envoyée au contrôleur de disque pour exécution. Au départ, cette capacité était intégrée au langage de requête Querymaster d'ICL, qui fonctionnait en conjonction avec la base de données IDMS ; par la suite, elle a été intégrée au port ICL VME de la base de données relationnelle Ingres .
L'ICL a reçu le Queen's Award pour la réalisation technologique pour le CAFS en 1985.
L'un des facteurs qui a limité l'adoption de CAFS était que l'appareil devait connaître la disposition des données sur le disque et imposait des contraintes sur cette disposition. L'intégration de produits de base de données avec CAFS impliquait souvent une modification de la mise en page, ce qui rendait l'intégration très coûteuse, en particulier avec la tendance du marché à utiliser des logiciels de base de données tiers. La gestion de l'intégrité des données dans un environnement concurrent nécessitait également une attention particulière, car une recherche CAFS s'exécutait sans aucune connaissance des verrous et des caches maintenus par le logiciel de base de données.
ICL a également produit une version de CAFS pour sa gamme de mini-ordinateurs DRS appelée SCAFS (Son of CAFS). Contrairement à son cousin mainframe, cette version a été implémentée à l'aide d'un micrologiciel personnalisé fonctionnant sur un microprocesseur standard de l'industrie. Les logiciels prenant en charge les bases de données tierces, notamment Ingres , Informix et Oracle, ont été commercialisés sous le nom d' Ingres Search Accelerator (etc.). Chaque produit tiers nécessitait des modifications et était fourni avec une bibliothèque d'interface SCAFS factice, qui devait être remplacée par le produit ICL. La technologie a également été concédée sous licence à IBM pour une utilisation avec DB2 sur le RS/6000 . L'appareil est finalement devenu obsolète à mesure que la vitesse des processeurs augmentait, supprimant la justification initiale de l'appareil, à savoir qu'un processeur central n'était pas capable de rechercher des données aussi rapidement que le sous-système de disque pouvait les fournir. Des tailles de mémoire plus importantes signifiaient également que de nombreuses bases de données de taille moyenne pouvaient être conservées entièrement en mémoire. Ces facteurs ont supprimé tout marché de masse pour SCAFS et l'ont rendu non rentable.