Commit Graph

31 Commits

Author SHA1 Message Date
Joe Thornber db5a71a53c [rust tools] Get the tools version from autoconf 2020-06-09 10:23:52 +01:00
Joe Thornber 61de3f9287 [thin_metadata_pack/unpack] Replace C++ implementation with a Rust one.
The Rust implementation is multithreaded, performs better in general and
does custom compression of btree nodes to achieve much better compression
ratios.  unpack also checksums expanded metadata to validate it.

Format version has jumped to 3, no backwards compatibility, but I think
that's ok since we never made a release that contained the C++ version
of these tools.

Benchmarks
==========

On an 8 core, 16 hyperthread machine.

metadata 1G, full:

      Pack size    pack time     unpack time
------------------------------------------------------
C++      193M        50.3s          6.9s (no verify)
Rust      70M         1.4s          1.8s (verify)

metadata 16G, sparse:

       Pack size    pack time     unpack time
------------------------------------------------------
C++      21M          68s           1s   (no verify)
Rust      4M           8.6s         0.5s (verify)
2020-06-09 09:15:00 +01:00
Joe Thornber dd8848f088 [manpages] Rewrite man pages in a simpler text format.
Makefile still needs work, but I wanted to commit to save progress.
2017-09-20 11:15:00 +01:00
Joe Thornber 57db3a2b99 [functional tests] Break up check-superblock.scm into separate
libraries
2017-08-08 11:47:37 +01:00
Joe Thornber 06e74656f6 update ignore file 2016-03-24 15:22:01 +00:00
Joe Thornber 0349956015 Merge branch 'low_level_examine_metadata' into merge-show-blocks
Conflicts:
	.gitignore
	Makefile.in
	persistent-data/space-maps/disk.cc
2016-02-24 15:24:43 +00:00
Joe Thornber 6f8b7e2914 [all] Build a single executable 2014-08-27 14:01:31 +01:00
Joe Thornber e31ffe0874 update ignore file 2014-08-26 11:26:18 +01:00
Joe Thornber 7f6bdf2acf Add callgrind files to the ignore file 2014-08-26 11:24:07 +01:00
Joe Thornber 38f8195a99 thin_show_blocks 2014-02-19 15:01:07 +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 e7bbfbc1fd update ignore file 2014-01-23 00:46:29 +00:00
Joe Thornber cbbdfc37da [cache] cache_metadata_size 2014-01-15 15:52:05 +00:00
Joe Thornber bfb540cc5b [era] era_superblock_t and era_check 2014-01-09 22:40:34 +00:00
Joe Thornber 8987d8f92c update ignore file 2013-10-15 20:47:11 +01:00
Joe Thornber e3d87c5386 update ignore file 2013-10-11 10:20:29 +01:00
Joe Thornber dc97e0ea4e Update ignore file 2013-09-19 13:52:29 +01:00
Joe Thornber d3ce6b811b Start stubbing out cache_dump 2013-08-19 12:40:03 +01:00
Joe Thornber a933749cbf update ignore file 2013-08-16 16:44:44 +01:00
Joe Thornber 0dfea497f0 update ignore file 2013-06-27 10:18:09 +01:00
Joe Thornber 64d14a75e1 update ignore file 2013-05-23 13:56:46 +01:00
Joe Thornber bc25afd686 update ignore file 2013-03-25 11:54:52 +00:00
Joe Thornber 1e141f83bb Convert array_block_t to gmock 2013-03-22 14:13:58 +00:00
Joe Thornber 52f1aa8a8a cache_check work 2013-03-21 15:45:45 +00:00
Joe Thornber ab7124e441 block_t and cache_t fully operational again. 2013-01-07 16:39:02 +00:00
Joe Thornber 16539b59ff update ignore file 2011-10-10 10:30:27 +01:00
Joe Thornber b4dbf8d74c g++ 4.4 fixups 2011-09-01 10:42:57 +01:00
Joe Thornber 987a8360c9 [thin_repair] repair now checks the data reference counts. 2011-08-24 10:45:39 +01:00
Joe Thornber 511456f903 Some work on thin_repair. 2011-08-23 11:55:37 +01:00
Joe Thornber a683979585 space map disk 2011-07-22 16:09:56 +01:00
Joe Thornber 6b8b16c70a blank project 2011-06-16 08:16:10 +01:00