Sebastian Messmer
|
a4ce49aef4
|
Fix unique_ref test cases
|
2016-07-22 14:07:06 +02:00 |
|
Sebastian Messmer
|
64d26c2f6e
|
Fix compiler error on older gcc
|
2016-07-22 12:58:59 +02:00 |
|
Sebastian Messmer
|
f069733650
|
Fix warning on older gcc versions
|
2016-07-22 02:57:03 +02:00 |
|
Sebastian Messmer
|
e38c0f1e8b
|
Fix isRightBorderNode when growing trees
|
2016-07-17 10:32:59 +02:00 |
|
Sebastian Messmer
|
bbdd8a548b
|
Special case treatment for traversals until exactly the last leaf has to load the last leaf to grow it. Before this commit, we just always loaded the last traversed leaf and checked its size. Now we only do so if it's the right border leaf. This saves us loading some leaves.
|
2016-07-17 10:16:09 +02:00 |
|
Sebastian Messmer
|
b339261924
|
Merge branch 'next' into lessio
|
2016-07-16 17:14:07 +02:00 |
|
Sebastian Messmer
|
f6141f515b
|
TODOs
|
2016-07-16 17:08:53 +02:00 |
|
Sebastian Messmer
|
dc40d61595
|
Merge branch 'next' into lessio
|
2016-07-16 16:47:36 +02:00 |
|
Sebastian Messmer
|
e3690e2f6b
|
Add comment
|
2016-07-16 16:47:27 +02:00 |
|
Sebastian Messmer
|
9c42703c70
|
Merge branch 'next' into lessio
|
2016-07-16 16:10:03 +02:00 |
|
Sebastian Messmer
|
143c3b3b4f
|
Use large reads and large write
|
2016-07-16 16:09:47 +02:00 |
|
Sebastian Messmer
|
eab7cb1df4
|
Implement BlockStore::overwrite(). This is the last step in ensuring that the write() call doen't have to load leaves if they're only overwritten anyhow.
|
2016-07-16 11:42:06 +02:00 |
|
Sebastian Messmer
|
eb792daefc
|
More preparations for not loading blocks in write() calls
|
2016-07-15 21:06:41 +02:00 |
|
Sebastian Messmer
|
d80b95514e
|
Traversal doesn't load leaves, but returns the key. This way, the write() call can (after a future commit) write to full leaves without loading them beforehand.
|
2016-07-15 20:12:24 +02:00 |
|
Sebastian Messmer
|
582917c1f5
|
Improve code decreasing tree depth
|
2016-07-15 16:23:00 +02:00 |
|
Sebastian Messmer
|
b1b90b8c3d
|
Further reduce number of nodes loaded when deleting a tree and write test cases for it
|
2016-07-15 15:42:34 +02:00 |
|
Sebastian Messmer
|
c428d5642a
|
Minimize number of Block::write() calls when creating new nodes in a traversal. Also add test cases for it.
|
2016-07-15 12:48:20 +02:00 |
|
Sebastian Messmer
|
d626349802
|
Finish MockBlockStore to also collect other performance metrics, and implement the standard block store tests for it.
|
2016-07-15 10:23:09 +02:00 |
|
Sebastian Messmer
|
f42e08a5f6
|
Fix DataTree::key() when called while traversing
|
2016-07-14 17:56:47 +02:00 |
|
Sebastian Messmer
|
6ff0839e90
|
Add locking to blob
|
2016-07-14 16:36:30 +02:00 |
|
Sebastian Messmer
|
457ca52eb3
|
Add assertions to unique_ref
|
2016-07-14 16:29:02 +02:00 |
|
Sebastian Messmer
|
7ea08fc2b0
|
Add test cases for removing nodes
|
2016-07-14 16:12:51 +02:00 |
|
Sebastian Messmer
|
91bf6c3647
|
Keep resource destructor in ParallelAccessStore under mutex
|
2016-07-14 15:10:52 +02:00 |
|
Sebastian Messmer
|
3f04a7411c
|
If tree depth increases, and we already traversed the old tree, don't go into it again to grow its last leaf.
|
2016-07-14 14:23:15 +02:00 |
|
Sebastian Messmer
|
cbe122cb5f
|
Add assertions
|
2016-07-14 13:23:36 +02:00 |
|
Sebastian Messmer
|
0bb6b320d4
|
Add asserts
|
2016-07-14 12:58:42 +02:00 |
|
Sebastian Messmer
|
0dbfdf3e2b
|
When shrinking a tree, LeafTraverser takes care of decreasing tree depth, not DataTree anymore. This way, LeafTraverser is now responsible for increasing and decreasing depth as necessary.
|
2016-07-14 12:55:54 +02:00 |
|
Sebastian Messmer
|
35a4e42ba5
|
Small fixes in traversal algorithm
|
2016-07-14 12:38:25 +02:00 |
|
Sebastian Messmer
|
fce81f47ff
|
Simplify code a bit and add assertions
|
2016-07-14 12:03:15 +02:00 |
|
Sebastian Messmer
|
9e9369b9ed
|
Performance optimization: When removing or shrinking a tree, we don't load/read leaves anymore. Loading inner nodes is enough to get all block IDs and then we can delete the leaves from their IDs without loading them.
|
2016-07-13 11:27:31 +02:00 |
|
Sebastian Messmer
|
7a68757599
|
Remove unneeded subtrees when shrinking tree
|
2016-07-13 07:08:53 +02:00 |
|
Sebastian Messmer
|
cf38eb0eb3
|
Use tree traversal to remove data tree.
|
2016-07-13 00:29:36 +02:00 |
|
Sebastian Messmer
|
508766d2f2
|
Fix traversal and add test cases
|
2016-07-13 00:22:35 +02:00 |
|
Sebastian Messmer
|
845b0b5239
|
Use LeafTraversor for resizing blobs
|
2016-07-12 20:36:12 +02:00 |
|
Sebastian Messmer
|
a19d79361c
|
If a tree is grown by a traversal, the tree is kept in a balanced state as long as possible during the traversal
|
2016-07-12 09:57:56 +02:00 |
|
Sebastian Messmer
|
1bf20277e4
|
Removed unnecessary code
|
2016-07-12 01:10:27 +02:00 |
|
Sebastian Messmer
|
58f2212043
|
Don't query size on traversal
|
2016-07-12 01:09:30 +02:00 |
|
Sebastian Messmer
|
582c9c1a4c
|
Fix traversal
|
2016-07-12 01:04:33 +02:00 |
|
Sebastian Messmer
|
98b85ea8b6
|
Started rewriting traversal
|
2016-07-10 22:57:39 +02:00 |
|
Sebastian Messmer
|
2bc3b641aa
|
Allow Data::FillWithZeroes on rvalue
|
2016-07-10 22:43:07 +02:00 |
|
Sebastian Messmer
|
dde89da556
|
Improve traverseLeaves
|
2016-07-10 08:38:02 +02:00 |
|
Sebastian Messmer
|
0d860fa4f0
|
Speed up block loading/storing by issuing only one read/write syscall to the base file system
|
2016-07-06 15:35:51 -07:00 |
|
Sebastian Messmer
|
7348f7c64d
|
Add checks to Data::LoadFromFile() and Data::StoreToFile()
|
2016-07-06 15:28:14 -07:00 |
|
Sebastian Messmer
|
e85019e95b
|
Cache value of DataTree.numLeaves(). This should make read()/write() faster.
|
2016-07-05 23:56:44 -07:00 |
|
Sebastian Messmer
|
a242076ecc
|
Performance improvement: Allow more parallelity when getting read()/write() syscalls to the same blob
|
2016-07-05 23:02:59 -07:00 |
|
Sebastian Messmer
|
ff0ba06846
|
Add mutex to fix race condition
|
2016-06-29 16:42:43 -07:00 |
|
Sebastian Messmer
|
b7b5dfba2a
|
Fix generation of new file systems
|
2016-06-27 22:31:06 -07:00 |
|
Sebastian Messmer
|
3425760daf
|
Implement migration for old filesystems that don't have parent pointers.
|
2016-06-27 20:03:44 -07:00 |
|
Sebastian Messmer
|
bfb397f44e
|
Tell user to not interrupt migration process
|
2016-06-27 20:01:02 -07:00 |
|
Sebastian Messmer
|
397de9372f
|
Each blob stores a parent pointer (i.e. the ID of the directory that contains this blob). This stores the directory structure in a conflict-proof way and can be used to resolve such conflicts.
|
2016-06-27 18:22:13 -07:00 |
|