{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/1227","repository_url":"https://api.github.com/repos/facebook/rocksdb","labels_url":"https://api.github.com/repos/facebook/rocksdb/issues/1227/labels{/name}","comments_url":"https://api.github.com/repos/facebook/rocksdb/issues/1227/comments","events_url":"https://api.github.com/repos/facebook/rocksdb/issues/1227/events","html_url":"https://github.com/facebook/rocksdb/issues/1227","id":166679282,"number":1227,"title":"Make Java API more efficient by exposing zero-copy slices","user":{"login":"ccleve","id":1127338,"avatar_url":"https://avatars.githubusercontent.com/u/1127338?v=3","gravatar_id":"","url":"https://api.github.com/users/ccleve","html_url":"https://github.com/ccleve","followers_url":"https://api.github.com/users/ccleve/followers","following_url":"https://api.github.com/users/ccleve/following{/other_user}","gists_url":"https://api.github.com/users/ccleve/gists{/gist_id}","starred_url":"https://api.github.com/users/ccleve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccleve/subscriptions","organizations_url":"https://api.github.com/users/ccleve/orgs","repos_url":"https://api.github.com/users/ccleve/repos","events_url":"https://api.github.com/users/ccleve/events{/privacy}","received_events_url":"https://api.github.com/users/ccleve/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/rocksdb/labels/java-api","name":"java-api","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-07-20T20:52:59Z","updated_at":"2016-08-17T15:43:41Z","closed_at":null,"body":"The C++ API .key() and .value() methods return Slice objects, which are just pointers to external byte arrays. This is very efficient because it avoids copying data.\r\n\r\nThe Java API, unfortunately, forces some unnecessary copying internally. Instead, it should offer the option to get a slice of a native data structure. This change will yield substantial performance benefits and greatly reduce the amount of garbage that gets generated in the JVM.\r\n\r\nSee related discussion on Facebook: https://www.facebook.com/groups/rocksdb.dev/permalink/985085361589978/ with @adamretter "},"comment":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/comments/240453969","html_url":"https://github.com/facebook/rocksdb/issues/1227#issuecomment-240453969","issue_url":"https://api.github.com/repos/facebook/rocksdb/issues/1227","id":240453969,"user":{"login":"adamretter","id":1264057,"avatar_url":"https://avatars.githubusercontent.com/u/1264057?v=3","gravatar_id":"","url":"https://api.github.com/users/adamretter","html_url":"https://github.com/adamretter","followers_url":"https://api.github.com/users/adamretter/followers","following_url":"https://api.github.com/users/adamretter/following{/other_user}","gists_url":"https://api.github.com/users/adamretter/gists{/gist_id}","starred_url":"https://api.github.com/users/adamretter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamretter/subscriptions","organizations_url":"https://api.github.com/users/adamretter/orgs","repos_url":"https://api.github.com/users/adamretter/repos","events_url":"https://api.github.com/users/adamretter/events{/privacy}","received_events_url":"https://api.github.com/users/adamretter/received_events","type":"User","site_admin":false},"created_at":"2016-08-17T15:43:41Z","updated_at":"2016-08-17T15:43:41Z","body":"For reference, also relevant is the discussion here: https://github.com/facebook/rocksdb/pull/1247#issuecomment-238017960"}}
{"actor":{"display_login":"adamretter"}}