GithubHelp home page GithubHelp logo

necsmike / sophia Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pmwkaa/sophia

0.0 1.0 0.0 4.52 MB

Modern transactional key-value/row storage library.

Home Page: http://sophia.systems

License: Other

C 97.17% Makefile 0.89% Shell 0.12% C++ 1.83%

sophia's Introduction



Sophia is advanced transactional MVCC key-value/row storage library.

How does it differ from other storages?

Sophia is RAM-Disk hybrid storage. It is designed to provide best possible on-disk performance without degradation in time. It has guaranteed O(1) worst case complexity for read, write and range scan operations.

It adopts to expected write rate, total capacity and cache size. Memory requirements for common HDD and Flash drives can be seen Here.

What is it good for?

For server environment, which requires lowest latency write and read, predictable behaviour, optimized storage schema and transaction guarantees. It can efficiently work with large volumes of ordered data, such as a time-series, analytics, events, logs, counters, metrics, full-text search, common key-value, etc.

Features

  • Full ACID compliancy
  • MVCC engine
  • Optimistic, non-blocking concurrency with N-writers and M-readers
  • Pure Append-Only
  • Unique data storage architecture
  • Fast: O(1) worst for read, write and range scan operations
  • Multi-threaded compaction
  • Multi-databases support (sharing a single write-ahead log)
  • Multi-Statement and Single-Statement Transactions (cross-database)
  • Serialized Snapshot Isolation (SSI)
  • Optimized storage schema (numeric types has zero-cost storage)
  • Can be used to build Secondary Indexes
  • Upsert (fast write-only 'update or insert' operation)
  • Consistent Cursors
  • Prefix search
  • Automatic garbage-collection
  • Automatic key-expire
  • Hot Backup
  • Compression (no fixed-size blocks, no-holes, supported: lz4, zstd)
  • Direct IO support
  • Use mmap or pread access methods
  • Simple and easy to use (minimalistic API, FFI-friendly, amalgamated)
  • Implemented as small C-written library with zero dependencies
  • Carefully tested
  • Open Source Software, BSD

Support

Sophia Documentation and Bindings for the most common languages are available on the website.

Please use Official Sophia Google Group or StackOverflow to ask any general questions.
More information is available Here.

sophia's People

Contributors

pmwkaa avatar mneumann avatar reqshark avatar leitao avatar dressupgeekout avatar 19h avatar safari77 avatar rzinnatov avatar

Watchers

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