ceph/debian
Daniel Gryniewicz 5258bcbd73 RGW - Add POSIX Driver
This is the MVP for a driver for RGW that operates on top of a POSIX
filesystem.  It supports get, put, list, copy, multipart, external
access via the filesystem itself, and ordered bucket listings via an
LRU-based cache.

Note that this is currently a Filter, indended to run on top of dbstore.
This is because it currently doesn't have any User implementation, so it
depends on dbstore's User.  Everything else is implemented in
POSIXDriver.  Once there is a User implementation, this will become a
Store, instead of a Filter.

Commit messages from bucket listing cache:

  rgw/posixdriver: recycle lmdb database handles as required

    While LMDB workflows often do not close/return database handles,
    ours continually reuses them.  This requires us to close each
    handle (atomically) when a cache entry is recycled.

  rgw/posixdriver: don't instantiate bucket cache entries from notify events

  rgw/posixdriver: incorporate lmdb-safe for now

    The current inclusion is based on https://github.com/Martchus/lmdb-safe,
    which is actively maintained but currently has some packaging issues the
    author has agreed to accept fixes for.

    For now, skip the submodule to save time and remove an external dependency.

  rgw/posixdriver: fix listing of cached, empty bucket

    * check lmdb enumeration result in all cases and w/better style
    * add unit test for enumeration of an empty cached directory

  rgw/posixdriver: nest lmdbs in a directory under the dbroot path to avoid cleanup issues

  rgw/posixdriver: refactor for posix integration

    * Derive BucketCache types as templates on a SAL driver and SAL
      bucket pair.

    * Integrate cache fills as callbacks into SAL layer (or mock, for
      tests)

    * Renaming and cleanups

  rgw/posixdriver: add bucket cache implementation and tests

    Adds free-standing cache of buckets and object names, with
    bucket names (and listing attributes, upcoming) managed in
    a hashed set of lmdb databases, which provides ordering and
    a high-performance listing cache.

    An framework for notification on new object creation (e.g.,
    outside S3 workflow) is provided, and a Linux implementation
    using inotify.

    FindLMDB.cmake taken with attribution and license.

  rgw/posixdriver: add zpp_bits serialization (FAST)

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-14 12:09:40 -04:00
..
source
.gitignore
ceph-base.dirs
ceph-base.docs
ceph-base.install blk/kernel: add plugin system for devices with compression and move VDO support into plugin 2022-09-28 14:09:04 -04:00
ceph-base.lintian-overrides
ceph-base.maintscript
ceph-base.postinst
ceph-base.prerm
ceph-common.dirs
ceph-common.install rgw: install rgw scripts with common files rather than radosgw files 2023-03-15 09:35:45 -04:00
ceph-common.postinst debian/ceph-common.postinst: fix indent and cleanups 2021-05-08 23:15:07 +08:00
ceph-common.postrm
ceph-fuse.install rpm/deb/cmake: install mount.fuse.ceph man page 2020-12-17 16:30:07 -07:00
ceph-grafana-dashboards.install
ceph-immutable-object-cache.install
ceph-mds.dirs
ceph-mds.install
ceph-mds.postinst
ceph-mds.prerm
ceph-mgr-cephadm.install
ceph-mgr-cephadm.postinst
ceph-mgr-cephadm.prerm
ceph-mgr-cephadm.requires debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
ceph-mgr-dashboard.install
ceph-mgr-dashboard.postinst
ceph-mgr-dashboard.prerm
ceph-mgr-dashboard.requires debian/mgr: remove pytest from debian/ceph-mgr-dashboard.requires 2023-02-16 18:38:21 -05:00
ceph-mgr-diskprediction-cloud.prerm
ceph-mgr-diskprediction-local.install
ceph-mgr-diskprediction-local.postinst
ceph-mgr-diskprediction-local.prerm
ceph-mgr-diskprediction-local.requires debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
ceph-mgr-k8sevents.requires debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
ceph-mgr-modules-core.install spec: add nfs to spec file 2021-04-22 11:38:30 +05:30
ceph-mgr-modules-core.requires mgr/prometheus: use vendored "packaging" instead 2023-01-11 20:31:03 +08:00
ceph-mgr-rook.install
ceph-mgr-rook.postinst
ceph-mgr-rook.prerm
ceph-mgr-rook.requires debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
ceph-mgr.dirs
ceph-mgr.install debian: include the new object_format.py file 2022-05-26 10:56:44 -04:00
ceph-mgr.postinst
ceph-mgr.prerm
ceph-mgr.requires debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
ceph-mon.dirs
ceph-mon.install
ceph-mon.postinst
ceph-mon.prerm
ceph-osd.dirs
ceph-osd.install debian: split ceph-volume into a separated package 2021-09-14 23:19:54 +08:00
ceph-osd.postinst
ceph-osd.prerm
ceph-prometheus-alerts.install
ceph-resource-agents.install
ceph-test.install cmake: disable kvs rados cls by default 2021-08-04 10:21:10 +08:00
ceph-volume.install debian: split ceph-volume into a separated package 2021-09-14 23:19:54 +08:00
cephadm.install rpm,deb: drop /etc/sudoers.d/cephadm 2020-09-03 16:31:30 +02:00
cephadm.postinst
cephadm.postrm
cephfs-mirror.install debian: install cephfs-mirror systemd unit files and man page 2023-06-15 10:45:28 +05:30
cephfs-shell.install doc/man: build and install cephfs-shell manpage 2021-05-05 14:41:50 +08:00
cephfs-top.install spec, deb: package cephfs-top utility 2021-01-11 06:15:53 -05:00
changelog
compat
control RGW - Add POSIX Driver 2023-09-14 12:09:40 -04:00
copyright
libcephfs2.install
libcephfs-dev.install mds: add include/cephfs/types.h path in spec files 2022-06-08 11:49:17 +05:30
libcephfs-java.jlibs
libcephfs-jni.install
librados2.install
librados-dev.install
libradospp-dev.install
libradosstriper1.install
libradosstriper-dev.install
librbd1.install
librbd-dev.install
librgw2.install
librgw-dev.install
libsqlite3-mod-ceph-dev.install ceph.spec,debian: package libcephsqlite 2021-03-19 08:52:55 -07:00
libsqlite3-mod-ceph.install ceph.spec,debian: package libcephsqlite 2021-03-19 08:52:55 -07:00
libsqlite3-mod-ceph.symbols debian/libsqlite3-mod-ceph: add .symbols file 2021-03-23 11:36:41 +08:00
py3dist-overrides debian: add .requires for specifying python3 deps 2022-05-31 19:42:32 +08:00
python3-ceph-argparse.install cmake,debian: install pure python module to deb_system path 2022-08-05 09:10:04 +08:00
python3-ceph-common.install
python3-cephfs.install *: remove legacy ceph_volume_client.py library 2021-01-12 06:54:29 -08:00
python3-rados.install
python3-rbd.install
python3-rgw.install
rados-objclass-dev.install
radosgw.dirs
radosgw.install rgw: install rgw scripts with common files rather than radosgw files 2023-03-15 09:35:45 -04:00
radosgw.postinst
radosgw.prerm
rbd-fuse.install
rbd-mirror.install
rbd-nbd.install
rules rpm, debian: use cmake to install the cephadm binary 2022-09-13 12:17:20 -04:00
watch