summaryrefslogtreecommitdiffstats
path: root/src/rgw/rgw_sal.cc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* RGW: Remove get_obj_state()/set_obj_state from SALDaniel Gryniewicz2024-05-281-35/+0
| | | | | | | | | | | | | RGWObjState is the state for the StoreObject class. It has historically been accessible via get_obj_state()/set_obj_state(), but the double pointer nature of this access has caused multiple bugs, and the RGWObjState itself is an implementation detail that doesn't need to be exposed. Instead, add a load_obj_state() that loads the state from the store, and use proper getters/setters for the data. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* rgw: Take in `io_context` by referencesamarah2024-04-021-2/+2
| | | | Signed-off-by: samarah <suriarte@redhat.com>
* rgw/d4n: this commit squashes the following commits related toSamarah2024-04-021-2/+2
| | | | | | | | | | | | | | | | | | | | | clean up and removal of cpp_redis. d4n/filter: Add `optional_yield` to CacheDriver calls in D4N Filter and make minor updates to several filter methods rgw/d4n: fix compilation issue. rgw/cache: Add `del` method to CacheDriver and SSDDriver cmake/d4n: Remove unnecessary D4N lines rgw: Add `io_context` to D4N Filter and RedisDriver, remove `cpp_redis` library from RedisDriver, and perform minor cleanup d4n: Remove `cpp_redis` library from D4N directory and policy; update calls in filter; move Entry struct to base CachePolicy class build/cpp_redis: Remove `cpp_redis` library rgw/d4n: including <boost/asio/detached.hpp> wheerever needed. rgw/d4n : fixes to d4n filter, policy, directory and redis driver files for compilation errors. Signed-off-by: Samarah <samarah.uriarte@ibm.com> Signed-off-by: Casey Bodley <cbodley@redhat.com> Co-authored-by: Pritha Srivastava <prsrivas@redhat.com>
* rgw/d4n: This commit squashes the following commits related toSamarah2024-04-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d4n policy and filter driver. RGW: Add cache driver base class - add d4n filter driver. RGW: Update cache and policy files; add RedisDriver into D4N filter RGW: Add D4N classes and unit testing; update cpp_redis submodule QA: Add D4N teuthology suite RGW: Improve D4N readability and structure RGW: Add base D4N policy and test RGW: Add GWF policy to D4N RGW: Add global weight property RGW: Added D4N namespace RGW: Update policy driver interface RGW: Update unit tests RGW: Add Address struct to all files RGW: Update D4N names and structure RGW: Update structure and fix errors RGW: Add more features to policy driver RGW: Access local weight in policy code RGW: Work on D4N workflows RGW: Add object directory class and remove copy_value method RGW: Establish object directory in read workflow RGW: Update cache and policy files; add RedisDriver into D4N filter RGW: Switch out D4N cache methods with Redis driver methods RGW: Update RedisDriver to match new CacheDriver structure; define set_attrs method RGW: Fix D4N read workflow crashes RGW: Update D4N files to match CacheDriver changes RGW: fix key_exists method for RedisDriver and clean up rgw_sal_d4n.cc RGW: Use correct get_block method RGW: Make CachePolicy a virtual class RGW: Initialize localWeight if not found and develop find_victim method RGW: Debugging network failure RGW: Rebase and debugging network failure RGW: Update RedisDriver::list_entries and usage in D4N policy driver RGW: Fix network failure issue; add entries and entry methods RGW: Update D4N test files to match rebase RGW: Update D4N policy and RedisDriver with entries RGW: make localWeight an attribute rgw/cache: commit to fix compilation issues. Signed-off-by: Samarah <samarah.uriarte@ibm.com>
* rgw/rados: store SiteConfig with RGWServicesCasey Bodley2024-03-051-8/+7
| | | | | | | make the SiteConfig available to all of RGWRados via svc.site instead of storing it in sal::RadosStore Signed-off-by: Casey Bodley <cbodley@redhat.com>
* rgw: Thread site config into RADOS driverAdam Emerson2024-01-241-5/+9
| | | | | | | Make this available so multisite sync doesn't have to rely on the zone service. Signed-off-by: Adam Emerson <aemerson@redhat.com>
* rgw: SAL drivers take `boost::asio::io_context`Adam C. Emerson2024-01-241-5/+6
| | | | | | | `RadosDriver` needs it, and since SAL generally uses `optional_yield`, other stores are going to need it to implement that sensibly. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* rgw: Remove RGWSI_RADOS from RGWSI_BI_RADOSAdam C. Emerson2023-11-291-4/+5
| | | | | | Simply use the RADOS handle and `rgw_rados_ref` directly. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* Merge pull request #52933 from dang/wip-dang-posix-driverDaniel Gryniewicz2023-09-151-0/+19
|\ | | | | | | | | | | RGW - Add POSIX Driver Reviewed-by: Casey Bodley <cbodley@redhat.com> Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
| * RGW - Add POSIX DriverDaniel Gryniewicz2023-09-141-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #51368 from dang/wip-dang-zipper-motrDaniel Gryniewicz2023-09-131-3/+3
|\ \ | |/ |/| Fix MOTR build, and move MOTR and DAOS to proper location
| * RGW - Move DAOS and MOTR to proper locationsDaniel Gryniewicz2023-05-051-2/+2
| | | | | | | | Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * RGW - Make MOTR buildDaniel Gryniewicz2023-05-051-1/+1
| | | | | | | | Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* | src/rgw: Changing null_yield to optional_yieldKalpesh Pandya2023-06-191-3/+3
| | | | | | | | | | | | | | Focused on rgw_rados_operate() and passing null_yield in rgw_lc.cc, rgw_gc.cc, rgw_object_expirer_core.cc Signed-off-by: Kalpesh Pandya <kapandya@redhat.com>
* | RGW: Add D4N classes and unit testing; update cpp_redis submodulesamarah2023-06-051-1/+23
|/ | | | Signed-off-by: samarah <suriarte@redhat.com>
* rgw: don't start the bucket notification thread in radosgw-adminYuval Lifshitz2023-03-071-0/+3
| | | | Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
* Merge branch 'master' into update-ceph-mgwAndriy Tkachuk2023-01-281-62/+212
|\
| * RGW - Zipper - move rgw/store to rgw/driverDaniel Gryniewicz2022-12-081-3/+3
| | | | | | | | Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * RGW - Zipper - Rename rgw::sal::Store to rgw::sal::DriverDaniel Gryniewicz2022-12-081-69/+69
| | | | | | | | | | | | | | | | | | | | | | | | All along, we've had an overload of the term "store". It was the base class of the entrypoint, and it was the lowest layer in a stack. This renames the base class to Driver. So, the primary elements of zipper that to work are now Drivers, and they come in two different flavors: Filters live in the middle of the stack, and do not need to implement every API, but pass through instead. And Stores live a the bottom of the stack, and must implement the entire API. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * rgw: add create_config_store() factoryCasey Bodley2022-09-281-0/+30
| | | | | | | | Signed-off-by: Casey Bodley <cbodley@redhat.com>
| * rgw: add DAOS SAL implementationZuhair AlSader2022-09-071-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To build with DAOS backend, use -DWITH_RADOSGW_DAOS=YES cmake option. `daos-devel` rpm should be installed beforehand. To connect to DAOS pool, add the following configuration parameters to ceph.conf: ``` [client] ... rgw backend store = daos daos pool = tank ``` A pool could be created using the following command: ``` dmg pool create --size=<size> <pool_name> ``` To install `daos-devel` do: ``` sudo wget -O /etc/yum.repos.d/daos-packages.repo https://packages.daos.io/v2.0/EL8/packages/x86_64/daos_packages.repo sudo rpm --import https://packages.daos.io/RPM-GPG-KEY sudo yum install -y epel-release daos-server daos-client daos-devel ``` Co-authored-by: Walter Warniaha <walter.warniaha@seagate.com> Signed-off-by: Zuhair AlSader <zuhair.alsader@seagate.com>
| * rgw: fix d3n crash in StoreManager::get_config()Casey Bodley2022-09-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | config options with `type: size` are not actually `size_t` but `uint64_t`, so accessing them with `get_val<size_t>()` leads to a `bad_variant_access` exception. use the `Option::size_t` type instead Fixes: https://tracker.ceph.com/issues/57195 Signed-off-by: Casey Bodley <cbodley@redhat.com>
| * RGW - Zipper - Init cleanupDaniel Gryniewicz2022-08-011-12/+77
| | | | | | | | | | | | | | Cleanup getting config, replacing it with a future-extensible system, and consolidating it all into common zipper code. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * RGW - Zipper - Add temporary Filter testingDaniel Gryniewicz2022-07-271-24/+38
| | | | | | | | | | | | | | | | | | In order to test filters, we need to be able to instantiate one and stack it over a store. Add a temporary config option to specify a filter that can be used for testing. This will be replaced with a better system once the loadable module work is done. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* | Merge remote-tracking branch 'ceph_main/main' into update-ceph-mgwDattaprasad Govekar2022-06-221-21/+73
|\| | | | | | | Signed-off-by: Dattaprasad Govekar <dattaprasad.govekar@seagate.com>
| * rgw/dbstore: Support user creation via `radosgw-admin`Soumya Koduri2022-05-101-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | With the changes in https://github.com/ceph/ceph/pull/45987 , 'radosgw-admin' command can be used to execute few admin operations on other stores. This fix include changes to support user creation/remove via `radosgw-admin` command in dbstore. Also fixed an issue with updating objv_tracker in op_state.user Signed-off-by: Soumya Koduri <skoduri@redhat.com>
| * RGW - Split RGWRados initializationDaniel Gryniewicz2022-05-021-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The inter-connectedness of RadosStore and RGWRados resulted in a segfault during RGWRados::init_complete due to the rados pointer not being set in RadosStore yet. Split the calls to RGWRados::initialize and RGWRados::init_complete, so that we can set up RadosStore between them, allowing the services created in RGWRados::init_complete to access the RadosStore. Fixes: https://tracker.ceph.com/issues/55512 Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * RGW: Zipper - zonegroup, placement tierDaniel Gryniewicz2022-04-201-6/+18
| | | | | | | | | | | | | | | | | | Add ZoneGroup and PlacementTier to the Zipper API. This cleaned up a lot of issues in the Module branch. In addition, add cloud transition. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
| * RGW - Zipper - remove RGWObjectCtx from SAL APIDaniel Gryniewicz2022-03-071-0/+35
| | | | | | | | | | | | | | | | | | RGWObjectCtx is a RADOS-specific concept, but it's threaded through the whole of RGW. Remove it from the SAL API, and from everything above the line, leaving it only in RadosStore. As part of this, move RGWObjState to SAL and use it as the key for an Object. Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
* | rgw_sal_motr: [EOS-28051] Enable access/secret keys for RGW Motr user (#76)Jeet Jain2022-04-011-29/+0
|/ | | | | | | Enable access and secret keys for RGW Motr user by replacing hard coded access key values with correct implementation. Signed-off-by: Jeet Jain <jeet.jain@seagate.com>
* rgw: add CORTX Motr SAL implementationAndriy Tkachuk2022-01-271-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To build with Motr backend, use -DWITH_RADOSGW_MOTR=YES cmake option. cortx-motr-devel rpm should be installed beforehand. To connect to Motr cluster, add the following configuration parameters to ceph.conf: [client] ... rgw backend store = motr motr profile fid = 0x7000000000000001:0x4f motr ha endpoint = inet:tcp:10.0.0.1@2001 ... [client.rgw.8000] ... motr my endpoint = inet:tcp:10.0.0.1@5001 motr my fid = 0x7200000000000001:0x29 The correct values for the Motr connection parameters can be taken from `hctl status` cmd output after Motr cluster is bootstrapped. In the example above, the values were taken from the following output: Profile: 0x7000000000000001:0x4f Services: centos8n1 [started] hax 0x7200000000000001:0x6 inet:tcp:10.0.0.1@5001 ... [unknown] m0_client 0x7200000000000001:0x29 inet:tcp:10.0.0.1@5001 Motr pkgs for the build/run can be taken from https://github.com/Seagate/cortx-motr/releases/tag/2.0.0-rgw. Co-authored-by: Sining Wu <sining.wu@seagate.com> Signed-off-by: Andriy Tkachuk <andriy.tkachuk@seagate.com>
* rgw/dbstore: Fixing s3 test 'test_bucket_delete_nonempty'Soumya Koduri2022-01-131-0/+1
| | | | | | | if delete_children not set to 'true', delete bucket should fail with ENOTEMPTY Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw/dbstore: APIs to handle lc stateSoumya Koduri2021-11-111-3/+4
| | | | | | Add placeholder APIs to create and store LC related state. Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* Merge pull request #43054 from soumyakoduri/wip-skoduri-dbstore-vstartDaniel Gryniewicz2021-09-221-0/+13
|\ | | | | | | | | rgw: Add option to configure backend store Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
| * rgw/dbstore: Insert testid user on startupSoumya Koduri2021-09-201-0/+13
| | | | | | | | | | | | | | Its temporary change to insert testid user while starting up rgw server on dbstore. Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* | rgw/dbstore: Object APIsSoumya Koduri2021-09-201-0/+24
|/ | | | | | Support for simple Put, Get, Delete, List Ops of Regular Objects on dbstore. Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw/dbstore: Add DBStore base class def to namespace rgw::storeSoumya Koduri2021-07-281-4/+4
| | | | Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw/dbstore: Use dpp for loggingSoumya Koduri2021-07-281-1/+1
| | | | | | | Aligning with other Ceph RGW modules, use dpp for logging. A default dpp is defined for DBStore to be used for unit-tests. Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw/dbstore: Use CEPH RGW logging in ceph contextSoumya Koduri2021-07-281-3/+14
| | | | | | | | When running dbstore as RGW backend, use the logging mechanism and config values provided by default by RGW. For other tests, set logfile and loglevel to the input values provided. Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw/dbstore: DB backend for RGWSoumya Koduri2021-07-281-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | As part of Zipper, adding support for DB backend (using SQLite) for Stackable RGW. The base class methods implemented are generic which could be extended to any backend database, not just SQLite. More details on design/implementation can be found at - https://docs.google.com/document/d/1xCoHT5DCujqbe1pnEfYpSaSqiBcW8z87CgQCC5LivOo/edit# Current status: [Done] - User related APIs - Bucket APIs - Testcases (using Gtest) to test the DBStore APIs [Not handled in the first pass] - Quota - Usage Stats - Swift Users - Multiple Zones/Zonegroups [WIP] - Object APIs Signed-off-by: Soumya Koduri <skoduri@redhat.com>
* rgw: D3N Cache changes for UpstreamMark Kogan2021-07-061-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstreaming / rebase of #24500 Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: change io_ctx pool per storage class Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: Changing free() to delete() Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: Addressing review comments Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: Fixing seg fault Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> Moving CacheRequest out of librados Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: cache initialization fix Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: fix missing spawn.hpp compile errors resolves compilation errors similar to: ``` [ 15%] Building CXX object src/tools/immutable_object_cache/CMakeFiles/ceph_immutable_object_cache_lib.dir/CacheController.cc.o In file included from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_common.h:31, from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_rados.h:17, from /home/jenkins-build/build/workspace/ceph-pull-requests/src/librados/IoCtxImpl.h:30, from /home/jenkins-build/build/workspace/ceph-pull-requests/src/librados/RadosClient.h:35, from /home/jenkins-build/build/workspace/ceph-pull-requests/src/neorados/RADOSImpl.h:27, from /home/jenkins-build/build/workspace/ceph-pull-requests/src/neorados/RADOS.cc:37: /home/jenkins-build/build/workspace/ceph-pull-requests/src/common/async/yield_context.h:31:10: fatal error: spawn/spawn.hpp: No such file or directory 31 | #include <spawn/spawn.hpp> | ^~~~~~~~~~~~~~~~~ compilation terminated. src/neorados/CMakeFiles/neorados_api_obj.dir/build.make:62: recipe for target 'src/neorados/CMakeFiles/neorados_api_obj.dir/RADOS.cc.o' failed make[3]: *** [src/neorados/CMakeFiles/neorados_api_obj.dir/RADOS.cc.o] Error 1 ``` Signed-off-by: Mark Kogan <mkogan@redhat.com> Resolving merge conflict Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> Removing all logs and unnecessary comments Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> Cache Read and Write working Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> Initial Commit L1 Cache Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> post re-rebase merge, update fixes Signed-off-by: Mark Kogan <mkogan@redhat.com> fixup! post re-rebase merge, update fixes rgw: continuation of rgwcache branch rebase Signed-off-by: Mark Kogan <mkogan@redhat.com> RGW: DataCache: post merge fixes Signed-off-by: Mark Kogan <mkogan@redhat.com> fixes of segmentation fault caused by oid Signed-off-by: E. Ugur Kaynar <ukaynar@bu.edu> rgw: fixes for segmentation faults and configuration processing Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: data cache first commit Signed-off-by: Mania Abdi <mania.abdi287@gmail.com> rgw: cleanup addressing PR comments Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: cleanup addressing PR comments, continuation. Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: pr cleanup addressing second review round Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: Addressing review comments, removing all D3N code from librados Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: for compilation err from removal of mydout() helper Signed-off-by: Mark Kogan <mkogan@redhat.com> rge: addressing review comments rgw: move d3n datacache into separate files rgw: 1st part of datacache rebranding to d3n fix forward declaration compile err (only with clang): ../src/rgw/rgw_cache.h:396:4: error: member access into incomplete type 'struct get_obj_data' d->data_lock.lock(); ^ ../src/rgw/rgw_cache.h:365:8: note: forward declaration of 'get_obj_data' struct get_obj_data; ^ Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: addressing review comments, datacache rebranding to d3n cache Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: Cleaning up unused D3N cache code Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: cont. cleaning up of rgw_obj_data() Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: Removing redundant code, fix for multipart S3 objects Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: fix: incorrect content len on multipart get in s3tests_boto3.functional.test_s3:test_multipart_copy_versioned when d3n cache is disabled Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: fix segfault reading from cache Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: fix segfault in multisite sync on secondary site Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: fix segfault in multisite teuthology tests, cont. Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: Adding drain to wait for all AIO reads to complete Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com> rgw: fix for using read() by liabio or posix io per config Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: improve persistent data cache directory handling on start create the persistent datacache directory if necessary and add an option to evict it's content if already exists Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: fix possible segfault during eviction Signed-off-by: Mark Kogan <mkogan@redhat.com> Co-authored-by: Mania Abdi <mania.abdi287@gmail.com> Co-authored-by: E. Ugur Kaynar <ukaynar@bu.edu> Co-authored-by: Aishwarya Mathuria <amathuri@redhat.com> Co-authored-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: addressing latest review comments Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: add debug logs for cache in/out flow Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: move the L2 cache functionality to separate PR Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: addressing review comments Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: address java_s3tests teuthology issues Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: do not handle compressed objects fro now Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: l2 cleanup and log fixups + post dpp Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: thread dpp thru get_obj_iterate_cb() and related Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: bypass reading versioned objects from cache Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: cleanup and fix s3tests Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: allow to enable cache only on beast Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: delete the content of the cache directory on rgw start Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: re-enable d3n cache with civetweb frontend Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: rebase post zipper 10 Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: address teuthoogy valgrind leaks detected Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: mitigating valgrind leaks Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: remove rgw_d3n_l1_libaio_read option Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: wip segfault fix Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: mitigate libaio SIGEV_THREAD cb race Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: change libaio signaling mechanism Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: wip cont. libaio cb thread race Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: wip libaio cb thread race Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: libaio cleanups and edge case handling fixes Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: narrow the libaio locking scope Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: add libaio req ordering mechanism Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: fix lock regression Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: addressing reviwe comments and cleasnup Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: libaio locks cleanup Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: refactor libaio abstraction to share the ioc implementation Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: addressing latest review comments and cleanup Signed-off-by: Mark Kogan <mkogan@redhat.com> rgw: d3n: address review comments, cont. Signed-off-by: Mark Kogan <mkogan@redhat.com> Co-authored-by: Mania Abdi <mania.abdi287@gmail.com> Co-authored-by: E. Ugur Kaynar <ukaynar@bu.edu> Co-authored-by: Aishwarya Mathuria <amathuri@redhat.com> Co-authored-by: Ali Maredia <amaredia@redhat.com> Co-authored-by: Feng Hualong <hualong.feng@intel.com>
* radosgw-admin: skip GC init on read-only admin opsMark Kogan2021-04-281-1/+2
| | | | | | Fixes: https://tracker.ceph.com/issues/50520 Signed-off-by: Mark Kogan <mkogan@redhat.com>
* RGW Zipper - Fix style violationsDaniel Gryniewicz2021-04-151-7/+7
| | | | | | Change type *var; to type* var; Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* RGW Zipper - The Great RenameDaniel Gryniewicz2021-04-151-10/+10
| | | | | | | Rename RGWFoo to Foo. It's all in the rgw::sal namespace anyway, so the RGW is redundant. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* RGW - Zipper 10: Pull The ThreadDaniel Gryniewicz2021-03-021-0/+61
| | | | | | | | This commit changes the RGWStoreManager to return a RGWStore* rather than a RGWRadosStore*. This is the thread that unravels the rest of the Zipper work, removing hard-coded uses of the RGWRados* classes. Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* Zipper - Split RadosStore from base SALDaniel Gryniewicz2020-09-081-953/+0
| | | | Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* Zipper - implement copy_objectDaniel Gryniewicz2020-09-081-0/+60
| | | | Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* Zipper - Remove more instances of getRados() from rgw_op.ccDaniel Gryniewicz2020-09-081-0/+4
| | | | | | - RGWGetObj and RGWPutObj Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
* Merge pull request #36542 from mkogan1/wip-rgw-fix-sync-statsCasey Bodley2020-09-031-1/+1
|\ | | | | | | | | rgw: fix user stats iterative increment Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
| * rgw: fix user stats iterative incrementMark Kogan2020-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The RGWBucketCtl::sync_user_stats() function can increment or reset the stats [1][2] [1]https://github.com/ceph/ceph/blob/master/src/rgw/rgw_bucket.cc#L3745 [2]https://github.com/ceph/ceph/blob/master/src/rgw/services/svc_bi_rados.cc#L379-L381 fixes: https://tracker.ceph.com/issues/46400 Signed-off-by: Mark Kogan <mkogan@redhat.com>