All Projects → ut-osa → boki

ut-osa / boki

Licence: Apache-2.0 license
Boki: Stateful Serverless Computing with Shared Logs [SOSP '21]

Programming Languages

C++
36643 projects - #6 most used programming language
go
31211 projects - #10 most used programming language
Makefile
30231 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to boki

Private Tor Network
Run an isolated instance of a tor network in Docker containers
Stars: ✭ 125 (+220.51%)
Mutual labels:  research, consensus
awesome-aws-research
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources for Academic Researchers new to AWS
Stars: ✭ 41 (+5.13%)
Mutual labels:  research
api-evangelist
The API Evangelist website
Stars: ✭ 73 (+87.18%)
Mutual labels:  research
prunnable-layers-pytorch
Prunable nn layers for pytorch.
Stars: ✭ 47 (+20.51%)
Mutual labels:  research
gospal
Go static program analyser
Stars: ✭ 56 (+43.59%)
Mutual labels:  research
seviz
SEViz (Symbolic Execution VisualIZer) is a tool for visualizing symbolic execution-based test generation
Stars: ✭ 20 (-48.72%)
Mutual labels:  research
toychain
A minimalistic blockchain consensus implemented and verified in Coq
Stars: ✭ 103 (+164.1%)
Mutual labels:  consensus
sbpy
A Python package for small bodies research
Stars: ✭ 60 (+53.85%)
Mutual labels:  research
robotarium-rendezvous-RSSDOA
This repository contains the Matlab source codes (to use in Robotarium platform) of various rendezvous controllers for consensus control in a multi-agent / multi-robot system.
Stars: ✭ 35 (-10.26%)
Mutual labels:  consensus
contech
The Contech analysis framework provides the means for generating and analyzing task graphs that enable computer architects and programmers to gain a deeper understanding of parallel programs.
Stars: ✭ 43 (+10.26%)
Mutual labels:  research
ethsnarks
A toolkit for viable zk-SNARKS on Ethereum, Web, Mobile and Desktop
Stars: ✭ 224 (+474.36%)
Mutual labels:  research
go-cita
A Go implementation of CITA. https://docs.nervos.org/cita
Stars: ✭ 25 (-35.9%)
Mutual labels:  consensus
tips-for-scientific-research
A collection of tips for scientific research
Stars: ✭ 21 (-46.15%)
Mutual labels:  research
senpai
Molecular dynamics simulation software
Stars: ✭ 124 (+217.95%)
Mutual labels:  research
gubbins
Rapid phylogenetic analysis of large samples of recombinant bacterial whole genome sequences using Gubbins
Stars: ✭ 103 (+164.1%)
Mutual labels:  research
RTX-Mesh-Shaders
Different mesh shading techniques using the NVIDIA RTX (Turing) technology.
Stars: ✭ 84 (+115.38%)
Mutual labels:  research
snp-sites
Finds SNP sites from a multi-FASTA alignment file
Stars: ✭ 182 (+366.67%)
Mutual labels:  research
DeclareDesign
DeclareDesign: Declare and Diagnose Research Designs
Stars: ✭ 92 (+135.9%)
Mutual labels:  research
EstimNetDirected
Equilibrium Expectation for ERGM parameter estimation for large directed networks
Stars: ✭ 18 (-53.85%)
Mutual labels:  research
detailed-plutus-lecture-notes
Initially started as my own personal lecture notes. Slowly, I'm converting this repo into an extremely detailed set of notes to help future pioneers, Cardano devs and anyone with an academic interest in DLTs and Blockchain Consensus Algorithms.
Stars: ✭ 21 (-46.15%)
Mutual labels:  consensus

Boki

Boki is a research FaaS runtime for stateful serverless computing with shared logs. Boki exports the shared log API to serverless functions, allowing them to manage states with strong consistency, durability, and fault tolerance. Boki uses Nightcore as the runtime for serverless functions.

Boki is the pronunciation of "簿記", meaning bookkeeping in Japanese.

Building Boki

Under Ubuntu 20.04, building Boki needs following dependencies installed:

sudo apt install g++ make cmake pkg-config autoconf automake libtool curl unzip

Once installed, build Boki with:

./build_deps.sh
make -j $(nproc)

Kernel requirements

Boki uses io_uring for asynchronous I/Os. io_uring is a very new feature in the Linux kernel (introduced in 5.1), and evolves rapidly with newer Linux kernel version.

Boki require Linux kernel 5.10 or later to run.

Boki support libraries

As presented in our SOSP paper, we build BokiFlow, BokiStore and BokiQueue for serverless use cases of transactional workflows, durable object storage, and message queues.

slib directory in this repository contains implementations of BokiStore and BokiQueue. For BokiFlow, check out workloads/workflow directory in ut-osa/boki-benchmarks repository.

Running Boki's evaluation workloads

A separate repository ut-osa/boki-benchmarks includes scripts and detailed instructions on running evaluation workloads presented in our SOSP paper.

Limitations of the current prototype

The shared log API is only exported to functions written in Go.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].