PlugDB est un véritable SGBD (Système de Gestion de Bases de Données) embarqué dans un composant matériel sécurisé. Il est capable de stocker les données sous forme de tables, de les indexer, de les interroger via des requêtes SQL, de garantir leur intégrité logique (contraintes d’intégrité) et physique (atomicité transactionnelle) et surtout de les protéger par une politique de contrôle d’accès assertionnelle (i.e., tel utilisateur peut accéder aux données satisfaisant tel prédicat SQL).
La mise en œuvre d’un tel SGBD embarqué pose de multiples verrous scientifiques liées aux contraintes combinées du microcontrôleur (e.g., très faible RAM) et de la Flash NAND (e.g., coût des écritures aléatoires, Block-erase-before-page-rewrite, wear leveling, etc). Attaquer ces verrous nécessite une profonde redéfinition des principes classiques de gestion de bases de données (stockage, indexation, requêtes, transactions).
Notamment, une exécution de requêtes efficace avec peu de RAM nécessite d’indexer massivement la base de données. La conséquence est d’engendrer de très nombreuses écritures aléatoires en Flash pour maintenir les index, générant un coût exorbitant. Les solutions connues pour réduire les écritures aléatoires en Flash consomment une quantité importante de RAM, instaurant ainsi un cercle vicieux. PlugDB propose de nouvelles techniques d’organisation de la base de données et de l’évaluation de requêtes permettant de rompre ce cercle vicieux.
Par ailleurs, l’exécution de protocoles distribués sur un grand nombre de serveurs personnels pose de nouveaux défis. Par exemple, comment réaliser une étude épidémiologique sur des dizaines de milliers de dossiers médicaux décentralisés dans autant de serveurs personnels que de patients ? Comment faire des calculs statistiques de consommation sur des millions de compteurs électriques intelligents disséminés chez les habitants sans recentraliser cette information ? PlugDB répond à ces défis par la définition de protocoles de requêtes distribués sur une architecture dite asymétrique du fait qu’elle est composée, d’une part d’un grand nombre de serveurs personnels peu puissants et faiblement connectés mais fortement sécurisés, et d’autre part d’une infrastructure externe (ex: le cloud) très puissante, très disponible, mais sans garantie de confidentialité.
Suivant : Santé