Equi4 Softwaremetakit

top pages






Tclers' Wiki



Contact info

datafile statistics and verification

Metakit datafiles are failsafe, in that failures at any point, even power failures, will not lead to damaged datafiles. This is due to a technique called "stable storage".

Still, there may be cases when datafiles do get damaged:

  • hard disk failures which actually damage block (or write incomplete ones)
  • stray writes in the app damaging buffered changes which MK writes to file
  • opening files for writing more than once
  • file server caching problems
  • bugs in the Metakit code
  • bugs in lower system levels (compiler, libraries, o/s)

The Mkstats utility helps verify datafiles, in that it checks the most likely form of damage: allocated/free space use in the file which are incorrect and have overlap. Note that there is no free space list on file: free space is defined implicitly as the space which is not in use. This means free space need never be reclaimed - its reuse is automatic. The one error is if byte ranges used on file show any overlap.

As a side benefit, "mkstats" also displays some basic file usage statistics.

Mkstats currently works on Windows, Mac OS X, and Linux (x86). It's packaged as a Starkit and requires Tclkit to run.


  • download mkstats.kit
  • download Tclkit for Windows (cmdline), and rename it to "tclkitsh.exe"
  • run mkstats by typing:
    tclkitsh mkstats.kit <suspectdatafile>
  • as a side effect, a small "mku.exe" utility needed by mkstats will be created

Linux and mac os x

  • download mkstats.kit
  • download Tclkit for Linux or Mac OS X, unpack/rename to "tclkit", and type:
    chmod +x tclkit
  • run mkstats by typing:
    ./tclkit mkstats.kit <suspectdatafile>
  • as a side effect, a small "mku.linux" (resp. "mku.macosx") utility needed by mkstats will be created

Mkstats can deal with datafiles created on any platform.

Note: please remove the mku.* utility created by mkstats when updating, to make sure the latest versions is used after the update.

latest news

  • Version ID: 2004/05/16 09:11:43 22552-34246 - download.
  • mku.linux: new build, to get rid of glibc 2.3 dep
  • mkstats.tcl: adjusted to also accept new MKC-based output of mku.linux

See the feedback forum in case of trouble.

metakit index

Metakit home page