Skip to content

Meta rebase #3

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

Closed
wants to merge 2,159 commits into from
Closed

Meta rebase #3

wants to merge 2,159 commits into from

Conversation

guptask
Copy link

@guptask guptask commented Aug 10, 2022

No description provided.

Open Source Bot and others added 30 commits July 22, 2022 15:23
Summary:
GitHub commits:

facebook@35c9317
facebook/fb303@ff82ca2
facebook/fbthrift@fd12520
facebook/proxygen@19e6422
facebook/watchman@13b64db
facebookexperimental/rust-shed@bcbcd78

Reviewed By: jurajh-fb

fbshipit-source-id: 1cae62ca1816999755fa7d02ade5acb0d7d6a1c2
Summary:
GitHub commits:

facebook/fbthrift@2084e71
facebookresearch/FLSim@25dcc15

Reviewed By: jurajh-fb

fbshipit-source-id: 633ebba055ee849f612624dfdb4586e102f6c5e0
Summary:
GitHub commits:

facebook@9754496
facebook/fb303@c90b698
facebook/fbthrift@09c7898
facebook/watchman@59d2099
facebookexperimental/rust-shed@739451c

Reviewed By: jurajh-fb

fbshipit-source-id: f27967de0574c05e7a14443a058b77222d51a015
Summary:
GitHub commits:

facebook/fbthrift@4816073

Reviewed By: jurajh-fb

fbshipit-source-id: 98a25f03da94d1a493dc3164ef873f4a7a6c4e7f
Summary:
GitHub commits:

facebook/fbthrift@f090926

Reviewed By: jurajh-fb

fbshipit-source-id: 7d3458299e95ab7202eeb336fbaa8861f763f477
Summary:
GitHub commits:

facebook/fbthrift@29f5be1

Reviewed By: jurajh-fb

fbshipit-source-id: 681ea59613c4a5f67b88cdefcef0b4992f64ecdd
Summary:
- `ItemHandle` -> `WriteHandle` codemod in external use cases
- Remove `ItemHandle` from cachelib codebase

Reviewed By: therealgymmy

Differential Revision: D37500348

fbshipit-source-id: 4aaf5bed9b1472064770e8845e2bdbd19af230a4
Summary:
GitHub commits:

facebook/fbthrift@8ce919e

Reviewed By: wittgenst

fbshipit-source-id: 830dd79a01a7084fa6f37ec71b2b8113dd3f64eb
Summary:
GitHub commits:

facebook/folly@bd3e0f7

Reviewed By: wittgenst

fbshipit-source-id: 789ee0df03bc957ab274a27d859c8d3cd7a6e37c
Summary:
GitHub commits:

facebook/fbthrift@a4fdb4a

Reviewed By: wittgenst

fbshipit-source-id: f2511ee94b10175cdb76934e663aaad372bb4c13
Summary:
GitHub commits:

facebook/fbthrift@93deaa2
facebook/litho@2ad905d
facebook/watchman@063d421
facebookincubator/velox@0f34e2e

Reviewed By: wittgenst

fbshipit-source-id: 1f8193cbb4cc8ee7e0781ccc583e2a0c41e508fa
Summary:
GitHub commits:

facebook/folly@6e11b1e
facebookresearch/beanmachine@8bdfb73

Reviewed By: wittgenst

fbshipit-source-id: fe32c2aa0dea86fdc52906e03784f0a18cedb03e
vinser52 and others added 27 commits August 10, 2022 01:21
Without this fix removeCb called even in case when Item is moved between
tiers.
It fails because CentOS is EOL. We might want to consider
using CentOS Streams but for now, just remove it.

Right now, we rely on build-cachelib-centos workflow anyway.
Disabled test suite allocator-test-AllocatorTypeTest to skip sporadically failing tests.
Compensation results in ratios being different than originially specified.
Return a sum of sizes of each tier instead of just 1st tier's size.
Compilation of some of the tests was failing with:
"undefined reference to `facebook::cachelib::test_util::getRandomAsciiStr[abi:cxx11](unsigned int)'"

Fix this by linking those tests with common/TestUtils.cpp

Also, for some reason specyfing sources as in
add_library(common_test_support INTERFACE [sources...]) did not work.
Using target_sources works fine.
The issue happened when ReadHandleImpl ctor needs to destroy
waitContext_ because addWaitContextForMovingItem() returns false.
So before destroying waitContext_ we are calling discard method to
notify ~ItemWaitContext() that Item is ready.
Do not use shallow clone to make sure Docker rebuild logic works correctly.
Get tier id of item before calling any function on allocator
(which needs the tierID).
Remove the item from mmContainer and drop the lock before attempting
eviction.

Use moving bit for synchronization in findEviction

moving bit is used to give exclusive right to evict the item
to a particular thread.

Originially, there was an assumption that whoever marked the item
as moving will try to free it until he succeeds. Since we don't want
to do that in findEviction (potentially can take a long time) we need
to make sure that unmarking is safe.

This patch checks the flags after unmarking (atomically) and if ref is
zero it also recyles the item. This is needed as there might be some
concurrent thread releasing the item (and decrementing ref count). If
moving bit is set, that thread would not free the memory back to
allocator, resulting in memory leak on unmarkMoving().
The main purpose of this patch is to better simulate workloads in
cachebench. Setting touchValue to true allows to see performance
impact of using different mediums for memory cache.
* #75: Use actual tier sizes (rounded down to slab size and decreased by header size) when creating new memory pools

* Added getPoolSize method to calculate combined pool size for all tiers; added pool size validation to tests

* Explicitly specified type for totalCacheSize to avoid overflow

* Minor test change

* Reworked tests

* Minor change

* Deleted redundant tests

* Deleted unused constant

* First set of changes to cache configuration API to enable multi-tier caches (facebook#138)

Summary:
These changes introduce per-tier cache configuration required to implement features discussed here: facebook#102. These specific changes enable single DRAM tier configs only which are compatible with the current version of cachelib. Configuration API will be expanded as multi-tier changes in other parts of the library are introduced.

Pull Request resolved: facebook#138

Reviewed By: therealgymmy

Differential Revision: D36189766

Pulled By: jiayuebao

fbshipit-source-id: 947aa0cd800ea6accffc1b7b6b0c9693aa7fc0a5

Co-authored-by: Victoria McGrath <victoria.mcgrath@intel.com>
Hot queue iterator for 2Q. Will start at Hot queue and move to Warm queue if hot queue is exhausted. Useful for promotion semantics if using 2Q replacement. rebased on to develop and added some tests.
@guptask guptask closed this Aug 11, 2022
vinser52 pushed a commit that referenced this pull request Sep 12, 2022
Summary:
AdRanker ASAN canary flagged a possible UBSan violation.

## Error
Failed Run: https://fburl.com/servicelab/apytosry
```
    #0 0x562e3adb59bc in facebook::cachelib::objcache2::ObjectCacheSizeController<facebook::cachelib::CacheAllocator<facebook::cachelib::LruCacheTrait> >::work() buck-out/v2/gen/fbcode/47d914adeee3d982/cachelib/experimental/objcache2/__object-cache__/headers/cachelib/experimental/objcache2/ObjectCacheSizeController-inl.h
    #1 0x562de7610f78 in facebook::cachelib::PeriodicWorker::loop() fbcode/cachelib/common/PeriodicWorker.cpp:55
    #2 0x7f7632c524e4 in execute_native_thread_routine /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/src/c++11/../../../.././libstdc++-v3/src/c++11/thread.cc:82:18
    #3 0x7f7632f6ec0e in start_thread /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_create.c:434:8
    #4 0x7f76330011db in clone3 /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

UndefinedBehaviorSanitizer: integer-divide-by-zero buck-out/v2/gen/fbcode/47d914adeee3d982/cachelib/experimental/objcache2/__object-cache__/headers/cachelib/experimental/objcache2/ObjectCacheSizeController-inl.h:33:40 in
```

Reviewed By: jiayuebao

Differential Revision: D39024188

fbshipit-source-id: 64ad644c360565e638fa3ca74616a315038382ab
byrnedj pushed a commit that referenced this pull request Jul 23, 2023
Publish changes from innersouce
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.