rocksdb icon indicating copy to clipboard operation
rocksdb copied to clipboard

Remote Compaction - CompactionFilter and other CFOptions from ObjectRegistry

Open jaykorean opened this issue 1 year ago • 1 comments

Summary

In the initial version of the remote compaction, CompactionServiceOptionsOverride was introduced temporarily as a workaround to set the pointer configurations explicitly because passing them to the remote worker was not available at that time.

In the Meta's internal Offload infra, we are now able to register these objects set in the CFOptions including CompactionFilter, MergeOperator and others. These pointer configs are passed to the remote worker as CustomSharedPtr, CustomUniquePtr, or CustomRawPtr Option types, which can be created by Type::createFromString() on the remote side as long as they are registered in the ObjectRegistry. (As defined in https://github.com/facebook/rocksdb/blob/92ad4a88f3199b013532b37d6598c442319355a5/options/cf_options.cc#L259-L833)

Test Plan

Updated compaction_service_test

./compaction_service_test

Also tested with Meta's internal Offload infra

jaykorean avatar Aug 28 '24 21:08 jaykorean

@jaykorean has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar Aug 28 '24 22:08 facebook-github-bot

@jaykorean has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot avatar Aug 29 '24 23:08 facebook-github-bot

@jaykorean has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar Aug 30 '24 00:08 facebook-github-bot

Plan changed

jaykorean avatar Aug 30 '24 22:08 jaykorean

@jaykorean has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot avatar Sep 06 '24 15:09 facebook-github-bot

@jaykorean has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar Sep 06 '24 15:09 facebook-github-bot