Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds documentation about FDP support in Cachelib #308

Closed

Conversation

arungeorge83
Copy link

This adds the relevant documentation related to the FDP integration to CacheLib which was merged in commit 009e89b.

This commit adds a separate page containing all the information about FDP and its use in CacheLib. Additionally, this page introduces a potential user of CacheLib with all the relevant steps to setup up an FDP SSD and to run CacheLib with FDP enabled.

The parameter to enable FDP in CacheBench "deviceEnableFDP" has been updated to the CacheBench configuration page.

The parameter to enable FDP in Navy Config
"navyConfig.setEnableFDP(enableFDP)" is updated to the Hybrid Cache configuration page.

Information on the FdpNvme class is added to the Navy Architecture Guide page.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 24, 2024
```

### When should FDP be enabled?
When using Navy, FDP can help play a role in improving SSD endurance in comparison to Non-FDP. If the workload has both small objects and large objects, FDP's WAF gains will most likely be evident because FDP segregates these two in the SSD. In cases like CacheLib's CDN workload where BigHash is typically not configured, this FDP based segregation will make no difference to SSD WAF. On the other hand with CacheLib's KV Cache workload where both Big Hash and Block Cache are configured, we see the gains from using FDP.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add some numbers here from your experiments in KV Cache workloads FDP vs without?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we'll add the data we have from our KV Cache experiments with and without FDP.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've updated the results in the commit. Please check and let us know.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

appreciate it!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text refers FB HW traces but not which one specifically and the parameters that was used. Can the text be updated to define the specific trace used, and what other specific parameters, such that results can be reproduced?

Copy link

@roshanrn roshanrn May 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With respect to configs:
We leave out configs in this description because we don't change the default configs obtained when downloading the traces. We expect the user to follow the steps mentioned in the Evaluating SSD hardware for Facebook workloads page to run the production traces with CacheBench. The only additional steps to enable FDP would be to use the flags mentioned in this page.

With respect to the specific trace used:
As mentioned the benefits of FDP can be seen with KV Cache traces and these benefits won't be seen with CDN or Storage traces because they don't configure the SOC.
There are multiple KV Cache traces in "s3://cachelib-workload-sharing/pub/kvcache/". Any of them can be used to observe the benefits. Again, this is why we don't point to a specific KV Cache trace in this description.

However, we can update the PR to point to the particular KV Cache trace used in the results section presented for the sake of reproducibility.

Summary:
This adds the relevant documentation related to the FDP integration to
CacheLib which was merged in commit 009e89b.

This commit adds a separate page containing all the information about
FDP and its use in CacheLib. Additionally, this page introduces a
potential user of CacheLib with all the relevant steps
to setup up an FDP SSD and to run CacheLib with FDP enabled.

The parameter to enable FDP in CacheBench "deviceEnableFDP" has been
updated to the CacheBench configuration page.

The parameter to enable FDP in Navy Config
"navyConfig.setEnableFDP(enableFDP)" is updated to the Hybrid Cache
configuration page.

Information on the FdpNvme class is added to the Navy Architecture Guide
page.

Signed-off-by: Roshan Nair <[email protected]>
@facebook-github-bot
Copy link
Contributor

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

@facebook-github-bot
Copy link
Contributor

@haowu14 merged this pull request in a542ec6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants