{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/1720","repository_url":"https://api.github.com/repos/facebook/rocksdb","labels_url":"https://api.github.com/repos/facebook/rocksdb/issues/1720/labels{/name}","comments_url":"https://api.github.com/repos/facebook/rocksdb/issues/1720/comments","events_url":"https://api.github.com/repos/facebook/rocksdb/issues/1720/events","html_url":"https://github.com/facebook/rocksdb/issues/1720","id":197570496,"number":1720,"title":"FindValueForCurrentKey requires iter value being pinned","user":{"login":"rockeet","id":1574991,"avatar_url":"https://avatars.githubusercontent.com/u/1574991?v=3","gravatar_id":"","url":"https://api.github.com/users/rockeet","html_url":"https://github.com/rockeet","followers_url":"https://api.github.com/users/rockeet/followers","following_url":"https://api.github.com/users/rockeet/following{/other_user}","gists_url":"https://api.github.com/users/rockeet/gists{/gist_id}","starred_url":"https://api.github.com/users/rockeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rockeet/subscriptions","organizations_url":"https://api.github.com/users/rockeet/orgs","repos_url":"https://api.github.com/users/rockeet/repos","events_url":"https://api.github.com/users/rockeet/events{/privacy}","received_events_url":"https://api.github.com/users/rockeet/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-12-26T10:10:19Z","updated_at":"2016-12-30T07:32:52Z","closed_at":null,"body":"This too restricted, our custom SST's iterator never pin keys and values, so our SST can not support full feature of DBIter.\r\n\r\nWe noticed that this restriction is introduced in commit 68a8e6b8fa67df745221e23ea5af12393f35ce77.\r\n\r\nCould you provide an option to remove this restriction? @IslamAbdelRahman @siying "},"comment":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/comments/269741391","html_url":"https://github.com/facebook/rocksdb/issues/1720#issuecomment-269741391","issue_url":"https://api.github.com/repos/facebook/rocksdb/issues/1720","id":269741391,"user":{"login":"rockeet","id":1574991,"avatar_url":"https://avatars.githubusercontent.com/u/1574991?v=3","gravatar_id":"","url":"https://api.github.com/users/rockeet","html_url":"https://github.com/rockeet","followers_url":"https://api.github.com/users/rockeet/followers","following_url":"https://api.github.com/users/rockeet/following{/other_user}","gists_url":"https://api.github.com/users/rockeet/gists{/gist_id}","starred_url":"https://api.github.com/users/rockeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rockeet/subscriptions","organizations_url":"https://api.github.com/users/rockeet/orgs","repos_url":"https://api.github.com/users/rockeet/repos","events_url":"https://api.github.com/users/rockeet/events{/privacy}","received_events_url":"https://api.github.com/users/rockeet/received_events","type":"User","site_admin":false},"created_at":"2016-12-30T07:32:51Z","updated_at":"2016-12-30T07:32:51Z","body":"@IslamAbdelRahman Yes, that assert is critical, so we implemented pin data in our SST's iterator, but this introduced another issue: there is no change to release the pinned data in an iterator's lifetime, the pinned data can only be released in the destructor of SST's iterator.\r\n\r\nSo, to implement the full feature of an SST, we need one of the two:\r\n1. A chance to release the pinned data of an SST's iterator\r\n    - By adding a virtual method to InternalIterator, and call the method when the pinned data is not needed.\r\n2. Move the logic of pinning data to the callers of InternalIterator\r\n    - By adding a virtual method to InternalIterator for reporting if it support pin data, if yes, use the optimization of 68a8e6b8fa67df745221e23ea5af12393f35ce77, if not, use the slow path."}}
{"actor":{"display_login":"rockeet"}}