For the merkle tree, is tree designed such all data blocks are on the leafs?
If yes, then i assume any difference between 2 data blocks will cause all parent hashes to be different. So when searching from root downwards, we also to go all the way from root to the leafs. There won't be a case of the search stopping somewhere in the middle…
For the merkle tree, is tree designed such all data blocks are on the leafs?
If yes, then i assume any difference between 2 data blocks will cause all parent hashes to be different. So when searching from root downwards, we also to go all the way from root to the leafs. There won't be a case of the search stopping somewhere in the middle right?
"Thus in the worst case, they need logarithmic time complexity to transfer data."
So i don't understand why is it a worst case. I thought it is always the case that we have to search until leafs, which are where the data blocks exist, and anything above leaf level are meaningless hashes
Also could you clarify statements in section 4+5?
"While the temporary server sends the data once the failed server is back online. Thus offering high write availability."
Temporary server send data to where? The failed server after it's recovered?
" it happened before sending temporary data to the server that was back online after a failure."
> For the merkle tree, is tree designed such all data blocks are on the leafs?
The leaf node stores the hash of data blocks and parent nodes are created by concatenating children. So we could stop comparison if parent nodes are different. Does that make sense?
For the merkle tree, is tree designed such all data blocks are on the leafs?
If yes, then i assume any difference between 2 data blocks will cause all parent hashes to be different. So when searching from root downwards, we also to go all the way from root to the leafs. There won't be a case of the search stopping somewhere in the middle right?
"Thus in the worst case, they need logarithmic time complexity to transfer data."
So i don't understand why is it a worst case. I thought it is always the case that we have to search until leafs, which are where the data blocks exist, and anything above leaf level are meaningless hashes
Also could you clarify statements in section 4+5?
"While the temporary server sends the data once the failed server is back online. Thus offering high write availability."
Temporary server send data to where? The failed server after it's recovered?
" it happened before sending temporary data to the server that was back online after a failure."
Which server is sending to which server?
- Failed (before failing) to temporary?
- Temporary to Failed (after recovering)?
> For the merkle tree, is tree designed such all data blocks are on the leafs?
The leaf node stores the hash of data blocks and parent nodes are created by concatenating children. So we could stop comparison if parent nodes are different. Does that make sense?
Extra read:
- https://en.wikipedia.org/wiki/Merkle_tree
- https://leetcode.com/problems/subtree-of-another-tree/solutions/102741/Python-Straightforward-with-Explanation-(O(ST)-and-O(S+T)-approaches)/
---
> Temporary server send data to where? The failed server after it's recovered?
yes, exactly
---
> Which server is sending to which server?
Temporary server to Failed (after recovering)