{"action":"created","issue":{"url":"https://api.github.com/repos/palantir/atlasdb/issues/724","repository_url":"https://api.github.com/repos/palantir/atlasdb","labels_url":"https://api.github.com/repos/palantir/atlasdb/issues/724/labels{/name}","comments_url":"https://api.github.com/repos/palantir/atlasdb/issues/724/comments","events_url":"https://api.github.com/repos/palantir/atlasdb/issues/724/events","html_url":"https://github.com/palantir/atlasdb/pull/724","id":167499875,"number":724,"title":"Feature/improved column paging","user":{"login":"jeffrey-c","id":20566289,"avatar_url":"https://avatars.githubusercontent.com/u/20566289?v=3","gravatar_id":"","url":"https://api.github.com/users/jeffrey-c","html_url":"https://github.com/jeffrey-c","followers_url":"https://api.github.com/users/jeffrey-c/followers","following_url":"https://api.github.com/users/jeffrey-c/following{/other_user}","gists_url":"https://api.github.com/users/jeffrey-c/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffrey-c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffrey-c/subscriptions","organizations_url":"https://api.github.com/users/jeffrey-c/orgs","repos_url":"https://api.github.com/users/jeffrey-c/repos","events_url":"https://api.github.com/users/jeffrey-c/events{/privacy}","received_events_url":"https://api.github.com/users/jeffrey-c/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"tmgordeeva","id":14338161,"avatar_url":"https://avatars.githubusercontent.com/u/14338161?v=3","gravatar_id":"","url":"https://api.github.com/users/tmgordeeva","html_url":"https://github.com/tmgordeeva","followers_url":"https://api.github.com/users/tmgordeeva/followers","following_url":"https://api.github.com/users/tmgordeeva/following{/other_user}","gists_url":"https://api.github.com/users/tmgordeeva/gists{/gist_id}","starred_url":"https://api.github.com/users/tmgordeeva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmgordeeva/subscriptions","organizations_url":"https://api.github.com/users/tmgordeeva/orgs","repos_url":"https://api.github.com/users/tmgordeeva/repos","events_url":"https://api.github.com/users/tmgordeeva/events{/privacy}","received_events_url":"https://api.github.com/users/tmgordeeva/received_events","type":"User","site_admin":false},"assignees":[{"login":"tmgordeeva","id":14338161,"avatar_url":"https://avatars.githubusercontent.com/u/14338161?v=3","gravatar_id":"","url":"https://api.github.com/users/tmgordeeva","html_url":"https://github.com/tmgordeeva","followers_url":"https://api.github.com/users/tmgordeeva/followers","following_url":"https://api.github.com/users/tmgordeeva/following{/other_user}","gists_url":"https://api.github.com/users/tmgordeeva/gists{/gist_id}","starred_url":"https://api.github.com/users/tmgordeeva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmgordeeva/subscriptions","organizations_url":"https://api.github.com/users/tmgordeeva/orgs","repos_url":"https://api.github.com/users/tmgordeeva/repos","events_url":"https://api.github.com/users/tmgordeeva/events{/privacy}","received_events_url":"https://api.github.com/users/tmgordeeva/received_events","type":"User","site_admin":false},{"login":"hsaraogi","id":20421615,"avatar_url":"https://avatars.githubusercontent.com/u/20421615?v=3","gravatar_id":"","url":"https://api.github.com/users/hsaraogi","html_url":"https://github.com/hsaraogi","followers_url":"https://api.github.com/users/hsaraogi/followers","following_url":"https://api.github.com/users/hsaraogi/following{/other_user}","gists_url":"https://api.github.com/users/hsaraogi/gists{/gist_id}","starred_url":"https://api.github.com/users/hsaraogi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hsaraogi/subscriptions","organizations_url":"https://api.github.com/users/hsaraogi/orgs","repos_url":"https://api.github.com/users/hsaraogi/repos","events_url":"https://api.github.com/users/hsaraogi/events{/privacy}","received_events_url":"https://api.github.com/users/hsaraogi/received_events","type":"User","site_admin":false}],"milestone":null,"comments":67,"created_at":"2016-07-26T01:08:26Z","updated_at":"2016-09-08T12:27:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/palantir/atlasdb/pulls/724","html_url":"https://github.com/palantir/atlasdb/pull/724","diff_url":"https://github.com/palantir/atlasdb/pull/724.diff","patch_url":"https://github.com/palantir/atlasdb/pull/724.patch"},"body":"Adding a new getRowsColumnRange method that should be more efficient on DbKvs and easier to consume in many situations. This takes a single batch limit for all the rows, instead of a limit per row, and returns all results in a single iterator instead of a visitiable per row. The implementation in DbKvs preloads column counts for each row to figure out exactly how to partition the requests; other implementations delegate to the existing getRowsColumnRange method.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/palantir/atlasdb/724)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/palantir/atlasdb/issues/comments/245581262","html_url":"https://github.com/palantir/atlasdb/pull/724#issuecomment-245581262","issue_url":"https://api.github.com/repos/palantir/atlasdb/issues/724","id":245581262,"user":{"login":"hsaraogi","id":20421615,"avatar_url":"https://avatars.githubusercontent.com/u/20421615?v=3","gravatar_id":"","url":"https://api.github.com/users/hsaraogi","html_url":"https://github.com/hsaraogi","followers_url":"https://api.github.com/users/hsaraogi/followers","following_url":"https://api.github.com/users/hsaraogi/following{/other_user}","gists_url":"https://api.github.com/users/hsaraogi/gists{/gist_id}","starred_url":"https://api.github.com/users/hsaraogi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hsaraogi/subscriptions","organizations_url":"https://api.github.com/users/hsaraogi/orgs","repos_url":"https://api.github.com/users/hsaraogi/repos","events_url":"https://api.github.com/users/hsaraogi/events{/privacy}","received_events_url":"https://api.github.com/users/hsaraogi/received_events","type":"User","site_admin":false},"created_at":"2016-09-08T12:27:37Z","updated_at":"2016-09-08T12:27:37Z","body":"\n\n\n\nReviewed 1 of 19 files at r7, 5 of 5 files at r8.\nReview status: all files reviewed at latest revision, 35 unresolved discussions.\n\n---\n\n*[atlasdb-api/src/main/java/com/palantir/atlasdb/keyvalue/api/BatchColumnRangeSelection.java, line 33 \\[r7\\]](https://reviewable.io:443/reviews/palantir/atlasdb/724#-KR3S1_UXXjA-Ga7gLH-:-KR8HxgOzxFzNPPY2jEB:b739xmg) ([raw file](https://github.com/palantir/atlasdb/blob/8302ff171e5454323ebefb29a75a33b781e925b8/atlasdb-api/src/main/java/com/palantir/atlasdb/keyvalue/api/BatchColumnRangeSelection.java#L33)):*\n<details><summary><i>Previously, jeffrey-c wrote…</i></summary>\n> Not sure why you'd want to prohibit people from calling the constructor directly.\n</details>\nYou shouldn't in general have a public constructor and static create methods, you can have another `public static create(ColumnRangeSelection columnRangeSelection, int batchHint)`\n\n---\n\n*[atlasdb-client/src/main/java/com/palantir/atlasdb/keyvalue/impl/KeyValueServices.java, line 214 \\[r8\\]](https://reviewable.io:443/reviews/palantir/atlasdb/724#-KR8Q_-XjkAFq_lv54Uy:-KR8Q_-XjkAFq_lv54Uz:bkzg2qs) ([raw file](https://github.com/palantir/atlasdb/blob/e839fe52fee608b67b17278ad9eea0c1102b5767/atlasdb-client/src/main/java/com/palantir/atlasdb/keyvalue/impl/KeyValueServices.java#L214)):*\n> ```Java\n>         int columnBatchSize = batchHint / Iterables.size(rows);\n>         BatchColumnRangeSelection batchColumnRangeSelection =\n>                 new BatchColumnRangeSelection(columnRangeSelection, columnBatchSize);\n> ```\n\nUse another `static create` method.\n\n---\n\n*[atlasdb-impl-shared/src/main/java/com/palantir/atlasdb/transaction/impl/SnapshotTransaction.java, line 392 \\[r8\\]](https://reviewable.io:443/reviews/palantir/atlasdb/724#-KR8SNaBJdU79Hftwo7H:-KR8SNaBJdU79Hftwo7I:bh1mp9z) ([raw file](https://github.com/palantir/atlasdb/blob/e839fe52fee608b67b17278ad9eea0c1102b5767/atlasdb-impl-shared/src/main/java/com/palantir/atlasdb/transaction/impl/SnapshotTransaction.java#L392)):*\n> ```Java\n>             RowColumnRangeIterator rawIterator = e.getValue();\n>             BatchColumnRangeSelection batchColumnRangeSelection =\n>                     new BatchColumnRangeSelection(columnRangeSelection, batchHint);\n> ```\n\nUse another `static create`.\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/palantir/atlasdb/724)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"hsaraogi"}}