What is the history/origin of /apibeta anyways? On Mon, Dec 29, 2014 at 1:32 PM, Isaac Councill <is...@hioscar.com> wrote:
> Ok, here's code for the pure json apibeta bench. I realized it was a bit > unfair because I was making concurrent requests (max 3). Stripping out all > concurrency, it's coming in at 17.2sec. > > drop in src/aurora/, no dependencies required. > > go build o build -o dist/aurora2 aurora/client2/bench > dist/aurora2 -url="http://<aurora_master>:8081/apibeta" > > > On Mon, Dec 29, 2014 at 3:36 PM, Isaac Councill <is...@hioscar.com> wrote: > >> Here's source from go thrift (warning: very ugly). I had to make a few >> modifications to the ttypes and client libraries to get it working. It >> requires git.apache.org/thrift.git from the 0.9.2 tree (0.9.1 generates >> code that is much farther from correct). >> >> after putting it in src/aurora/client: >> go build -o dist/aurora aurora/client/thrift/read_only_scheduler-remote >> >> then: >> time dist/aurora -u="http://<aurora_master>:8081/api" -http=true -P=json >> doBench >> >> Perhaps my general unhappiness with thrift right now has to due with >> immature go support. Just take a look at that generated code, and it didn't >> actually work, at all, without some messing around. >> >> Re: Kevin's question about differences between getTaskStatus requests, >> the contents I was filling in are the same (role, environment, jobName), >> but inspecting network traffic, it did appear that the taskStatusRequest >> from go thrift is adding empty values for nil list fields, which could >> impact the results. >> >> As for the apibeta client, it will take me a little extra time to rip >> that out into a sharable form. >> >> On Mon, Dec 29, 2014 at 2:17 PM, Jake Farrell <jfarr...@apache.org> >> wrote: >> >>> Hey Isaac >>> Would love to hear your pain points with Thrift and also can you share >>> your >>> source for the test clients >>> >>> -Jake >>> >>> On Mon, Dec 29, 2014 at 1:27 AM, Isaac Councill <is...@hioscar.com> >>> wrote: >>> >>> > tl;dr; >>> > apibeta seems way faster (and arguably better) than thrift api. What >>> are >>> > the long term objectives for apibeta? >>> > >>> > >>> > Hi, >>> > >>> > I've been working on some aurora integrations, primarily a blackbox >>> > monitoring tool at present, and was looking for the best way to >>> communicate >>> > with the scheduler. >>> > >>> > For a large read-only example, I wanted to dump the latest scheduler >>> status >>> > info for all our prod jobs, basically: >>> > >>> > for all roles: >>> > for all jobs in role: >>> > get scheduler status >>> > >>> > We have about 120 prod jobs in aurora right now (growing fast). I >>> > benchmarked 3 strategies against our prod cluster (mean of 5 tries each >>> > from remote vpn, variance was small in each case): >>> > >>> > 1) aurora2 client: ./aurora2 job status cluster/<role>/prod > /dev/null >>> > 126.0sec >>> > >>> > 2) golang thrift API >>> > 584.3sec (I might be able make a better task query, but still... this >>> is >>> > for only ~120 calls) >>> > >>> > 3) Pure json apibeta client in golang >>> > 13.4sec (again, might be able to optimize query strategy) >>> > >>> > As a side note, getting the golang thrift client to work was a very >>> painful >>> > and illuminating experience. >>> > >>> > I'm inclined to stick with apibeta. It's fast and the documentation is >>> > great. If api changes become a concern, well after today I'd honestly >>> > prefer rolling my own binding generator. >>> > >>> > Are there plans for /apibeta wrt /api? >>> > >>> >> >> > -- Zameer Manji