v1.18.0-snapshot.20210928.7948.0.b4d00317
S11001001
tagged this
28 Sep 20:47
* enumerating out-of-sync offsets at the DB level * cleanup in lastOffset * write the latest-requested-or-read offset when catching up - Writing only the latest-read, as before, would imply unsynced offsets that are actually well-synced. This puts the DB in a more uniform state, i.e. it should actually reflect the single value that the fetchAndPersist loop tries to catch everything up to. * detecting lagging offsets from the unsynced-offsets set - Treating every unsynced offset as a lag would make us needlessly retry perfectly synchronized query results. * add Foldable1 derived from Foldable for NonEmpty * nicer version of the unsynced function * ConnectionIO scalaz monad * rename Offset.ordering to `Offset ordering` so it can be imported verbatim * finish aggregating in the lag-detector function, compiles * port sjd * XTag, a scalaz 7.3-derived tag to allow stacked tags * make the complicated aggregation properly testable * extra semantic corner cases I didn't think of * tests for laggingOffsets * a way to rerun queries if the laggingOffsets check reveals inconsistency * if bookmark is ever different, we always have to rerun anyway * boolean blindness * incorporate laggingOffsets into fetchAndPersistBracket * split fetchAndPersist from getTermination and clean up its arguments * just compose functors * add looping to fetchAndPersistBracket * more mvo tests * test unsyncedOffsets, too * Lagginess collector * supply more likely actual data with mvo tests; don't trust Java equals * rework minimumViableOffsets to track sync states across template IDs * extra note * fix the tests to work against the stricter mvo * move surrogatesToDomains call * more tests for lagginess accumulator * add changelog CHANGELOG_BEGIN - [JSON API] Under rare conditions, a multi-template query backed by database could have an ACS portion that doesn't match its transaction stream, if updated concurrently. This conditions is now checked and accounted for. See `issue #10617 <https://github.com/digital-asset/daml/pull/10617>`__. CHANGELOG_END * port toSeq to Scala 2.12 * handle a corner case with offsets being too close to expected values * didn't need XTag