USING NODE JS:

Requirements:

Setup:

  1. Install node js. See: http://howtonode.org/how-to-install-nodejs
  2. Install levelup and leveldown node modules
  3. Set NODE_PATH to the location of the module installation.
  4. If you get runtime error about missing specific version of leveldown, install that version of leveldown.
    1. E.g. npm install leveldown@0.10.0 -g

Description:

Most ready-to-use levelDB visualization tools did not work with infinispan's levelDB cache due to the way the keys are serialized. This is because the serialized key includes characters that could not be represented in utf8.

Three example utility scripts:

Since the keys have unrecognizable characters in them, the key-suffix input to the view and delete utility scripts should only include the suffix that does not include any unrecognizable characters. This view and delete scripts would try to match keys with the specified suffix to display or delete ALL of them respectively.

For example, if the print-ldb.js displays a key as "�87a0a8c317f1e7/", use "87a0a8c317f1e7/" as key-suffix to view-key.js or del-key.js.

levelup JS API reference: https://github.com/rvagg/node-levelup

Rename file suffx .ldb to .sst

Modifying the database using the levelup interface would save the database with a .ldb extension. As infinispan would expect .sst files, rename the file suffix from .ldb to .sst after modifying it with levelup.

 

NOTE: Externally modifying the database should only be considered as a last resort to restore corrupt database. Create backup of your database before modifying it. 

 

USING PYTHON:

There are several python modules available to inspect and repair corrupted the leveldb files. Here are a few:

py-leveldb - https://code.google.com/p/py-leveldb/

plyvel https://plyvel.readthedocs.org/en/latest/user.html