I can see this becoming very useful as we query across projects, languages, etc to not block on anything explicitly.
Nice work Erik. Great to see us experimenting for future use. --tomasz On Tue, Sep 8, 2015 at 12:01 PM, Erik Bernhardson <ebernhard...@wikimedia.org> wrote: > The php engine used in prod by the wmf, hhvm, has built in support for > shared (non-preemptive) concurrency via async/await keywords. Over the > weekend i spent some time converting the Elastica client library we use to > work asynchronously, which would essentially let us continue on performing > other calculations in the web request while network requests are processing. > I've only ported over the client library, not the CirrusSearch code. Also > this is not a complete port, there are a couple code paths that work but > most of the test suite still fails. > > The most obvious place we could see a benefit from this is when multiple > queries are issued to elasticsearch from a single web request. If the second > query doesn't depend on the results of the first it can be issued in > parallel. This is actually somewhat common use case, for example doing a > full text and a title search in the same request. I'm wary of making much of > a guess in terms of actual latency reduction we could expect, but maybe on > the order of 50 to 100 ms in cases which we currently perform requests > serially and we have enough work to process. Really its hard to say at this > point. > > In addition to making some existing code faster, having the ability to do > multiple network operations in an async manner opens up other possibilities > when we are implementing things in the future. In closing, this currently > isn't going anywhere it was just something interesting to toy with. I think > it could be quite interesting to investigate further. > >  http://docs.hhvm.com/manual/en/hack.async.php >  https://phabricator.wikimedia.org/T99755 >  https://github.com/ebernhardson/Elastica/tree/async > > > _______________________________________________ > Wikimedia-search mailing list > Wikimediaemail@example.com > https://lists.wikimedia.org/mailman/listinfo/wikimedia-search > _______________________________________________ Wikimedia-search mailing list Wikimediafirstname.lastname@example.org https://lists.wikimedia.org/mailman/listinfo/wikimedia-search