Commit Graph

29 Commits

Author SHA1 Message Date
Joe Thornber
930cc9d412 [block-manager] Superblocks weren't being marked as DIRTY
Gulp
2014-08-21 14:25:02 +01:00
Joe Thornber
0d3942cae8 [block-manager] ensure the superblock cannot be taken concurrently with any other lock. 2014-08-21 12:18:05 +01:00
Joe Thornber
6f804cab24 [block_manager] Track the number of superblocks, throw an exception if someone tries to open two a once. 2014-08-21 11:17:20 +01:00
Joe Thornber
f06a2673c5 wip 2014-07-29 11:34:26 +01:00
Joe Thornber
840be1b6c9 wip 2014-07-28 14:13:28 +01:00
Joe Thornber
ab6d31f136 fluff 2014-07-25 17:53:37 +01:00
Joe Thornber
ecb6bee2b2 prefetch btree nodes when walking a tree 2014-07-25 16:32:59 +01:00
Joe Thornber
11469a2fda Beginning to work 2014-07-25 16:14:24 +01:00
Joe Thornber
7e870ea5a6 start removing block_manager<>::block 2014-07-25 14:46:51 +01:00
Joe Thornber
b32908d5c2 work in progress 2014-07-25 10:35:04 +01:00
Joe Thornber
d517684c95 Initial code drop for merging block_cache 2014-07-22 16:41:39 +01:00
Joe Thornber
8531a2befa [era] switch from bloom filters to writesets 2014-01-29 21:37:25 +00:00
Joe Thornber
e7816d2f43 [block] Open block files with O_DIRECT | O_SYNC.
Putting this back in.  Dumping metadata snapshots fails without.  So
there's more caching in the kernel than I expected.
2013-10-07 09:58:17 +01:00
Joe Thornber
77286e0bc7 Take out some 'typename's to support older versions of gcc (Heinz). 2013-08-15 10:35:07 +01:00
Joe Thornber
4deb1751a6 stop using O_DIRECT until the cach does async io 2013-07-09 16:52:31 +01:00
Joe Thornber
6706493304 Remove some global 'using namespace's 2013-05-28 13:48:10 +01:00
Joe Thornber
0dba0abe88 Bump up the nr of blocks in the cache from 64 to 1024. 2013-05-13 12:34:52 +01:00
Joe Thornber
a7c0b0c39b [block, lock_checker] add an is_locked() method for use in unit tests. 2013-04-29 12:31:30 +01:00
Joe Thornber
b1e0ca2207 [block] make sure we can change validators 2013-04-26 15:54:15 +01:00
Joe Thornber
53ac7b8119 [block_manager] Allow people to change the validator for a block 2013-04-26 14:14:28 +01:00
Joe Thornber
0b4c359a63 [block manager] The dirty flag for blocks was never being cleared, causes redundant writes. 2013-04-26 13:18:24 +01:00
Joe Thornber
0455cfbf13 [block] use lseek to size a new block file rather than fallocate.
Which sadly returned operation not supported for some reason.
2013-01-15 04:06:57 +00:00
Joe Thornber
fb1ad01e19 Add a CREATE mode to the block_io class. 2013-01-15 03:23:55 +00:00
Joe Thornber
779f8e1fd4 Introduce a mode enum to block_io<> 2013-01-11 20:16:40 +00:00
Joe Thornber
1cc6737c26 Remove the typedef block_ptr and change code to use block::ptr instead 2013-01-10 11:02:06 +00:00
Joe Thornber
3e39e8bfeb A big raft of changes to the unit-tests 2013-01-09 20:24:11 +00:00
Joe Thornber
26b97908bd Add superblock_lock method to lock_tracker. 2013-01-07 15:30:51 +00:00
Joe Thornber
2a427ca925 Add persistent_data/lock_tracker for more sanity checking. 2013-01-07 14:59:41 +00:00
Joe Thornber
282e98a6b1 Move source into separate sub directories. 2013-01-02 12:55:41 +00:00