GithubHelp home page GithubHelp logo

shenxingwuying / rdsn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xiaomi/rdsn

0.0 1.0 0.0 82.61 MB

License: MIT License

CMake 1.18% Batchfile 0.01% Shell 0.63% Python 0.44% C 0.44% C++ 96.18% Thrift 1.13%

rdsn's Introduction

Build Status

All pull requests please now go to https://github.com/imzhenyu/rdsn for automatic integration with latest version. We will periodically update this repo. Thank you.

Top Links

  • [Case] RocksDB made replicated using rDSN!
  • [Tutorial] Build a counter service with built-in tools (e.g., codegen, auto-test, fault injection, bug replay, tracing)
  • [Tutorial] Build a scalable and reliable counter service with built-in replication support
  • [Tutorial] Build a perfect failure detector with progressively added system complexity
  • [Tutorial] Plugin my own network implementation for higher performance
  • Installation

Robust Distributed System Nucleus (rDSN) is a framework for quickly building robust distributed systems. It has a microkernel for pluggable components, including applications, distributed frameworks, devops tools, and local runtime/resource providers, enabling their independent development and seamless integration. The project was originally developed for Microsoft Bing, and now has been adopted in production both inside and outside Microsoft.

  • an enhanced event-driven RPC library such as libevent, Thrift, and GRPC
  • a production Paxos framework to quickly turn a local component (e.g., rocksdb) into a online service with replication, partition, failure recovery, and reconfiguration supports
  • a scale-out and fail-over framework for stateless services such as Memcached
  • more as you can imagine.
  • reduced system complexity via microkernel architecture: applications, frameworks (e.g., replication, scale-out, fail-over), local runtime libraries (e.g., network libraries, locks), and tools are all pluggable modules into a microkernel to enable independent development and seamless integration (therefore modules are reusable and transparently benefit each other) rDSN Architecture
  • auto-handled distributed system challenges: built-in frameworks to achieve scalability, reliability, availability, and consistency etc. for the applications rDSN service model
  • transparent tooling support: dedicated tool API for tool development; built-in plugged tools for understanding, testing, debugging, and monitoring the upper applications and frameworks rDSN Architecture
  • late resource binding with global deploy-time view: tailor the module instances and their connections on demand with controllable system complexity and resource mapping (e.g., run all nodes in one simulator for testing, allocate CPU resources appropriately for avoiding resource contention, debug with progressively added system complexity) rDSN Configuration
Distributed frameworks
  • a production Paxos framework to quickly turn a local component (e.g., rocksdb) into an online service with replication, partition, failure recovery, and reconfiguration supports
  • a scale-out and fail-over framework for stateless services such as Memcached
Local runtime libraries
  • network libraries on Linux/Windows supporting rDSN/Thrift/HTTP messages at the same time
  • asynchronous disk IO on Linux/Windows
  • locks, rwlocks, semaphores
  • task queues
  • timer services
  • performance counters
  • loggers (high-perf, screen)
Devops tools
  • nativerun and fastrun enables native deployment on Windows and Linux
  • simulator debugs multiple nodes in one single process without worry about timeout
  • explorer extracts task-level dependencies automatically
  • tracer dumps logs for how requests are processed across tasks/nodes
  • profiler shows detailed task-level performance data (e.g., queue-time, exec-time)
  • fault-injector mimics data center failures to expose bugs early
  • global-checker enables cross-node assertion
  • replayer reproduces the bugs for easier root cause analysis
  • build-in web studio to visualize task-level performance and dependency information
Other distributed providers and libraries
  • remote file copy
  • perfect failure detector
  • multi-master perfect failure detector

License and Support

rDSN is provided on Windows and Linux, with the MIT open source license. You can use the "issues" tab in GitHub to report bugs.

rdsn's People

Contributors

0xfdi avatar 0xflotus avatar acelyc111 avatar andylin-hao avatar capfei avatar chenqshmily avatar empiredan avatar foreverneverer avatar gehafearless avatar giantking avatar glglwty avatar goksyli avatar hycdong avatar imzhenyu avatar levy5307 avatar lishenglong avatar loveheat avatar mcfatealan avatar mentoswang avatar neverchanje avatar qinzuoyan avatar sdxshen avatar shengofsun avatar smityz avatar vagetablechicken avatar xiaotz avatar ykwd avatar zhangyifan27 avatar zhongchaoqiang avatar zjc95 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.