{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc-java/issues/1054","repository_url":"https://api.github.com/repos/grpc/grpc-java","labels_url":"https://api.github.com/repos/grpc/grpc-java/issues/1054/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc-java/issues/1054/comments","events_url":"https://api.github.com/repos/grpc/grpc-java/issues/1054/events","html_url":"https://github.com/grpc/grpc-java/issues/1054","id":107281724,"number":1054,"title":"Address key protobuf performance issues","user":{"login":"louiscryan","id":9046588,"avatar_url":"https://avatars.githubusercontent.com/u/9046588?v=3","gravatar_id":"","url":"https://api.github.com/users/louiscryan","html_url":"https://github.com/louiscryan","followers_url":"https://api.github.com/users/louiscryan/followers","following_url":"https://api.github.com/users/louiscryan/following{/other_user}","gists_url":"https://api.github.com/users/louiscryan/gists{/gist_id}","starred_url":"https://api.github.com/users/louiscryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/louiscryan/subscriptions","organizations_url":"https://api.github.com/users/louiscryan/orgs","repos_url":"https://api.github.com/users/louiscryan/repos","events_url":"https://api.github.com/users/louiscryan/events{/privacy}","received_events_url":"https://api.github.com/users/louiscryan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nmittler","id":6493296,"avatar_url":"https://avatars.githubusercontent.com/u/6493296?v=3","gravatar_id":"","url":"https://api.github.com/users/nmittler","html_url":"https://github.com/nmittler","followers_url":"https://api.github.com/users/nmittler/followers","following_url":"https://api.github.com/users/nmittler/following{/other_user}","gists_url":"https://api.github.com/users/nmittler/gists{/gist_id}","starred_url":"https://api.github.com/users/nmittler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmittler/subscriptions","organizations_url":"https://api.github.com/users/nmittler/orgs","repos_url":"https://api.github.com/users/nmittler/repos","events_url":"https://api.github.com/users/nmittler/events{/privacy}","received_events_url":"https://api.github.com/users/nmittler/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/grpc/grpc-java/milestones/6","html_url":"https://github.com/grpc/grpc-java/milestones/1.0","labels_url":"https://api.github.com/repos/grpc/grpc-java/milestones/6/labels","id":1396697,"number":6,"title":"1.0","description":"GA release for gRPC Java","creator":{"login":"hsaliak","id":150108,"avatar_url":"https://avatars.githubusercontent.com/u/150108?v=3","gravatar_id":"","url":"https://api.github.com/users/hsaliak","html_url":"https://github.com/hsaliak","followers_url":"https://api.github.com/users/hsaliak/followers","following_url":"https://api.github.com/users/hsaliak/following{/other_user}","gists_url":"https://api.github.com/users/hsaliak/gists{/gist_id}","starred_url":"https://api.github.com/users/hsaliak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hsaliak/subscriptions","organizations_url":"https://api.github.com/users/hsaliak/orgs","repos_url":"https://api.github.com/users/hsaliak/repos","events_url":"https://api.github.com/users/hsaliak/events{/privacy}","received_events_url":"https://api.github.com/users/hsaliak/received_events","type":"User","site_admin":false},"open_issues":50,"closed_issues":1,"state":"open","created_at":"2015-11-05T23:43:39Z","updated_at":"2016-02-01T21:16:51Z","due_on":"2016-03-31T07:00:00Z","closed_at":null},"comments":16,"created_at":"2015-09-18T21:28:31Z","updated_at":"2016-02-02T20:06:20Z","closed_at":null,"body":"This is something of a coverall issue and should be factored out into separate issues for each individual piece of work. Listed here are a number of areas for improving the interaction between protobuf and GRPC to improve overall performance and reduce memory pressure on the system.\r\n\r\nIn rough order of priority....\r\n\r\n- Implement some basic protobuf benchmarks independent of GRPC (scrape the web or extract Googles) as a framework for experimenting with optimizations\r\n\r\n- Provide the ability to have a 0-copy approach for writing out large binary sequences (byte buf, file region etc) to the transport without copying\r\n\r\n- Provide the ability to read protobufs so that they can be written out again with 0-copy for large sequences. This includes writes to transport and to files\r\n\r\n- Document a pattern for transferring a large binary sequence as chunks and utility functions to chunk & dechunk those to application code. File transfer is a common use-case here\r\n\r\n- Consider supporting deserialized protobuf backed by pooled buffers (speculative). Would require the notion of a releasable protobuf\r\n\r\n@nmittler @ejona86 - Feel free to pile on / cc folks"},"comment":{"url":"https://api.github.com/repos/grpc/grpc-java/issues/comments/178792542","html_url":"https://github.com/grpc/grpc-java/issues/1054#issuecomment-178792542","issue_url":"https://api.github.com/repos/grpc/grpc-java/issues/1054","id":178792542,"user":{"login":"saintstack","id":48398,"avatar_url":"https://avatars.githubusercontent.com/u/48398?v=3","gravatar_id":"","url":"https://api.github.com/users/saintstack","html_url":"https://github.com/saintstack","followers_url":"https://api.github.com/users/saintstack/followers","following_url":"https://api.github.com/users/saintstack/following{/other_user}","gists_url":"https://api.github.com/users/saintstack/gists{/gist_id}","starred_url":"https://api.github.com/users/saintstack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saintstack/subscriptions","organizations_url":"https://api.github.com/users/saintstack/orgs","repos_url":"https://api.github.com/users/saintstack/repos","events_url":"https://api.github.com/users/saintstack/events{/privacy}","received_events_url":"https://api.github.com/users/saintstack/received_events","type":"User","site_admin":false},"created_at":"2016-02-02T20:06:20Z","updated_at":"2016-02-02T20:06:20Z","body":"What @enis said.\r\n\r\nIt'd be a CIS that can read from the DBB w/o bringing it on heap (and does not do a byte-at-a-time reading out of the backing DBB but reads longs and words at a time when it can). Need same in COS.\r\n\r\nI can try it out np."}}