Project

General

Profile

Feature #49340

Updated by Patrick Donnelly about 3 years ago

This library, libcephfssqlite, Library should add a "cephfs" VFS use the Client interface (not libcephfs) for SQLite3 similar access to the "ceph" VFS added in #40609. The difference is that the "ceph" VFS stripes a SQLite3 database over raw RADOS objects while the "cephfs" VFS will use CephFS to store the database as a regular file. CephFS. 

 One might wonder why we want this VFS when you could just mount CephFS (via See #40609 for the kernel driver or FUSE) and then manipulate a SQLite3 database normally as a regular file on the file system. The main reason is libcephsqlite project to avoid mounting CephFS at all. For example, in the ceph-mgr, it would be convenient to store a SQLite3 database in CephFS but the ceph-mgr never runs with CephFS mounted on the system like a normal client. Instead, the mgr/volumes plugin uses the CephFS python binding to manipulate subvolumes; and so, the addition of SQLite3 on CephFS would allow the ceph-mgr to store metadata more naturally without relying on text based formats for the subvolume metadata. 

 This library should use the "Client" internal library in Ceph (src/client) and not the libcephfs external library. See the "ceph" VFS in #40609 as a template.

Back