Some C++ DB Engine

来源:互联网 发布:淘宝回评价语大全 编辑:程序博客网 时间:2024/05/17 03:35

Bellows are some smart Enginesdeveloped in C/C++:

 

1)     Embedded Firebird

http://www.firebirdsql.org/file/documentation/papers_presentations/html/FBFactsheet.html

http://www.ibpp.org/reference

 

 

I have experienced in thisdatabase in former project. We just need import a dll engine into the project.

 

2)     Redis

 

http://redis.io/documentation

·        Redisis a server: all commands involve network or IPC roundtrips. It is meaninglessto compare it to embedded data stores such as SQLite, Berkeley DB, Tokyo/KyotoCabinet, etc ... because the cost of most operations is precisely dominated bynetwork/protocol management.

·        Rediscommands return an acknowledgment for all usual commands. Some other datastores do not (for instance MongoDB does not implicitly acknowledge writeoperations). Comparing Redis to stores involving one-way queries is only mildlyuseful.

·        Naivelyiterating on synchronous Redis commands does not benchmark Redis itself, butrather measure your network (or IPC) latency. To really test Redis, you needmultiple connections (like redis-benchmark) and/or to use pipelining toaggregate several commands and/or multiple threads or processes.

·        Redisis an in-memory data store with some optional persistency options. If you planto compare it to transactional servers (MySQL, PostgreSQL, etc ...), then youshould consider activating AOF and decide of a suitable fsync policy.

·        Redisis a single-threaded server. It is not designed to benefit from multiple CPUcores. People are supposed to launch several Redis instances to scale out onseveral cores if needed. It is not really fair to compare one single Redisinstance to a multi-threaded data store.

 

3)     Drizzle

 

http://docs.drizzle.org/

 

Charter

·        Adatabase optimized for Cloud infrastructure and Web applications

·        Designfor massive concurrency on modern multi-CPU architectures

·        Optimizememory use for increased performance and parallelism

·        Opensource, open community, open design

Scope

·        Re-designedmodular architecture providing plugins with defined APIs

·        Simpledesign for ease of use and administration

·        Reliable,ACID transactional

 

4)     Tokyo Cabinet

 

http://fallabs.com/tokyocabinet/

 

TokyoCabinet is a library of routines for managing a database. The database is asimple data file containing records, each is a pair of a key and a value. Everykey and value is serial bytes with variable length. Both binary data andcharacter string can be used as a key and a value. There is neither concept ofdata tables nor data types. Records are organized in hash table, B+ tree, orfixed-length array.

TokyoCabinet is developed as the successor of GDBM and QDBM on the followingpurposes. They are achieved and Tokyo Cabinet replaces conventional DBMproducts.

·        improvesspace efficiency : smaller size of database file.

·        improvestime efficiency : faster processing speed.

·        improvesparallelism : higher performance in multi-thread environment.

·        improvesusability : simplified API.

·        improvesrobustness : database file is not corrupted even under catastrophic situation.

·        supports64-bit architecture : enormous memory space and database file are available.

5)     Berkeley DB

It has been purchased byOracle.

Need more research.

 

6)     Hamsterdb

 

http://hamsterdb.com/

 

·        HighPerformance hamsterdbavoids the overhead of a RDBMS

·        NoDependencies hamsterdb is linked directly into your application

·        HighPortability hamsterdb runs on many different architectures and operatingsystems

7)     SQLite

 

http://www.sqlite.org/features.html

 

· Small code footprint: lessthan 350KiB fully configured or less than 200KiB with optional featuresomitted.

· Faster than popularclient/server database engines for most common operations.

· Simple, easy to use API.