Feature #49340
openlibcephfssqlite: library for sqlite interface to CephFS
0%
Description
This library, libcephfssqlite, should add a "cephfs" VFS for SQLite3 similar 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.
One might wonder why we want this VFS when you could just mount CephFS (via the kernel driver or FUSE) and then manipulate a SQLite3 database normally as a regular file on the file system. The main reason is 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.