{"push_id":1139139018,"size":3,"distinct_size":3,"ref":"refs/heads/develop","head":"3ded359efa56015ad8d8d7b8616ac08b84a1a90f","before":"7634d43d5487d38ef7ec935071f9dcc855b8d47c","commits":[{"sha":"f85a574662d104ba742f4861b6fb247553369784","author":{"name":"Moses Nakamura","email":"027e942e2a8d9c3b29816dfa40893330d419351a@twitter.com"},"message":"util-core: Fixes AsyncMeter behavior with small burst sizes and small periods\n\nProblem\n\nAsyncMeter's process is that it fills up the token bucket, and then\nuses the token bucket to give out permission to continue.  The\ntricky thing here is that if the token bucket can only hold 1, then\neven if it's given permission to hold 2, it won't distribute load\nfor two.  Since we don't have arbitrary granularity timers, folks\nwho select a maximum burst size of 1, but a frequency smaller than\nthe granularity our timers can actually handle will not see the\nthroughput they expect.\n\nAlthough we could simulate the right result by choosing a new burst\nsize that better fits the timer's granularity, this introduces the\nproblem of figuring out the timer's granularity, which can fluctuate\ngiven load.\n\nSolution\n\nWhen the meter is refilled, it allows the full disbursement of\ntokens to be used, instead of just what fits in the token bucket.\n\nRB_ID=836742","distinct":true,"url":"https://api.github.com/repos/twitter/util/commits/f85a574662d104ba742f4861b6fb247553369784"},{"sha":"31e00a8576b5c4e820f2eae41f3b4b6f934f9429","author":{"name":"Vladimir Kostyukov","email":"52df49c4d0499e5c7ba54f155067516e77e6feba@twitter.com"},"message":"source: NoStacktrace is dead. Long live NoStackTrace\n\nProblem / Solution\n\nBoth Finagle and Util have their own versions of `NoStacktrace`, which are\nbasically copies of the one provided by Scala's standard library. Let's use\nwhat's already out there and reduce both the amount of code we need to maintain\nand confusion around three different options. Also, Scala's implementation\nsupports re-enabling stacktraces via a system-wide option, which might be\nuseful for debugging.\n\nRB_ID=833188\nTBR=true\nNO_USER_HOOK=1","distinct":true,"url":"https://api.github.com/repos/twitter/util/commits/31e00a8576b5c4e820f2eae41f3b4b6f934f9429"},{"sha":"3ded359efa56015ad8d8d7b8616ac08b84a1a90f","author":{"name":"Kevin Oliver","email":"42f0c465f9d28c5edb4e65e73bb0815be7cdcaf5@twitter.com"},"message":"util-core: Remove deprecated Future.isReturn and isThrow\n\nProblem\n\n`c.t.util.Future.isReturn` and `Future.isThrow` are deprecated because\nthey make it a little too easy to do a blocking operation.\n\nSolution\n\nRemove the methods as users can use the more explicit\n`c.t.util.Await.result(Future.liftToTry).isReturn` and\n`c.t.util.Await.result(Future.liftToTry).isThrow`.\n\nRB_ID=837329\nTBR=true","distinct":true,"url":"https://api.github.com/repos/twitter/util/commits/3ded359efa56015ad8d8d7b8616ac08b84a1a90f"}]}
{"actor":{"display_login":"finaglehelper"}}