{"action":"created","issue":{"url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/9221","repository_url":"https://api.github.com/repos/ballerina-platform/ballerina-lang","labels_url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/9221/labels{/name}","comments_url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/9221/comments","events_url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/9221/events","html_url":"https://github.com/ballerina-platform/ballerina-lang/pull/9221","id":334788734,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2NjY4ODA5","number":9221,"title":"Change gRPC implementation to layer on top of HTTP2 transport","user":{"login":"daneshk","id":8402398,"node_id":"MDQ6VXNlcjg0MDIzOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/8402398?v=4","gravatar_id":"","url":"https://api.github.com/users/daneshk","html_url":"https://github.com/daneshk","followers_url":"https://api.github.com/users/daneshk/followers","following_url":"https://api.github.com/users/daneshk/following{/other_user}","gists_url":"https://api.github.com/users/daneshk/gists{/gist_id}","starred_url":"https://api.github.com/users/daneshk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daneshk/subscriptions","organizations_url":"https://api.github.com/users/daneshk/orgs","repos_url":"https://api.github.com/users/daneshk/repos","events_url":"https://api.github.com/users/daneshk/events{/privacy}","received_events_url":"https://api.github.com/users/daneshk/received_events","type":"User","site_admin":false},"labels":[{"id":913207616,"node_id":"MDU6TGFiZWw5MTMyMDc2MTY=","url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/labels/Component/gRPC","name":"Component/gRPC","color":"006b75","default":false},{"id":684576235,"node_id":"MDU6TGFiZWw2ODQ1NzYyMzU=","url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/labels/Type/Improvement","name":"Type/Improvement","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-06-22T08:21:34Z","updated_at":"2018-06-28T19:57:41Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/pulls/9221","html_url":"https://github.com/ballerina-platform/ballerina-lang/pull/9221","diff_url":"https://github.com/ballerina-platform/ballerina-lang/pull/9221.diff","patch_url":"https://github.com/ballerina-platform/ballerina-lang/pull/9221.patch"},"body":"## Purpose\r\nResolves #8460\r\n\r\n## Goals\r\nCurrent Ballerina gRPC implementation depends on grpc-netty implementation to setup http2 connection. we need to use transport-http dependency instead of grpc-netty. From this fix we remove following grpc dependencies from the ballerina distribution.\r\n\r\n> io.grpc:grpc-netty\r\n> io.grpc:grpc-protobuf\r\n> io.grpc:grpc-stub\r\n> io.grpc:grpc-context\r\n> io.grpc:grpc-core\r\n> io.grpc:grpc-protobuf-lite\r\n> com.google.guava:guava(transitive dependency)\r\n> io.opencensus:opencensus-api(transitive dependency)\r\n> io.opencensus:opencensus-contrib-grpc-metrics(transitive dependency)\r\n\r\n## Load Test results\r\nThis is quick load test done in my local machine(MAC 11) to find out any performance degrade with new implementation, may not be accurate figures.\r\n\r\nTest is carried out for simple unary service[1] implemented in ballerina using jmeter java sampler client.\r\n1. https://github.com/ballerina-platform/ballerina-examples/blob/master/examples/grpc-unary-blocking/grpc_unary_blocking.bal\r\n\r\nNo. of Threads: 1800\r\nRamp-up period: 30s\r\nLoop count: 500\r\n\r\nResults:\r\n<img width=\"1122\" alt=\"screen shot 2018-06-24 at 10 52 12 am\" src=\"https://user-images.githubusercontent.com/8402398/41816230-2ec438da-779d-11e8-8ac1-1c3975e7c715.png\">\r\n\r\nJconsole observation:\r\n<img width=\"876\" alt=\"screen shot 2018-06-24 at 10 50 59 am\" src=\"https://user-images.githubusercontent.com/8402398/41816250-a1e3f4e0-779d-11e8-9ee2-20c33e68a52c.png\">\r\n\r\n\r\n## Approach\r\nRewrite gRPC message passing logic on top of HTTP2 transport in wso2/transport-http.\r\n\r\n## User stories\r\nNot changes. Change is mainly in backend logic.\r\n\r\n## Automation tests\r\n - Unit tests \r\n   No\r\n - Integration tests\r\n   Integration tests are already available. \r\n\r\n## Test environment\r\nMAC, JDK 1.8\r\n \r\n## Learning\r\nSome code taken from grpc-java(https://github.com/grpc/grpc-java) code. "},"comment":{"url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/comments/401154478","html_url":"https://github.com/ballerina-platform/ballerina-lang/pull/9221#issuecomment-401154478","issue_url":"https://api.github.com/repos/ballerina-platform/ballerina-lang/issues/9221","id":401154478,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMTE1NDQ3OA==","user":{"login":"AppVeyorBot","id":17834419,"node_id":"MDQ6VXNlcjE3ODM0NDE5","avatar_url":"https://avatars0.githubusercontent.com/u/17834419?v=4","gravatar_id":"","url":"https://api.github.com/users/AppVeyorBot","html_url":"https://github.com/AppVeyorBot","followers_url":"https://api.github.com/users/AppVeyorBot/followers","following_url":"https://api.github.com/users/AppVeyorBot/following{/other_user}","gists_url":"https://api.github.com/users/AppVeyorBot/gists{/gist_id}","starred_url":"https://api.github.com/users/AppVeyorBot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AppVeyorBot/subscriptions","organizations_url":"https://api.github.com/users/AppVeyorBot/orgs","repos_url":"https://api.github.com/users/AppVeyorBot/repos","events_url":"https://api.github.com/users/AppVeyorBot/events{/privacy}","received_events_url":"https://api.github.com/users/AppVeyorBot/received_events","type":"User","site_admin":false},"created_at":"2018-06-28T19:57:41Z","updated_at":"2018-06-28T19:57:41Z","author_association":"NONE","body":":white_check_mark: [Build ballerina-lang 154 completed](https://ci.appveyor.com/project/maheshika/ballerina-lang/build/154) (commit https://github.com/ballerina-platform/ballerina-lang/commit/11ab4677e4 by @daneshk)"}}
{"actor":{"display_login":"AppVeyorBot"}}