Summary:
Test that the ApplicativeDo extension batches things correctly in the
Haxl monad.
Test Plan: beholdunittests
Reviewed By: bnitka@fb.com
Subscribers: ldbrandy, memo, watashi, smarlow, akr, bnitka, jcoens
FB internal diff: D2039149
Tasks: 5504687
Signature: t1:2039149:1430501733:98fd1cf0f69663d6db3b07c3aed6e261ae9884d6
The function performFetches collects statistics about the requests
performed in each round. However, the list is not evaluated (unless
tracing is on), leading to an accumulation of thunks. Forcing the list
via deepseq prevents this.
Summary:
Turning IO monad exceptions into Haxl monad exceptions can result in the
IO monad exception being lost, which is what was happening to our
AllocationLimitExceeded exceptions. See the comment with
rethrowAsyncExceptions for more details.
See also D1870627
Test Plan:
P19741543 is a request that blows the alloc limit but wasn't being
caught before.
Reviewed By: akr@fb.com
Subscribers: ldbrandy, memo, watashi, smarlow, akr, bnitka, jcoens
FB internal diff: D1870631
Tasks: 6240444
Signature: t1:1870631:1424867073:d03bd0368ee968cecbcc5a0f654772b6f0eaf147
Summary:
Adds traceEventIO in right places to get pretty fetching visualizations.
These should be a no-op when compiled with eventlog disabled, but
I haven't measured to see if there is any actual overhead yet.
Test Plan:
compiled, ran replay and endtoend with no problems
waiting on full perf results to check for overhead
Reviewed By: smarlow@fb.com
Subscribers: trunkagent, ldbrandy, watashi, smarlow, akr, bnitka, jcoens, anfarmer
FB internal diff: D1666727
Tasks: 5564760, 5289531, 5289404
Signature: t1:1666727:1415714188:1e4b2322c8ae15c8d3552ec2bc290df94a683184
Summary: Collect time in each data sources in each round
Test Plan:
test in haxlsh
test the overhead in replay
Reviewed By: smarlow@fb.com
Subscribers: anfarmer, ldbrandy, watashi, smarlow, akr, bnitka, jcoens
FB internal diff: D1521346
Tasks: 4589842
Summary: Add flags to control the report level (how much stats we will collect) in Haxl
Test Plan: runtests
Reviewed By: jon.coens@fb.com
Subscribers: ldbrandy, watashi, smarlow, akr, bnitka, jcoens
FB internal diff: D1509184
Tasks: 4589842
Summary:
Haxl.Core.Env and Haxl.Core.Fetch were collapsed into Haxl.Core.Monad in
D1427283. Update haxl.cabal to reflect this and use PatternGuards to
suppress warnings.
Test Plan: ~/local/haxl-github $ cabal test
Reviewed By: jon.coens@fb.com
Subscribers: ldbrandy, smarlow, akr, bnitka, jcoens
FB internal diff: D1441939
Summary:
See copious comments in the source for details. The problem with the
previous approach was that it was too easy to lose the continuation that
contained the memo table update when exceptions are flying around, and
losing that continuation always results in an infinite loop. This
solution is more robust, because we can never lose a continuation, the
worst that could happen (and it shouldn't happen) is that we do a bit of
repeated work.
Test Plan: unit tests, my infinite loop repro case is fixed
Reviewed By: jon.coens@fb.com
Subscribers: ldbrandy, smarlow, akr, bnitka, jcoens
FB internal diff: D1427283
Tasks: 3734942
Summary:
We weren't forcing the DataCache after inserting a new element, which
meant that an error would appear when next using the cache, rather than
when we insert the element.
Test Plan: new unit test
Reviewed By: bnitka@fb.com
Subscribers: ldbrandy, smarlow, akr, bnitka, jcoens
FB internal diff: D1420686
Tasks: 4637866
Summary: Useful for catching multiple kinds of exception with a single handler.
Test Plan: haxl/core unit tests
Reviewed By: jon.coens@fb.com
Subscribers: ldbrandy, jonp, smarlow, akr, bnitka, jcoens
FB internal diff: D1387298
Tasks: 4526990, 3727129
When building from a fresh sandbox in /example/sql, cabal complained
about the name and version fields missing, as well as the base
dependency missing in build-depends.