Home   |   Projects   |   Publication   |   Software Products   |   Contact and Social Network

Software Products

In this page, you can review software products that are built as results of my research. All of these products are backed by the approaches and algorithms proposed in my research papers.


MSU-DB: A Distributed NoSQL Database (Java)

MSU-DB is a fast, highly scalable, highly available, causally consistent distributed data store. MSU-DB is written in Java. It uses Berkeley-DB for storage and retrieval of data in each node. For communication it uses Netty to utilize java non-blocking IO technology to maximize the throughput. MSU-DB guarantees causal consistency between replicas. MSU-DB relays on Hybrid Logical Clocks to provide  fast wait-free writes. 

Learn more about MSU-DB


ProSyn: Network Protocol Synthesizer using GP (C++)

ProSyn is a tool to synthesize individualized network protocols that take network characteristics into account to optimize different objectives such as throughput or energy-efficiency. ProSys uses GP to find the best protocol.

Learn more about ProSyn


USclier: A Slicer for UPPAAL Models (Python)

UPPAAL model checker is one of the most important model checkers for timed systems which is widely used in both academia and industry. Suppose you have a big UPPAAL timed model and you want to use UPPAAL to check if your model satisfies certain properties. A wise approach to avoid large model checking time or more severe problems like state space explosion, is slicing the part of the model which is related to our desired properties, and only focus on that part. USlicer do that for you automatically! so you can give your timed model, and your desired properties to USlicer. USlicer gives the smaller model with respect to the properties that you are interested about. Then you can model the resulted program using UPPAAL. USlicer is written in Python.

Learn more about USlicer


DNSPT: A Slicer for UPPAAL Models (C++)

A tool for tracking DNS performance.

Learn more about DNSPT