GithubHelp home page GithubHelp logo

karbon0x / atlasdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uschi2000/atlasdb

1.0 1.0 0.0 12.3 MB

Transactional Distributed Database layer

Home Page: https://github.com/palantir/atlasdb/wiki

License: Other

Java 98.46% Protocol Buffer 0.12% Ruby 1.37% Shell 0.06%

atlasdb's Introduction

AtlasDB

AtlasDB is a transactional layer on top of a key value store. When designing a data store to be scalable, transactions are usually the first feature to be cut. However they are one of the most useful features for developers. AtlasDB allows any key value store that supports durable writes to have transactions. Once you have transactions, indexes are also easy to add because updates to rows can just update the indexes and include those writes in a single transaction. Provided are KeyValueService implementations of LevelDB and Cassandra, but any data store worth its salt should make a fine storage layer.

Consistency

AtlasDB uses classic MVCC and supports Snapshot Isolation and Serializable Snapshot Isolation. SI must keep track of the write set in memory to detect write/write conflicts. SSI must also keep the read set in memory to detect read/write conflicts. This means that write transactions are expected to be reasonably short lived. Read-only transactions are allowed to run for longer and will never conflict with other transactions.

Schemas

AtlasDB can store keys and values using atlasdb-api directly, but using Schemas can get you type safely, more readable code and remove a lot of boilerplate serialization code. AtlasDB contains a Java DSL to define schemas and a proto representation that gets stored in the K/V store that can be used by other tools to inspect the values. Schema tables can be rendered to Java classes to easily access tables and keep indexes up to date given the schema.

Wiki

Make sure to check out the wiki for more details: https://github.com/palantir/atlasdb/wiki

atlasdb's People

Contributors

andy2palantir avatar carrino avatar clockfort avatar hubertta avatar jeffrey-c avatar markelliot avatar punya avatar rjullman avatar schlosna avatar twilson-palantir avatar

Stargazers

 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.