Skip to content

ningpengtao-coder/terark-db

 
 

Repository files navigation

1.TerarkDB

TerarkDB is an open source NoSQL data store based on terark storage engine.

TerarkDB is:

  • Read optimized, faster than ever.
  • Data is highly compressed and decompressed is not required before read.
  • Use FSA and succinct technologies, totally different from B+ and LSM(Which is widely used in other data stores).
  • Native support for regex expression query.
  • Benchmark

2.Features

  • High Compression Ratio
    • Higher than snappy(2~5 times) and other database products, higher than gzip, sometimes higher than bzip
  • Search Directly on Compressed Data without Decompression
    • Compressed data as index, index as compressed data
  • Fast Access
    • Optimized for SSD and in-memory workloads
  • Flexible Indexing
    • Multiple indexes on one table
    • Unique/non-unique index
    • Composite index(one index on multiple columns)
    • Ordered index (support range query)
  • Native regular expression query
  • Embeddable & Standalone Database
  • Persistent
  • Schema Based, with Rich Data Types
  • Column Group
  • Supported Platforms: Linux, Windows, Mac
  • Transparent foundation for developers to build customized products

3.Installation

3.1.Linux & MacOS

sudo wget https://raw.githubusercontent.com/Terark/terark-db/master/online_install.py && (python online_install.py; rm online_install.py)

3.2.Windows

windows installation guide

4.Compile TerarkDB

4.1.Dependencies

  • libboost_system.so(1.60.0) (boost_1_60_0)
  • libboost_filesystem(1.60.0)(Could be found in boost_1_60_0)
  • libwiredtiger.so(v2.8.0)
  • libtbb.so(tbb44_20160128)

4.2.Compiler Support

  • Linux : g++-4.7, g++-4.8, g++-4.9, g++-5.3, g++-5.4, g++-6.1, g++-6.2
  • Mac OS : g++-4.8, g++-4.9, g++-5.3, g++-6.0, g++-6.1, clang++-7.3
  • Windows : vs2015

4.3.dfadb alternative

  1. TerarkDB is open source but our core data structures and algorithms(dfadb) are not yet.
  2. dfadb is supported by a library named terark-fsa-* in our released packages.
  3. Developers who want to build their own TerarkDB, should place the terark-fsa-* library into their library search path(e.g. /usr/local/lib).
  4. User compiled TerarkDB can only uses limited APIs, and need to set "ReadonlySegmentClass" : "MockReadonlySegment" in dbmeta.json(TerarkDB's schema file).

5. Notes

  • UNIX fork() should not be called in the applications using TerarkDB, this would cause undefined behaviors.

6.License

TerarkDB follows Free Software Foundation's GNU AGPL v3.0

For commercial purposes, please contact us.

About

TerarkDB, an open source data store based on terark engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 98.0%
  • Makefile 1.2%
  • Other 0.8%