https://tracker.ceph.com/https://tracker.ceph.com/favicon.ico2012-07-09T09:16:45ZCeph Ceph - Subtask #2756: mon: Single-Paxos: LevelDBStore: Make iterator thread-safehttps://tracker.ceph.com/issues/2756?journal_id=117152012-07-09T09:16:45ZJoao Eduardo Luis
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>4</i></li></ul> Ceph - Subtask #2756: mon: Single-Paxos: LevelDBStore: Make iterator thread-safehttps://tracker.ceph.com/issues/2756?journal_id=117162012-07-09T09:35:02ZJoao Eduardo Luis
<ul><li><strong>Parent task</strong> changed from <i>#2621</i> to <i>#2739</i></li></ul> Ceph - Subtask #2756: mon: Single-Paxos: LevelDBStore: Make iterator thread-safehttps://tracker.ceph.com/issues/2756?journal_id=118372012-07-17T10:32:10ZJoao Eduardo Luis
<ul></ul><p>Just a couple of notes on this regard:</p>
<ul>
<li>We changed KeyValueDB:</li>
</ul>
<blockquote>
<ul>
<li>Added a Whole-space iterator interface</li>
<li>Implemented the prefix-based iterator in terms of the Whole-space iterator interface</li>
<li>Added a virtual abstract get_iterator() function</li>
<li>Added a virtual abstract get_readonly_iterator() function</li>
<li>Implemented the prefix-based get functions for both the iterator and the read-only iterator in terms of the new functions</li>
</ul>
</blockquote>
<ul>
<li>We changed LevelDBStore:</li>
</ul>
<blockquote>
<ul>
<li>Implemented KeyValueDB's Whole-space iterator interface</li>
<li>Implemented a read-only iterator based on the Whole-space iterator interface</li>
<li>Added the getters for both the whole-space iterator and the whole-space read-only iterator</li>
</ul>
</blockquote>
<ul>
<li>LevelDBStore's read-only iterator:</li>
</ul>
<blockquote>
<ul>
<li>Relies on leveldb's snapshots</li>
<li>Currently there is no apparent difference between this implementation or the whole-space iterator itself (this was concluded through testing). However, I feel way more comfortable relying on an iterator that explicitly uses an iterator, instead of hoping that leveldb's inner workings get to do that for us -- although it currently does, I can't but wonder if it will always like that.</li>
</ul>
</blockquote> Ceph - Subtask #2756: mon: Single-Paxos: LevelDBStore: Make iterator thread-safehttps://tracker.ceph.com/issues/2756?journal_id=118382012-07-17T10:32:45ZJoao Eduardo Luis
<ul><li><strong>Status</strong> changed from <i>4</i> to <i>Fix Under Review</i></li><li><strong>% Done</strong> changed from <i>90</i> to <i>100</i></li></ul> Ceph - Subtask #2756: mon: Single-Paxos: LevelDBStore: Make iterator thread-safehttps://tracker.ceph.com/issues/2756?journal_id=121712012-08-03T07:43:46ZJoao Eduardo Luis
<ul><li><strong>Status</strong> changed from <i>Fix Under Review</i> to <i>Resolved</i></li></ul>