Commit 87b9addd authored by Yoni Fogel's avatar Yoni Fogel

Addresses #596

Added extra questions.

git-svn-id: file:///svn/tokudb@3501 c7de825b-a66e-492c-adef-691d508d4ae1
parent 92350ad1
...@@ -36,6 +36,34 @@ struct OMS { ...@@ -36,6 +36,34 @@ struct OMS {
6- Do we need some way of 'loading' an order maintenance structure? 6- Do we need some way of 'loading' an order maintenance structure?
i.e. use these tags for the following items instead of 'inserting' over and over. i.e. use these tags for the following items instead of 'inserting' over and over.
7- The tag might not be able to be just 64 bits, is it ok to use 2 64 bit ints? 7- The tag might not be able to be just 64 bits, is it ok to use 2 64 bit ints?
What we don't understand:
* A separate order maintenance structure for each node, or for each leaf? (Emailed)
* >When we insert a key-value pair into a BRT leaf, we need to log enough information to rebuild the leaf after a crash.
>And at the time of recovery, we don't have a comparison function.
What is involved in rebuilding a node?
Our guess is that the only thing necessary is:
1-Recreate _which_ elements were stored in it.
2-Recreate the _order_ of the elements stored in it.
Is there anything else?
If that's it, it explains why we don't need an OMS for each node (just for each leaf).
Nodes only require #1, and when the elements are recreated the order doesn't matter (and can even change).
Is our guess correct?
* forwards backwards idea?
*
1- What does the PMA hold? Does it hold pointers to DBTs, or it actually holds
the DBTs and their data in-line?
2- What is being logged, and why is it being logged that way?
Do we just store old and new slots in the PMA?
If so, what does that actually give us?
Do we just serialize to disk by storing things in order?
3- Logging: Do we really need to log ALL changes to tags,
or only enough to 'reconstruct' the OMS such that we have a comparison function?
First case gives us O(log n), second makes O(1) possible.
(First case may be possible with O(1) but we'd have to devise a new algorithm)
*/ */
template <typename ITEM_TYPE, typename EXTRA_RENUMBER, typename EXTRA_CMP> template <typename ITEM_TYPE, typename EXTRA_RENUMBER, typename EXTRA_CMP>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment