Commit Graph
100 Commits
Author SHA1 Message Date
Joe Thornber 7f6bdf2acf Add callgrind files to the ignore file 2014-08-26 11:24:07 +01:00
Joe Thornber d17ad86a88 [*_restore] Use a little wrapper class for the expat XML_Parser to ensure it gets destroyed. 2014-08-26 11:23:29 +01:00
Joe Thornber a7c96c0e1e [everything] Fix circular shared pointer references.
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.

This prevented objects being destroyed when various programs exited.

From now on we'll try and only use a shared ptr if ownership is
implied.  Otherwise a reference will be used (eg, for up pointers).
2014-08-26 11:14:49 +01:00
Joe Thornber 930cc9d412 [block-manager] Superblocks weren't being marked as DIRTY
Gulp
2014-08-21 14:25:02 +01:00
Joe Thornber b493a30b65 [block-cache] tweak when validators are swapped
Makes it more consitent in the face of exceptions
2014-08-21 14:23:14 +01:00
Joe Thornber 6f760ccd87 [block-cache] When changing validators the new validator check fn was only being called if the block was dirty. 2014-08-21 14:22:14 +01:00
Joe Thornber b5a9cd6043 [block-cache] Create just one noop_validator
No need to create a separate one for each block.
2014-08-21 14:20:36 +01:00
Joe Thornber 4799becb01 [block-cache] fix leaking validators
The memory for the blocks is explicitly managed, and the destructors
for the blocks wasn't being called.
2014-08-21 14:19:36 +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 3724f78a13 [block_t] Fix a validator test 2014-08-21 11:51:04 +01:00
Joe Thornber e3d459a148 [era_restore] add some cucumber tests 2014-08-21 11:27:52 +01:00
Joe Thornber feb8a03d5f [btree_damage_tracker] Initialise all path_tracker objects with a null path.
This fixes an insidious bug that took me ages to track down.  Without
it the non-existent front() of a list was sometimes being accessed.
2014-08-21 11:25:07 +01:00
Joe Thornber 1a632f9d53 [era/xml restorer] bug fixes 2014-08-21 11:22:12 +01:00
Joe Thornber 5465c95134 [era/xml format] bring in line with the Ruby library 2014-08-21 11:21:47 +01:00
Joe Thornber 85ab149685 [era/metadata.{h,cc}] Support creation of new metadata 2014-08-21 11:20:43 +01:00
Joe Thornber bf1b65e62f Update gemfile.lock 2014-08-21 11:18:06 +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 94356a1648 [era_check] Was returning after just checking the superblock.
Presumably old debug.
2014-08-15 10:11:35 +01:00
Joe Thornber 157eca4dd0 [era_restore] tweak help message 2014-08-12 10:20:29 +01:00
Joe Thornber 75a797253e [build] build era_restore by default 2014-08-12 10:18:58 +01:00
Joe Thornber ad38cfe9c9 [block cache] Comment out the statistics output for now 2014-08-12 10:15:14 +01:00
Joe Thornber 56e79676f3 update Gemfile.lock 2014-08-12 10:09:30 +01:00
Joe Thornber 283ab4ad99 first drop of era_restore 2014-08-07 15:43:01 +01:00
Joe Thornber 1d12d0ff8e remove empty destructor 2014-08-07 15:42:10 +01:00
Joe Thornber 936e14441f Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-08-06 16:32:04 +01:00
Joe Thornber 8f73241119 [era] parser for the XML format 2014-08-06 16:30:38 +01:00
Joe Thornber 3e5c02459c whitespace 2014-08-06 16:30:26 +01:00
Joe Thornber efe597f097 [README] Add dep for libaio 2014-08-06 16:29:50 +01:00
Joe Thornber 7e2ea38534 [configure.ac] Make sure libaio.h is present, and remove deps for a couple of boost headers we're no longer using. 2014-08-06 16:27:18 +01:00
Joe Thornber 1d38b390b5 Factor common code out of the xml_format files. 2014-08-06 15:29:02 +01:00
Joe Thornber d8f678b079 Rename configure.in to configure.ac to stop auto tools bleating 2014-08-06 15:20:40 +01:00
Joe Thornber a75a2118a0 era_invalidate: update help to reflect --metadata-snapshot 2014-08-06 11:15:18 +01:00
Joe Thornber aa08c8393a Man pages were being installed in a v. funny place. 2014-08-06 11:14:15 +01:00
Joe Thornber 672582b2a8 Install era manpages 2014-08-06 11:10:22 +01:00
Joe Thornber bdec4b353c tweak some man pages 2014-08-06 10:33:23 +01:00
Joe Thornber 41ade2a259 Add era_invalidate manpage 2014-08-06 10:32:39 +01:00
Joe Thornber a2d6e86c51 Add era_dump man page. 2014-08-05 15:43:54 +01:00
Joe Thornber 460c0ef8d2 era_check man page 2014-08-05 15:17:43 +01:00
Joe Thornber 48c6dc0762 Flush the block cache stats when they're complete 2014-08-05 14:53:03 +01:00
Joe Thornber bf138c2a50 update gem lock file 2014-08-05 14:50:35 +01:00
Joe Thornber ea62f6e06e add changes file 2014-08-05 12:21:06 +01:00
Joe Thornber d00aef9219 [thini_restore] add a quiet option to turn off the progress monitor 2014-08-05 12:10:34 +01:00
Joe Thornber fccc1dfcb0 [thin_restore] Add a progress monitor 2014-08-05 11:47:57 +01:00
Joe Thornber 8321bdcf59 Merge pull request #13 from bgilbert/fix-units
thin_metadata_size: Fix long names of units
2014-08-05 09:34:37 +01:00
Joe Thornber f534664f96 Add stats to block cache and remove the info fn 2014-07-31 12:18:01 +01:00
Joe Thornber eee9004354 whitespace 2014-07-30 12:27:33 +01:00
Joe Thornber 74de9a1a94 [btree_damage_visitor] some tweaks to stop constructing so many btree_paths. 2014-07-30 12:21:34 +01:00
Joe Thornber a99d6896a8 Fix a bug in the block cache read path. 2014-07-29 13:41:45 +01:00
Joe Thornber f06a2673c5 wip 2014-07-29 11:34:26 +01:00
Joe Thornber d482a76bda Use placement new to initialise the blocks 2014-07-28 14:32:33 +01:00
Joe Thornber 5c82d50204 remove some debug 2014-07-28 14:32:20 +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 d9040949fc forgot block_cache itself 2014-07-22 16:43:44 +01:00
Joe Thornber d517684c95 Initial code drop for merging block_cache 2014-07-22 16:41:39 +01:00
Joe Thornber fbce4d96f4 [cache_metadata_size] tweak an error message 2014-07-21 11:58:48 +01:00
Joe Thornber 9470937b10 [btree] When creating a new multilayer btree the initial node should
have block_traits, rather than the ValueTraits.
2014-07-02 15:02:32 +01:00
Joe Thornber e77e8715b0 Remove ambiguity between boost::uint64_t and ::uint64_t.
This has been causing people problems on uclibc builds.
2014-07-02 08:19:20 +00:00
Joe Thornber 9d63576ed3 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-06-26 15:36:41 +01:00
Joe Thornber 5e3f4cf532 [era] Provide a default ctr for era_detail to quieten coverity 2014-06-26 15:35:48 +01:00
Joe Thornber 37f4c38ec3 [era/writeset_tree] Initialise era_ in the ctr to quieten coverity 2014-06-26 15:29:33 +01:00
Joe Thornber d3687db3a8 [bloom filter] remove an unused data member 2014-06-26 15:26:39 +01:00
Joe Thornber e4d82d04bd [thin_delta] Fix bug when detecting right_only mappings 2014-06-17 16:20:38 +01:00
Joe Thornber c8f408ac3c [thin_delta] Update the usage 2014-06-17 15:00:38 +01:00
Joe Thornber bb57104542 [thin_delta] By default output a simpler format that ignores the data locations.
Most people will access the data via the thin device itself, so
there's really no need to output the locations of the data on pool
device.  Doing this allows us to run together adjacent thin blocks
(even if they are not adjacent on the pool dev).

Simple format:

  <same begin="0" length="1"/>
  <different begin="1" length="4"/>
  <same begin="5" length="1"/>
  <different begin="6" length="6"/>
  <same begin="12" length="1"/>
  <different begin="13" length="9"/>
  <same begin="22" length="1"/>
  <different begin="23" length="4"/>
  <same begin="27" length="1"/>
  <different begin="28" length="3"/>
  <same begin="31" length="1"/>
  <different begin="32" length="1"/>

The old format is available using the --verbose switch:

  <same>
    <range begin="0" data_begin="0" length="1"/>
  </same>

  <different>
    <range begin="1" left_data_begin="24576" right_data_begin="16384" length="1"/>
    <range begin="2" left_data_begin="24577" right_data_begin="2" length="1"/>
    <range begin="3" left_data_begin="24578" right_data_begin="16385" length="1"/>
    <range begin="4" left_data_begin="24579" right_data_begin="4" length="1"/>
  </different>

  <same>
    <range begin="5" data_begin="5" length="1"/>
  </same>

  <different>
    <range begin="6" left_data_begin="24580" right_data_begin="16386" length="1"/>
    <range begin="7" left_data_begin="7" right_data_begin="16387" length="1"/>
    <range begin="8" left_data_begin="24581" right_data_begin="8" length="1"/>
    <range begin="9" left_data_begin="24582" right_data_begin="16388" length="1"/>
    <range begin="10" left_data_begin="10" right_data_begin="16389" length="1"/>
    <range begin="11" left_data_begin="24583" right_data_begin="11" length="1"/>
  </different>

  <same>
    <range begin="12" data_begin="12" length="1"/>
  </same>

  <different>
    <range begin="13" left_data_begin="24584" right_data_begin="13" length="1"/>
    <range begin="14" left_data_begin="24585" right_data_begin="16390" length="1"/>
    <range begin="15" left_data_begin="24586" right_data_begin="15" length="1"/>
    <range begin="16" left_data_begin="16" right_data_begin="16391" length="1"/>
    <range begin="17" left_data_begin="24587" right_data_begin="16392" length="1"/>
    <range begin="18" left_data_begin="18" right_data_begin="16393" length="3"/>
    <range begin="21" left_data_begin="24588" right_data_begin="21" length="1"/>
  </different>

  <same>
    <range begin="22" data_begin="22" length="1"/>
  </same>

  <different>
    <range begin="23" left_data_begin="24589" right_data_begin="23" length="1"/>
    <range begin="24" left_data_begin="24590" right_data_begin="16396" length="1"/>
    <range begin="25" left_data_begin="24591" right_data_begin="25" length="1"/>
    <range begin="26" left_data_begin="26" right_data_begin="16397" length="1"/>
  </different>

  <same>
    <range begin="27" data_begin="27" length="1"/>
  </same>

  <different>
    <range begin="28" left_data_begin="24592" right_data_begin="28" length="2"/>
    <range begin="30" left_data_begin="30" right_data_begin="16398" length="1"/>
  </different>

  <same>
    <range begin="31" data_begin="31" length="1"/>
  </same>

  <different>
    <range begin="32" left_data_begin="24594" right_data_begin="32" length="1"/>
  </different>
2014-06-17 14:20:33 +01:00
Joe Thornber 0e62a1c4de [thin_delta] provide a more complete diff output. 2014-06-17 12:39:13 +01:00
Joe Thornber f80c2dc77f [thin_delta] Don't use endl which also flushes 2014-06-16 13:58:25 +01:00
Joe Thornber c5c699e563 whitespace 2014-06-16 13:44:43 +01:00
Joe Thornber d7d293ee4f thin_delta now works 2014-06-10 16:38:20 +01:00
Joe Thornber d1989f4a14 whitespace 2014-06-10 16:38:10 +01:00
Joe Thornber e851b35954 [thin_delta] read in the snaps and dev 2014-06-09 13:26:55 +01:00
Joe Thornber b03fa373a1 [thin_delta] Print usage on unrecognised switch 2014-06-09 10:51:10 +01:00
Joe Thornber 83f2cce597 [thin_delta] -h/--help 2014-06-09 10:48:29 +01:00
Joe Thornber 87fa6dc079 [thin_delta] --version/-V 2014-06-09 10:37:46 +01:00
Joe Thornber ae21670fd1 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-06-06 15:06:33 +01:00
Joe Thornber 256cd16ab3 node_ref now checks the value_type sizes match, and the data fits within a single block. 2014-06-06 15:05:41 +01:00
Joe Thornber 82359c4835 remove a typename that rhel 6.6 objects to 2014-04-11 14:52:06 +01:00
Joe Thornber cf5d2e3225 bump version 2014-04-11 14:11:59 +01:00
Joe Thornber 05b18a5b99 [thin_check] Fix bug in clear needs check logic.
Mixed up bools and int returns.
2014-04-02 13:43:16 +01:00
Joe Thornber 7eabc78d6d [era] qualify btiset 2014-04-01 17:43:15 +01:00
Joe Thornber c802bf81d5 bump version 2014-04-01 16:40:14 +01:00
Joe Thornber 47ec37a9fd [thin tools] fix ambiguous reference to 'bitset' 2014-04-01 16:39:45 +01:00
Joe Thornber df8447de3d bump version 2014-03-27 12:24:31 +00:00
Joe Thornber 8c24419238 Knock out the era_superblock_t for now.
It's still got some bloom stuff in it.  Will tidy up after release.
2014-03-27 12:23:00 +00:00
Joe Thornber c3249ff757 [thin_check] --clear-needs-check-flag 2014-03-27 12:00:17 +00:00
Joe Thornber fe019f6946 install era tools 2014-03-06 16:30:33 +00:00
Joe Thornber 49e59ca781 [era_dump] add --logical 2014-02-14 14:35:25 +00:00
Joe Thornber 54f38e6702 [era_invalidate] Change to output ranges. 2014-02-12 11:49:41 +00:00
Joe Thornber 5fe5d213b7 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools into era
Conflicts:
	Makefile.in
2014-01-31 22:35:04 +00:00
Joe Thornber d3afa57082 era_invalidate 2014-01-31 16:31:27 +00:00
Joe Thornber 344f4b1e08 Factor out base/indented_stream.h 2014-01-31 13:43:39 +00:00
Joe Thornber 8531a2befa [era] switch from bloom filters to writesets 2014-01-29 21:37:25 +00:00
Joe Thornber e7bbfbc1fd update ignore file 2014-01-23 00:46:29 +00:00
Joe Thornber 9e0540e1b6 era_check, era_dump 2014-01-23 00:46:03 +00:00
Joe Thornber 2f1789744f [caching] add missing break in cache_metadata_size 2014-01-15 16:48:46 +00:00
Joe Thornber ef6066e2cd Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-01-15 15:52:33 +00:00