IndiLog is a scalable FaaS runtime for stateful serverless computing with shared logs. It uses distributed indexing to efficiently locate records on the shared logs.
IndiLog extends Boki. Boki exports the shared log API to serverless functions, allowing them to manage states with strong consistency, durability, and fault tolerance. Indilog and Boki use Nightcore as the runtime for serverless functions.
IndiLog's name originates from one of its main design characteristics: distributed indexing
Under Ubuntu 20.04, building IndiLog needs following dependencies installed:
sudo apt install g++ make cmake pkg-config autoconf automake libtool curl unzip
Once installed, build IndiLog with:
./build_deps.sh
make -j $(nproc)
IndiLog uses like Boki io_uring for asynchronous I/Os.
IndiLog requires Linux kernel 5.10 or later to run.
IndiLog supports Boki's libraries for transactional workflows and durable object storage.
A separate repository IndiLog-Benchmarks includes scripts and detailed instructions on running evaluation workloads for IndiLog and Boki.
The shared log API is only exported to functions written in Go.