Skip to content

rebase with upstream #1

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

Merged
merged 1,170 commits into from
Feb 23, 2022
Merged

rebase with upstream #1

merged 1,170 commits into from
Feb 23, 2022

Conversation

byrnedj
Copy link
Owner

@byrnedj byrnedj commented Feb 23, 2022

No description provided.

svcscm svcscm and others added 30 commits January 28, 2022 22:20
Summary:
GitHub commits:

facebook/fbthrift@0b99543

Reviewed By: yns88

fbshipit-source-id: 21801a621629d40eafe6ab866ed5952cd6b1de5b
Summary:
GitHub commits:

facebook/folly@53e82da

Reviewed By: yns88

fbshipit-source-id: 3b65709eeb8dfeb606646e8fc59016c25cc3656e
Summary:
GitHub commits:

facebook/fbthrift@5c8e1ee

Reviewed By: yns88

fbshipit-source-id: 6758c0058c8cfeefb446524f0acdd43e80d7ee28
Summary:
GitHub commits:

facebook/fbthrift@a0a3b22

Reviewed By: yns88

fbshipit-source-id: caafa622ff7bddce0f63a777199f9e6c9ca0d8c4
Summary:
On some systems (e.g. macOS) O_DIRECT is not defined.
Define it as zero.

Reviewed By: therealgymmy

Differential Revision: D33741808

fbshipit-source-id: d8a98128641448e3f4d7383279d82042b284b982
Summary:
In C++17, random_shuffle() has been deprecated. Still available in GCC,
but removed in CLANG.
Replace with a non-deprecated equivalent.
See: https://en.cppreference.com/w/cpp/algorithm/random_shuffle

Reviewed By: therealgymmy

Differential Revision: D33742049

fbshipit-source-id: 9feac85ea31e9b71ee4934ff38ac795b75e7ab32
Summary:
This is a long-term solution instead of the 'quick fix' of D33661759 .
fmt version >=8.1 changed internal structures and does not automatically
format the 'DestructorContext' enum.
Add a helper class to format the enum to strings, based on the example
in https://fmt.dev/latest/api.html#udt .

NOTE:
This changes the debug output of the ItemRecords::validate() function
(the last two parameters in the two XLOGF calls).

Reviewed By: therealgymmy

Differential Revision: D33662085

fbshipit-source-id: 608b498c762ca95cc71cb1597831a5c2a5f2c575
victoria-mcgrath and others added 10 commits February 10, 2022 15:44
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.
Update docker file used in CI
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.
Fix issue with "Destorying an unresolved handle"
@byrnedj byrnedj merged commit d7d44ab into byrnedj:develop Feb 23, 2022
byrnedj added a commit that referenced this pull request Aug 17, 2022
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.
byrnedj pushed a commit that referenced this pull request Sep 1, 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 added a commit that referenced this pull request Sep 19, 2022
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.
byrnedj pushed a commit that referenced this pull request Nov 12, 2022
Summary:
The current exception string for MapIndexMaxedOut is not very useful because ```oldHashTable.viewWriteHandle()->getKey()``` can have null terminators in it and cause the c_str() to be terminated incorrectly. Regardless, the actual write handle key is not very useful to us. Log the aid explicitly.

Example log:
```
Sep 14 07:12:57 tsp_lla/tao/prod-opt-follower/1879 dpdaemon[442]: E0914 07:12:57.836133  1922 Refill.cpp:215] Index has maxed out for key: #1<A4><D1 (https://github.com/facebook/CacheLib/commit/3ec18f5591f75fa5e247cadad19a86126075bdda)>0F<F6>\
```

Reviewed By: vrishal

Differential Revision: D39518530

fbshipit-source-id: 58b9f31f6c0d174d5ec0bc7705788408bc0d11f4
byrnedj added a commit that referenced this pull request Nov 12, 2022
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.
byrnedj added a commit that referenced this pull request Dec 15, 2022
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.

remove extra whitespace

Background data movement (pmem#20)

Background data movement using periodic workers. Attempts to evict/promote items per given thresholds for each class. These reduce p99 latency since there is a higher chance that an allocation slot is free in the tier we are allocating in.

remove extra whitespace

removed the slab approx free percent check since it the value is close to 9.5 but not guaranteed to be >= 9.5
byrnedj added a commit that referenced this pull request Feb 2, 2023
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.
byrnedj added a commit that referenced this pull request Feb 10, 2023
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.
byrnedj added a commit that referenced this pull request Feb 15, 2023
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.
byrnedj added a commit that referenced this pull request Feb 16, 2023
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.
byrnedj added a commit that referenced this pull request Feb 24, 2023
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.
byrnedj added a commit that referenced this pull request Feb 27, 2023
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.
byrnedj added a commit that referenced this pull request Feb 27, 2023
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.
byrnedj added a commit that referenced this pull request Feb 27, 2023
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.
byrnedj added a commit that referenced this pull request Feb 28, 2023
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.
byrnedj added a commit that referenced this pull request Mar 3, 2023
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.
byrnedj added a commit that referenced this pull request Mar 3, 2023
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.
byrnedj added a commit that referenced this pull request Jul 24, 2023
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.
byrnedj added a commit that referenced this pull request Mar 12, 2024
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.
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.

8 participants