- 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.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.