{"action":"created","issue":{"url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/567","labels_url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/567/labels{/name}","comments_url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/567/comments","events_url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/567/events","html_url":"https://github.com/brianfrankcooper/YCSB/pull/567","id":124482066,"number":567,"title":"[orientdb] fixed end table scan issue","user":{"login":"kruthar","id":169104,"avatar_url":"https://avatars.githubusercontent.com/u/169104?v=3","gravatar_id":"","url":"https://api.github.com/users/kruthar","html_url":"https://github.com/kruthar","followers_url":"https://api.github.com/users/kruthar/followers","following_url":"https://api.github.com/users/kruthar/following{/other_user}","gists_url":"https://api.github.com/users/kruthar/gists{/gist_id}","starred_url":"https://api.github.com/users/kruthar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kruthar/subscriptions","organizations_url":"https://api.github.com/users/kruthar/orgs","repos_url":"https://api.github.com/users/kruthar/repos","events_url":"https://api.github.com/users/kruthar/events{/privacy}","received_events_url":"https://api.github.com/users/kruthar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-12-31T15:54:44Z","updated_at":"2016-01-01T05:08:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/brianfrankcooper/YCSB/pulls/567","html_url":"https://github.com/brianfrankcooper/YCSB/pull/567","diff_url":"https://github.com/brianfrankcooper/YCSB/pull/567.diff","patch_url":"https://github.com/brianfrankcooper/YCSB/pull/567.patch"},"body":"This fixes the end table scanning brought up in #562.\r\n\r\nWhile working on this I found some things that should probably be marked as known issues.\r\n\r\n1. First is a performance issue, after testing with a few different recordcounts I found that iterateEntriesMajor() return time is directly linked with number of records in the table. So, a relatively small scan size will start to perform worse on larger tables. The better solution would have been to use iterateEntriesBetween(), problem is it takes a start and end key which is not how the current scan framework is set up. It may be a good idea to think about updating the scan operation to pass a recordcount as well as a corresponding endkey. This would benefit more bindings then OrientDB I believe. There are a few things that complicate that idea, but I'll save that for that discussion.\r\n2. The OIndexCursor implementation used here seems to be broken. It does not track the entries properly when iterating so when you get to the end of the iterator you get a ```NullPointerException```. For more info on why, here is the issue I posted: https://github.com/orientechnologies/orientdb/issues/5541. With a sufficiently high recordcount, +10000, this doesn't happen too often. I choose to not try and catch it, you never know if a legitimate null will pop up sometime. False negatives seemed better to me then false positives.\r\n\r\nShould known issues go into the orientdb README? anywhere else?"},"comment":{"url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/comments/168282785","html_url":"https://github.com/brianfrankcooper/YCSB/pull/567#issuecomment-168282785","issue_url":"https://api.github.com/repos/brianfrankcooper/YCSB/issues/567","id":168282785,"user":{"login":"busbey","id":44891,"avatar_url":"https://avatars.githubusercontent.com/u/44891?v=3","gravatar_id":"","url":"https://api.github.com/users/busbey","html_url":"https://github.com/busbey","followers_url":"https://api.github.com/users/busbey/followers","following_url":"https://api.github.com/users/busbey/following{/other_user}","gists_url":"https://api.github.com/users/busbey/gists{/gist_id}","starred_url":"https://api.github.com/users/busbey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/busbey/subscriptions","organizations_url":"https://api.github.com/users/busbey/orgs","repos_url":"https://api.github.com/users/busbey/repos","events_url":"https://api.github.com/users/busbey/events{/privacy}","received_events_url":"https://api.github.com/users/busbey/received_events","type":"User","site_admin":false},"created_at":"2016-01-01T05:08:23Z","updated_at":"2016-01-01T05:08:23Z","body":"+1. We should probably request this get cherry picked to 0.6.0's staging branch."}}