- Notifications
You must be signed in to change notification settings - Fork2
Framework for distributed system's verification, with fault injection.
License
ligurio/molly
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
is a framework for distributed systems verification, with fault injection.
- Lua interpreter: LuaJIT or LuaJIT-based is recommended.
- luafun - Lua functional library, built-in intoTarantool.
- lua-cjson - Lua library for fast JSONencoding and decoding, built-in into Tarantool.
- (optional) Jepsen-compatible consistency checker. For exampleelle-cli, based on Jepsen, Elle andKnossos.
- Download and setup Lua interpreter,LuaJITor LuaJIT-based is recommended (for exampleTarantool).
- Install library using LuaRocks:
$ luarocks install --local molly
NOTE: Installation of modulesluafun
andlua-cjson
is not required whenTarantool is used, both modules are built-in there. Install them manually incase of using LuaJIT:
$ make deps-runtime
See documentation inhttps://ligurio.github.io/molly/.
See also an examples intest/examples/ for SQLite databaseengine:
sqlite-rw-register.lua
contains a simple test that concurrently runsget
andset
operations on SQLite DBsqlite-list-append.lua
contains a simple test that concurrently runsread
andappend
operations on SQLite DB
For running examples you need installed an SQLite development package andLuaRocks.
$ sudo apt install -y sqlite3 libsqlite3-dev$ make deps$ make test-example
Example produces two files with history:history.txt
andhistory.json
. Withelle-cli history can be checkedfor consistency:
$ VER=0.1.8$ curl -O -L https://github.com/ligurio/elle-cli/releases/download/${VER}/elle-cli-bin-${VER}.zip$ unzip elle-cli-bin-${VER}.zip$ java -jar ./target/elle-cli-${VER}-standalone.jar -m elle-rw-register history.jsonhistory.jsontrue
See tests that uses Molly library inhttps://github.com/ligurio/molly-tests.
For developingmolly
you need to install: either LuaJIT or LuaJIT-basedandLuaRocks.
$ make deps$export PATH=$PATH:$(luarocks path --lr-bin)$ make check$ maketest
You are ready to make patches!
Copyright © 2021-2024Sergey Bronnikov
Distributed under the ISC License.
About
Framework for distributed system's verification, with fault injection.