Giter Site home page Giter Site logo

taas's Introduction

TaaS

TaaS is a highly available server-side component of a distributed transaction solution compatible with Seata (after version 0.5), developed using Golang, by InfiniVision contributed to the Seata open source community.

Feature

  • High availability, fault-tolerance
  • Auto-Rebalance
  • Linear scalability
  • Strong consistent metadata storage

Architecture

Seata-TC

The transaction coordinator process, each process contains multiple Fragment

Proxy

A stateless node that provides the correct route to the outside and sends the request to the corresponding Fragment Leader node.

Elasticell

Elasticell is a distributed Key Value store with strong consistency and reliability to store the metadata.

Design

High Performance

The performance of Taas is directly proportional to the number of machines. To support this feature, the minimum unit for processing global transactions in Taas is a Fragment, which sets the number of concurrent global active transactions supported by each Fragment at startup. Taas samples each Fragment periodically according to a configurable interval, and Taas will generate a new Fragment to handle more concurrency as soon as existing system exceeds the saturation ratio, which is also configurable.

High availability

Each Fragment has multiple replication sets and a single Leader, the requests are processed by the Leader. When the Leader fails, the system will generate a new Leader to process the requests. During the election of the new Leader, the Fragment does not provide services externally---the usual interval is a few seconds.

Strong consistent

Taas itself does not store any metadata of transaction, actually they are stored withinElasticell. Elasticell is a distributed KV storage engine compatible with Redis protocol, it adopts Raft mechanism to guarantee the strong consistency.

Auto-Rebalance

As the system runs, there will be many Fragments and their copies in the system, which will result in uneven distribution of Fragment on each machine, especially when the old machine goes offline or the new machine goes online. When Taas starts, it will select 3 nodes as the scheduler, which is responsible for scheduling these Fragments to ensure that the number of Fragments and the number of Leaders on each machine are approximately equal. The scheduler will also maintain the number of replications of each Fragment at the specified amount.

Quickstart

Git clone https//github.com/seata/taas.git
Docker-compse up -d

Seata Service Address

The service listens by default on port 8091, modifying the server address experience corresponding to Seata.

Seata UI

Visit WEB UI http://127.0.0.1:8084/ui/index.html

About InfiniVision

InfiniVision is a technology-driven enterprise service provider that leverages AI, cloud computing, blockchain, big data, and IoT edge computing technologies to help traditional enterprised benefit from cutting edge technologies. InfiniVision actively embraces open source culture, well-known face recognition solution InsightFace, as well as distributed storage engine Elasticell are all open source products of InfiniVision.

taas's People

Contributors

zhangxu19830126 avatar tinycedar avatar

Watchers

James Cloos avatar redlove1314 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.