sapling/eden/fs/telemetry
Xavier Deguillard 8b82dc96cb prjfs: make readdir asynchronous
Summary:
As of right now, opendir is the expensive callbacks due to fetching the sizes
for all the files in a directory. This strategy however breaks down when
timeouts are added as very large directories would trigger the timeout, not
because EdenFS is having a hard time reaching Mononoke, but because of
bandwidth limitation.

To avoid this issue, we need to have a per-file timeout and thus makes opendir
just trigger the futures, but not wait on them. The waiting bit will happen
at readdir time which will also enable having a timeout per file.

The one drawback to this is that the ObjectFetchContext that is passed in by
opendir cannot live long enough to be used in the size future. For now, we can
use a null context, but a proper context will need to be passed in, in the
future.

Reviewed By: wez

Differential Revision: D24895089

fbshipit-source-id: e10ceae2f7c49b4a006b15a34f85d06a2863ae3a
2020-11-13 14:27:26 -08:00
..
test remove dependency on glog 2020-11-10 16:31:15 -08:00
CMakeLists.txt introduce a StructuredLogger 2019-10-25 19:29:01 -07:00
EdenStats.cpp telemetry: consolidate Fuse/PrjFS stats in ChannelThreadStats 2020-09-02 15:28:39 -07:00
EdenStats.h prjfs: make readdir asynchronous 2020-11-13 14:27:26 -08:00
LogEvent.cpp introduce a StructuredLogger 2019-10-25 19:29:01 -07:00
LogEvent.h externally log result of fsck scans 2020-11-12 13:47:50 -08:00
NullStructuredLogger.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
RequestMetricsScope.cpp use enumValue instead of static_cast<int> 2020-04-28 18:59:34 -07:00
RequestMetricsScope.h expose number pending fuse requests 2020-04-28 13:28:01 -07:00
ScribeLogger.h introduce a scribe logger that communicates with scribe_cat 2019-10-22 12:42:54 -07:00
ScubaStructuredLogger.cpp add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
ScubaStructuredLogger.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
SessionInfo.cpp add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
SessionInfo.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
StructuredLogger.cpp introduce a StructuredLogger 2019-10-25 19:29:01 -07:00
StructuredLogger.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
StructuredLoggerFactory.cpp add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
StructuredLoggerFactory.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
SubprocessScribeLogger.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
SubprocessScribeLogger.h eden: introduce SpawnedProcess 2020-09-01 13:31:32 -07:00
TraceBus-inl.h add a TraceBus 2020-10-07 12:07:37 -07:00
TraceBus.h add a TraceBus 2020-10-07 12:07:37 -07:00
Tracing.cpp rename tracing to telemetry 2019-10-15 13:39:41 -07:00
Tracing.h Use cacheline_aligned in Tracer 2020-02-03 14:47:07 -08:00