- Système qui permet de stocker une base de données SQLite dans un stockage cloud et d’y lire/écrire sans télécharger l’intégralité de la base de données
- Prend actuellement en charge Azure Blob Storage et Google Cloud Storage
- Utilise le module VFS Block Cache : fonctionne en mode sans daemon (lecture/écriture) et en mode daemon (lecture seule)
Ce que GN⁺ a résumé
- Le système « Cloud Backed SQLite » (CBS) stocke la base de données dans un compte de stockage cloud et permet aux clients de stockage d’y accéder sans télécharger l’intégralité de la base.
- Plusieurs clients peuvent accéder simultanément à la base de données, mais un seul client peut y écrire.
- CBS prend actuellement en charge Azure Blob Storage et Google Cloud Storage, et pourrait aussi prendre en charge d’autres systèmes de stockage cloud.
- La base de données SQLite est découpée en blocs de taille fixe puis stockée dans le système de stockage cloud.
- Le système se compose d’éléments de base pour gérer les conteneurs de stockage cloud, d’un processus daemon fournissant un accès local à une base distante, et d’un module VFS pour accéder à la base cloud.
- Pour utiliser CBS, l’application doit compiler et lier les fichiers C et en-têtes nécessaires, ainsi que lier
libcurl et openssl.
- Le système peut être testé à l’aide d’une suite de tests automatisée.
- Les bases de données peuvent être téléversées vers un compte de stockage cloud à l’aide d’outils en ligne de commande.
- Pour accéder à une base stockée dans le cloud, il faut créer un VFS, connecter un conteneur, ouvrir le handle de base de données et exécuter les scripts SQL.
- Le système fournit une API pour prendre en charge de nouveaux systèmes de stockage cloud et implémenter des tables virtuelles.
- Cet article aborde l’utilisation de conteneurs sécurisés dans les systèmes de stockage cloud.
- Les conteneurs peuvent être connectés de manière sécurisée ou non sécurisée ; les connexions sécurisées chiffrent les données avec AES OFB.
- Le client local doit disposer d’identifiants valides pour le stockage cloud afin d’obtenir la clé de chiffrement auprès du processus daemon.
- L’article mentionne les modules intégrés
azure et google pour les systèmes de stockage cloud.
- L’API CBS et les outils en ligne de commande requièrent une spécification de module, un nom d’utilisateur et une valeur d’authentification.
- L’article fournit des détails sur le module
azure ainsi que sur la manière de générer un jeton SAS pour l’authentification.
- Le module
google requiert un ID de projet et un jeton d’accès pour connecter CBS à Google Cloud Storage.
- L’article mentionne l’accès concurrent depuis plusieurs clients et la nécessité d’interroger régulièrement le conteneur pour détecter les changements.
- Blockcachevfs prend en charge trois instructions PRAGMA :
bcv_upload, bcv_poll et bcv_client.
- L’interface de table virtuelle se compose des tables
bcv_container et bcv_database.
- La table
bcv_container contient des informations sur les conteneurs connectés, et la table bcv_database contient des informations sur les bases de données de chaque conteneur.
- L’article traite de la structure et des fonctions des différentes tables de la base de données blockcachevfs.
- La table
bcv_database contient des informations sur les modifications locales apportées à la base de données.
- La table
bcv_http_log enregistre les requêtes HTTP effectuées par le VFS ou le daemon connecté.
- La table
bcv_kv permet à l’application d’écrire des données dans le conteneur de stockage cloud.
- La table
bcv_kv_meta fournit un accès en lecture seule aux en-têtes HTTP du serveur de stockage cloud.
- L’article fournit également une référence en ligne de commande pour diverses opérations dans la base de données blockcachevfs.
- La commande daemon permet au processus
blockcachevfsd de s’exécuter comme serveur et d’accepter les connexions des clients.
- Le processus daemon prend en charge diverses options de configuration et de journalisation.
1 commentaires
Avis sur Hacker News
sql.js-httpvfs, qui aide à ce processustmpfs, puis à la copier vers un stockage objetpg_dumpetmysqldump