Skip to content
/ rDSN Public
forked from microsoft/rDSN

Robust Distributed System Nucleus (rDSN) is an open framework for quickly building and managing high performance and robust distributed systems.

License

Notifications You must be signed in to change notification settings

gongwuji/rDSN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rDSN Robust Distributed System Nucleus (rDSN) is an open framework for quickly building and managing high performance and robust distributed systems. An early version of rDSN has been used in Bing for building a distributed data service, and the system has been online and running well. Based on the feedbacks, rDSN is improved and now made public with the MIT open source license. The idea is to advocate a coherent and principled design that distributed applications, tools, and frameworks can be developed independently and integrated (almost) transparently to benefit each other. Following are some highlights for different audience of this framework.

I am a developer | researcher | student =>


Developers: a framework for quickly building and managing high performance and robust distributed systems. (see Tutorial)
  • Why should I use rDSN? =>
  • Have concerns? =>
Built-in three-layer support from a growing set of tools and frameworks
  • Layer 1: quick development with single node tools and policies support: simulation, fault injection, tracing, profiling, replay, throttling, ...

rDSN-layer1

  • Layer 2: to a partitioned? and replicated? service with simple configuration and minor further development cost

rDSN-layer2

  • Layer 3: compose workflow across multiple services in a declarative way to handle end-to-end incoming workloads (coming later)

rDSN-layer3

Quick development and flexible deployment (with concerns addressed)
  • multiple-platform support (Linux, Windows, Mac)
  • quick prototyping via code generation with Thrift and Protocol Buffer, extensible for others
  • enhanced RPC library with multi-port, multi-channel, multi-language-client support
  • adapt to your own environment, or rDSN does not perform good enough? rDSN is highly extensible that you can always plugin your own low level constructs (network, logging, task queue, lock, performanc counter etc.)
  • flexible deployment - single executable, multiple roles, multiple instances
  • more concerns, please do not hesitate to let us know

Researchers and tool-oriented developers: a tool platform which eases tool development and enables transparent integration with upper applications.
  • reliably expose dependencies and non-determinisms in upper systems to the underlying tools at a semantic-rich level (i.e., task)
  • completeness made easy for tools
  • reduced state space for tools to handle
  • easier to map tool results to application logic
  • dedicated Tool API for tool and runtime policy development
  • transparent integration of the tools with the upper applications to make real impact

Students: a distributed system learning platform where you can easily simplify, understand and manipulate a system. (see Tutorial)
  • configurable system complexity to learn step by step
  • single thread to multiple threads
  • synchronous and reliable messages to asynchronous and unreliable ones
  • easy test, debug, and monitoring for system understanding, as with the developers
  • easy further tool development, as with the researchers

Quick Links

About

Robust Distributed System Nucleus (rDSN) is an open framework for quickly building and managing high performance and robust distributed systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.6%
  • PHP 4.1%
  • CMake 1.0%
  • Thrift 0.6%
  • C 0.5%
  • Objective-C 0.2%