sapling/eden/fs/benchmarks
Xavier Deguillard a3d6554a8c store: speed up HgImportRequestQueue::enqueue 1.5x
Summary:
When turning on the native prefetch, EdenFS will enqueue tons of blob requests
to the import request queue. The expectation is then that the threads will
dequeue batch of requests and run them. What is being observed is however
vastly different: the dequeued batches are barely bigger than 10, far lower
than the batch capacity, leading to fetching inefficiencies. The reason for
this is that enqueuing is too costly.

The first step in making enqueuing less costly is to reduce the number of times
the lock needs to be acquired by moving the de-duplication inside the enqueue
function itself. On top of reducing the number of times the lock is held, it
also halves the number of allocation done under the lock.

Reviewed By: chadaustin

Differential Revision: D30520226

fbshipit-source-id: 52f6e3c1ec45caa5c47e3fd122b3a933b0448e7c
2021-08-26 12:28:50 -07:00
..
future.cpp utils: add default constructor to ImmediateFuture 2021-05-11 08:05:11 -07:00
get_sha1_thrift.cpp Remove dead includes in eden 2020-10-09 15:25:47 -07:00
glob.cpp pool eden thrift connections 2021-08-10 18:57:52 -07:00
hg_import_request_queue.cpp store: speed up HgImportRequestQueue::enqueue 1.5x 2021-08-26 12:28:50 -07:00
open_close_parallel.cpp move benchmarks/ into eden/fs/ 2020-05-04 11:33:12 -07:00
random_writes.cpp add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
stat.cpp add 4k random writes benchmark 2020-07-14 16:13:37 -07:00