Summary:
Pull Request resolved: https://github.com/facebook/Haxl/pull/120
This adds tracking of memo/fetches per label by a unique id for each. Using this we can track exactly where time was spent, and where it was shared
Reviewed By: simonmar
Differential Revision: D20792435
fbshipit-source-id: 55c1e778d313d103a910c6dd5be512f95125acce
Summary:
Pull Request resolved: https://github.com/facebook/Haxl/pull/119
Currently profiling with labels does not track full stacks.
This is problematic in the case where all top level methods end up calling a common method with a label, as we have no way of attributing to the top level methods.
Eg if A/B/C all call X when running work then we cannot tell which work is expensive, as we have no connection from the work through X
Reviewed By: simonmar
Differential Revision: D20384255
fbshipit-source-id: f9aa0462904c17dee32d37a659b491e8d252d6db
Summary:
Pull Request resolved: https://github.com/facebook/Haxl/pull/111
Right now BackgroundFetches produce multiple FetchStats for the same batch, but it is not possible to link these together to get an idea of how big the batch was.
This introduces a field to FetchStats that can be used to link batches together as well as a utility method to do this in a default manner
Reviewed By: watashi
Differential Revision: D19469048
fbshipit-source-id: fce687c49ac4cbdc7cbd6804f37b6f120d7efad3
Summary:
Pull Request resolved: https://github.com/facebook/Haxl/pull/109
FutureFetch is unused (except for one test) and overall has not proven itself to be a useful fetch type. It adds a new waiting point (the others being BackgroundFetch and Async/Sync fetches) which can add latency. For example if all three are dispatched in one round how would the scheduler know ahead of time which one to wait on in order to make forward progress.
Reviewed By: simonmar
Differential Revision: D19410093
fbshipit-source-id: 40c900fbff9e06098acb2a21fc59b49adefadc5b
Summary: Switch to use `BasicHashTable` from `hashtables` package instead of `Data.HashMap.Strict` for `DataCache`
Reviewed By: simonmar
Differential Revision: D19219048
fbshipit-source-id: a2a8df0e715c202ca79a1f3a1c0dad133788e1eb
Summary:
Had updated the implementation of Haxl writes to account for memoization, but forgot to update the doc.
Created from Diffusion's 'Open in Editor' feature.
(Note: this ignores all push blocking failures!)
Reviewed By: xich
Differential Revision: D17498719
fbshipit-source-id: 8f5129271b171849b3bd2aaf0d5e0bce127be1bf
Summary:
Adds the ability for one to record the function callstack within the `Haxl` monad.
The main function is `withCallGraph`, and supporting types are in `Haxl.Core.CallGraph`.
Reviewed By: watashi
Differential Revision: D14857851
fbshipit-source-id: daab97e8144ff63104ad9e79a3a792a4471e5588
Summary:
Here I try to populate the writes done as part of a Haxl computation
in an IORef inside the Environment.
`IVar` which is the synchornisation point,
also acts as the point where we store intermediate writes for Haxl
computations, so they can be memoized and reused whenever a memoized
computation is done again. This is done inside `getIVarWithWrites` function.
This works, because we create new IVars when running a memo computation
or a data fetch, and it is only at these places where we need to create a new
environment with empty writes to run the computation in. So I run every memoized
computation in a new environment (with empty writes) and populate the writes in this new
environment. At the end of the memoized computation, I look up these writes from the `IVar`
and also add them to the original environment. This way ultimately all writes are correctly
propagated upwards to the top level environment user passes to `runHaxl`.
This logic lives inside `execMemoNow`.
Reviewed By: simonmar
Differential Revision: D14342181
fbshipit-source-id: a410dae1a477f27b480804b67b2212e7500997ab
Summary: And bump version to 2.0.1.1
Reviewed By: anubhav94N
Differential Revision: D10011092
fbshipit-source-id: 4d45f79fb4c89112d29d40f0d53a50441a443729
Summary: The MemoVar export causes a minor version bump
Reviewed By: anubhav94N
Differential Revision: D8588703
fbshipit-source-id: 8dfb5ed5f44a681810860080b8413fc61bf58c89
Summary:
We need a release for GHC 8.2.1 compatibility:
https://github.com/facebook/Haxl/issues/70
(Note: this ignores all push blocking failures!)
Reviewed By: simonmar
Differential Revision: D5488485
fbshipit-source-id: 61ae115e7456beb1dd8855d387690e13a1e09bdc