To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Install
Authors
Maintainers
Sources
sha256=563a2cc10c79055b6d57111592bc6f1445397cf5ef57e74f70f5e1ca6ec23807
sha512=4ab055332f964dff2c00d04a3f867b7fc86a9a6084f6d58bce59c04a6ed6f23aefe8965eb1c9c1ff4372393235b8920135409fd2f94a253493d8533a39d7d6bd
CHANGES.md.html
0.11.0 (2020-06-05)
Update the build to use
dune
(@emillon, #112)Update to Mirage 4.0 interfaces (@djs55, #112)
LICENSE.md: add title and copyright year range (@waldyrious, #109)
0.10.5 (2017-12-14):
CLI: use the disk locking feature in mirage-block-unix >= 0.9.0
0.10.4 (2017-12-07):
fix build on OCaml 4.06 (and -safe-string)
update to new sha.1.10 signature
document the prometheus support
0.10.3 (2017-08-02):
avoid linking ppx tools into the library
0.10.2 (2017-06-18):
remove false dependency on cmdliner
0.10.1 (2017-06-17):
update to new io-page/ io-page-unix
fix prometheus accounting error
0.10.0 (2017-05-13)
fix a major performance problem with
compact
split into 2 packages: qcow and qcow-tool
add
qcow-tool dehydrate
andqcow-tool rehydrate
for extracting
metadata for debug/supportadd prometheus metrics for I/O and GC operations
restore the
qcow-tool compact --progress
progress baradd
qcow-tool compact --progress-fd
for json-formatted progressbuild via jbuilder
0.9.5 (2017-03-12)
CLI:
check
andsha
will nolonger resize the file as a side-effect
(#84)Allow the number of
cluster_bits
to be set increate
0.9.4 (2017-03-07)
Strictly enforce the cluster move state machine
Don't start moving new blocks while existing moves are in progress
(fix bug where the same destination block could be reused)Hold a lock to exclude
flush
while updating references to ensure
reference updates hit the disk before the move is considered completeSimplify allocator by always adding blocks to the Roots set before
returning. The caller must transfer them somewhere else.Simplify the cluster moving API by combining
get_moves
withstart_moves
, so it's not possible to block and affect the moves
which can legally be startedWhen detecting a duplicate reference or hitting an I/O error, log
analysis of the internal stateCheck for move cancellation before copying a block to avoid accidentally
copying a block which is now outside the fileAvoid adding a cluster to the Junk set twice during a reference update
Add lots of assertions
0.9.3 (2017-03-02)
Hold a read lock on the L1 during read/write
Minimise locking while updating references
When moving an L2 cluster, update the cluster map
0.9.2 (2017-02-26)
Don't hold the global lock while updating references
Log an error if a client I/O takes more than 30s
Improve the performance of discard by writing each L2 cluster to disk
only onceTrack clusters which are being erased and copied into, to prevent the
file being shrunk, orphaning them (which typically manifests as a later
double-allocation)
0.9.1 (2017-02-25)
Add configuration
runtime_assert
to check GC invariants at runtimeUse tail-recursive calls in the block recycler (which deals with large
block lists)Wait for the compaction work list to stabilise before processing it
(otherwise we move blocks which are then immediately discarded)Track the difference between blocks on the end of the file being full
of zeroes due to ftruncate versus being full of junk due to discardOn open, truncate the file to erase trailing junk
Don't try to use free space between header structures for user data
since we assume all blocks after the start of free space are movable
and header blocks aren't (in this implementation)Make cluster locks recursive, hold relevant metadata read locks while
reading or writing data clusters to ensure they aren't moved while
we're using them.Add a debug testing mode and use it in a test case to verify that
compact mid-write works as expected.
0.9.0 (2017-02-21)
Add online coalescing mode and background cluster recycling thread
Rename internal modules and types
Ensure the interval tree remains balanced to improve performance
0.8.1 (2017-02-13)
fix error in META file
0.8.0 (2017-02-13)
update to Mirage 3 APIs
now requires OCaml 4.03+
ensure the interval tree is kept balanced
0.7.2 (2016-12-21)
if
discard
is not enabled, faildiscard
callsif
discard
is enabled, enable lazy-refcounts and zero refcount clusters
to avoid breaking refcounts overdiscard
,compact
0.7.1 (2016-12-15)
speed up
check
andcompact
up to 50xqcow-tool compact
work around files which aren't a whole number of
sectors
0.7.0 (2016-12-10)
now functorised over
TIME
allow background compact to be cancelled
cancel background compact to allow regular I/O to go through
don't trigger the background compact until 1s after the last
discard
on
connect
, sanity-check the image
0.6.0 (2016-12-04)
rename ocamlfind package from
qcow-format
toqcow
for uniformityadd support for runtime configuration arguments to
connect
andcreate
add support for
discard
(aka TRIM or UNMAP) and online compaction
(through a stop-the-world GC)switch the build from
oasis
totopkg
(thanks to @jgimenez)
0.5.0 (2016-11-26)
resize
now takes a new size in bytes (rather than sectors) and uses a
labelled argumentqcow-tool info
now takes a--filter <expression>
for exampleqcow-tool info ... --filter .size
to view the virtual size
0.4.2 (2016-09-21)
Don't break the build if
Block.connect
has optional arguments
0.4.1 (2016-08-17)
Remove one necessary source of
flush
callsCLI: add
mapped
command to list the mapped regions of a file
0.4 (2016-08-03)
For buffered block devices, call
flush
to guarantee metadata correctnessIn lazy_refcounts mode (the default), do not compute any refcounts
CLI: the
repair
command should recompute refcounts
0.3 (2016-05-12)
Depend on ppx, require OCaml 4.02+
0.2 (2016-01-15)
Use qcow version 3 by default, setting
lazy_refcount=on
Unit tests now verify that
qemu-img check
is happy and thatqemu-nbd
sees the same data we wrote
0.1 (2015-11-09)
initial
V1_LWT.BLOCK
supportcaches metadata for performance
CLI tool for manipulating images
supports the
seek_mapped
seek_unmapped
interface for iterating over
sparse regions