NoSQL 35 non-mainstream databases

Source: Internet
Author: User
Tags cassandra mongodb server object model xslt hypertable neo4j couchdb xquery

Almost every web developer has its own favorite database, or its most familiar database, but the most common are the following:

Mysql

PostgreSQL

MSSQL

Sqlite

MS Access

or simpler XML, text files, and so on. These databases have excellent documentation, strong community support behind them, most popular CMS use one or more of them, they are easy to use, most managed service providers provide the corresponding products, so they use a lot and fame is also very big. But in addition to these mainstream databases, there are many other non-mainstream databases exist, some of which are beginning to be highly regarded by people, let's take a look at it, note that this article only introduces open source database, perhaps in the next project, you will have to try their impulse.

1. MongoDB

Introduction of 35 non-mainstream open source databases

MongoDB is an open-source, high-performance, extensible, modeless, document-oriented (JSON-like data pattern) database that provides drivers for today's most popular programming languages, such as php,python,perl,ruby,javascript,c++, which supports full-text indexing , automatic sharding, extending across LAN or WAN, and storing data in key/value manner. The MongoDB server can run on Linux, Windows or OS X platforms and supports 32-bit and 64-bit applications. The world's largest word ingest site Wordnik from MySQL to MongoDB.

2, Hypertable

Introduction of 35 non-mainstream open source databases

Hypertable is a high-performance distributed data storage system designed to deliver the best performance, scalability, and reliability to your applications, built on Google's bigtable for large-scale data set applications. Its goal is to become the world's best large-scale concurrent high-performance database platform. Baidu is also using hypertable, which is also its sponsor.

3. Apache CouchDB

Introduction of 35 non-mainstream open source databases

Apache Couchdb is a document-oriented database that can be queried and indexed using JavaScript through the MapReduce method, which provides a restful JSON API that can be accessed through HTTP in any environment. The COUCHDB has a built-in Web management console that supports managing databases through a browser. Couchdb is written in Erlang, which is a robust, functional programming language that is ideal for building concurrent distributed systems, and Erlang's design is flexible, with great scalability and scalability.

4, neo4j

Neo4j

NEO4J is an embedded, disk-based, Java persistence engine that supports a full transaction, which stores data in an image rather than a table. NEO4J provides massive scalability to handle billions of node/relationship/attribute images on a single machine that can be scaled to run parallel to multiple machines. Compared with relational database, the graph database is good at dealing with a large number of complex, interconnected, and low-structured data, which changes rapidly and requires frequent queries-in relational databases, these queries result in a large number of table joins and therefore performance problems. NEO4J focuses on the performance degradation problems encountered by traditional RDBMS with a large number of connections when querying. By modeling data around a graph, neo4j traverses nodes and edges at the same speed, with no relationship between the traverse speed and the amount of data that constitutes the graph. In addition, NEO4J provides very fast analysis of graphics algorithms, recommender systems, and OLAP styles, all of which are not achievable in current RDBMS systems.

5, Riak

Neo4j

Riak is a very good database for Web applications, it provides de-centralized key/value storage, a flexible map/reduce engine and a friendly Http/json query interface. It is a true fault-tolerant system, no single point of failure, in the Riak world, no machine is a special or core server, they are all equivalent.

6. Oracle Berkeley DB

Neo4j

Oracle Berkeley DB is an open-source, embedded database that enables developers to incorporate a fast, scalable transactional database engine with industry-class reliability and availability into their applications. Berkeley DB was first written by UC Berkeley in order to remove the software that was rewritten from BSD 4.3 to 4.4 for removal of the code at the/T limit. Berkeley DB runs on most operating systems, such as most UNIX systems, and Windows systems, as well as real-time operating systems.

7. Apache Cassandra

Neo4j

Cassandra is a highly scalable second generation distributed database that is a hybrid non-relational database, similar to Google's bigtable, which supports a very loosely structured data structure similar to the JSON Bjson format, so you can store more complex data types. Cassandra was originally developed by Facebook and turned into an open source project. The main characteristic of Cassandra is that it is not a database, but a distributed network service composed of a bunch of database nodes, a write operation to Cassandra will be copied to the other nodes, and the read operation to Cassandra will be routed to a node to read. For a Cassandra cluster, scaling performance is a simple matter, just add nodes to the cluster. Large Web sites such as Facebook,digg,twitter and Cisco use Cassandra.

8, Memcached

Memcached

Memcached is an open source distributed cache system, and now many large Web applications, including Facebook,youtube,wikipedia,yahoo, are using memcached to support their hundreds of millions of-level page access every day. By integrating the cache layer with their web schemas, their applications improve performance while significantly reducing the load on the database.

memcached processing atoms is every key/value pair, key will be converted to hash-key through a hash algorithm, easy to find, compare and do as possible hash. At the same time, Memcached uses a two-level hash, which is maintained by a large hash table.

9, Firebird

Memcached

Firebird is a relational database that can be run on linux,windows and various Unix platforms, Firebird relatively small compared to MySQL and PostgreSQL, which makes it an ideal embedded database. Can be used to bundle with other application servers and applications. Firebird has the features of most mature databases, such as supporting stored procedures, SQL compatibility, and so on.

10. Redis

Memcached

Redis is a fast Key/value database engine, which keeps the key-value database simple and quick, and absorbs the advantages of some relational database, so that its location is between the relational database and the key-value database. Redis can not only save strings type of data, but also can save lists type (ordered) and sets type (unordered) data, but also can complete sorting (sort) and other advanced functions, in the implementation of INCR,SETNX and other functions, the operation of the atomic, in addition, Features such as master-slave replication are also supported. Redis is written in C, and can be used as a memcached, on the front end of traditional databases, it supports many programming languages, and is used by many popular projects, such as GitHub and engine Yard, a client written in PHP called Rediska, Dedicated to managing Redis databases.

11. HBase

HBase is a distributed, Columnstore-oriented database engine that can also be called a Hadoop database because it is a sub-project of Hadoop, and the goal of HBase is to host a large table of billions of rows, millions of columns, which provides a restful Web server gateway that supports XML, PROTOBUF and binary data encoding options.

Memcached



12, Keyspace

Keyspace

Keyspace is a high-reliability key/value storage System developed by a start-up company called Scalien, and Keyspace's emphasis on technology is highly reliable with the following features:

Key/value Storage: A Key/value data storage system that supports only a few basic operations, such as SET (key, value) and GET (key);

Distributed: Multiple machines (nodes) store data and state simultaneously, exchanging messages to keep the data consistent, and can be considered as a complete storage system. In order to be more reliable, Keyspace recommended the use of odd number of nodes, such as: 3,5,7, etc.;

Data consistency: All the data on the machine is updated synchronously, without worrying about inconsistent results, Keyspace uses the famous Paxos distributed algorithm;

Redundancy: All machines (nodes) hold the same data, and the storage capacity of the entire system depends on the ability of a single machine (node);

Fault tolerance: If there are a few nodes error, such as restart, when the machine, broken network, network drops, and so on all kinds of fault/fail do not affect the operation of the whole system;

High reliability: Fault tolerance and redundancy ensure the reliability of keyspace.

13, 4store

Keyspace

4store is a database storage and query engine that accommodates RDF data, written using ANSI C99, that runs on Unix-like systems and provides a high-performance, scalable, and stable platform. The 4store is optimized for no shared clusters, supports up to 32 node clusters, and imports performance up to 120kt/s, and its query performance is remarkable.

14, MariaDB

Keyspace

MARIADB is a backward-compatible MySQL branch that is designed to replace the MySQL database, which includes all the major open source storage engines, as well as the Maria storage engine that belongs to it. MariaDB is a free open source database server developed by a company founded by the original MySQL author Michael Widenius, compared to MySQL, where the MariaDB is stronger:

Maria Storage Engine

PBXT Storage Engine

XtraDB Storage Engine

Federatedx Storage Engine

Faster replication Query Processing

Thread pool

Fewer warnings and bugs

Run faster

More Extensions (more index parts, new startup options etc)

Better Functional Testing

Data Sheet elimination

Extended statistics for slow query logs

Support for sorting Unicode

15, drizzle

Drizzle

Drizzle is a database derived from MySQL, but its purpose is not to replace MySQL, its purpose is to build a "more concise, lighter, faster" version of MySQL, its extensibility and ease of use and MySQL equivalent, but in order to improve performance and scalability, It removes some of the functionality from the original core system. Drizzle is a database specifically optimized for cloud and network applications and is designed to achieve large-scale concurrency on modern multi-cpu/multicore architectures.

16, Hypersql

Drizzle

Hypersql is a SQL relational database engine written in Java, its core is fully multi-threaded, support bidirectional lock and MVCC (multi-version concurrency control), almost complete support ANSI-92 SQL, support common data types, the latest version adds to the BLOB and CLOB data support , which supports up to 64T of data volume. At the same time, Hypersql is also a good embedded database.

17, MonetDB

Drizzle

MonetDB is a high performance database engine, mainly used in data mining, olap,gis,xml query, text and multimedia retrieval and other fields. MonetDB has innovative designs for every layer of the DBMS, such as a vertical shard-based storage layer, a query execution architecture optimized for modern CPUs, automatic and self-tuning indexing, runtime query optimization, and a modular software architecture. Monetdb/sql is a relational database solution provided by MONETDB, Monetdb/xquery is an XML database solution, and MONETDB server is a multi-model database server for MONETDB.

18, persevere

Drizzle

Persevere is a rest-based JSON database designed for JavaScript, a framework for distributed computing, persistent object mapping, and a stand-alone Web server for designing rich client applications that can be used on any framework and client. Persevere server is an Java/rhino-based object storage engine that provides a persistent JSON data format in an interactive client-side JavaScript environment.

19, Exist-db

Drizzle

EXIST-DB is a database storage engine built using XML technology that stores XML data based on an XML data model, providing efficient, indexed-based XQuery queries. EXIST-DB supports many web technology standards, making it ideal for Web application development:

XQuery 1.0/xpath 2.0/XSLT 1.0 (using Pache Xalan) or XSLT 2.0

HTTP interface: Rest,webdav,soap,xmlrpc,atom release protocol

XML Database specification: Xmldb,xupdate,xquery update extension

The latest version of 1.4 also adds a full-text index based on Apache Lucene, a lightweight URL rewrite and MVC framework, and support for Xproc. The EXIST-DB is highly compatible with the XQuery standard (the current XQTS score is 99.4%).

20, Gladius

Gladius

Gladius is a flat file database engine written in pure PHP, and its SQL syntax is compatible with a subset of SQL92, which bundles a lightweight ADODB driver.

21, Cloudstore

Gladius

Cloudstore (formerly known as the Kosmos file system) is an open-source, high-performance Distributed File system, written in C + +, Cloudstore can be integrated with Hadoop and hypertable, allowing applications to be built on those systems, and the underlying data store uses Cloudstore seamlessly. Cloudstore supports Linux and Solaris and is primarily used to store web logs and web crawling data.

22, OPENQM

Gladius

OPENQM is the only commercially supported and free open-source multi-valued database, based on the GPL, the multi-valued database has played a role in the NoSQL movement, and it is fast, small, and quickly recognised for its speed and size, which is cheaper than relational databases. Open in Name OpenQM is an open source version, and QM represents the commercial closed source QM database. Commercial version supports Windows,linux (Redhat,fedora,debian,ubuntu), Freebsd,mac OS x and Windows Mobile, whose list price is less than 1 of other multi-valued products 5, the commercial version also includes a GUI management interface and a terminal emulator, and the open source version includes only the core multi-valued database engine, primarily for developers.

23, Scarletdme

Gladius

Scarletdme is also an open-source multi-valued database, which is a community branch of OPENQM, originally developed by Ladybridge, which was founded on November 28, 2008, and is also contributing code to OPENQM as it independently develops its own functions. The original name of the project, called Ladybridges GPL OPENQM, is now formally changed to Scarletdme, where the DME is the acronym for the Data Management environment (database management environment).

24, Smallsql

Gladius

Smallsql is a 100% pure Java-written lightweight database, commonly used in the embedded domain, compatible with the SQL 99 standard, supporting the JDBC 3.0 API, located in the high-end Java Desktop SQL database. Supports all platforms that can run Java and can be embedded directly into the application. However, it also has some shortcomings, such as no network interface, the Java runtime must be installed, the same time can not be shared between multiple applications database, no user management.

25, LUCIDDB

Luciddb

LUCIDDB is the only one by one open source RDBMS focused on data warehousing and business intelligence, which uses a columnstore architecture, supports bitmap indexing, hash join/aggregate, and page-level versioning, and most databases initially focus on transactional capabilities, which are later added to the analysis functionality. In contrast, all components in LUCIDDB are designed to meet flexible requirements, high-performance data integration, and large-scale data queries from the outset, and the architecture is designed to be completely user-friendly and simple to use without DBAs at all.

LUCIDDB is also extremely low on hardware requirements, and can achieve excellent performance on a single Linux or Windows Server, even if the cluster environment is not built. The latest version also adds support for Mac OS X and Windows 64-bit, and the documentation and tutorials on the official website are also plentiful and well worth the experience.

26, Hypergraphdb

Luciddb

Hypergraphdb is a versatile, extensible, portable, distributed, embedded, and open source data storage mechanism that is a graphical database specifically designed for AI and semantic Web projects, and can also be used for any size embedded object-oriented database. As its name, HYPERGRAPHDB is used to store a super-graph, but it also belongs to the general graphics database family, as a graphical database, it does not impose any restrictions, compared to other graphic databases it has a richer function.

Hypergraphdb is very stable and has been used in multiple production environments, including a search engine and Seco scripting IDE. It supports *nix and Windows platforms and requires Java 5+.

27, Infogrid

Luciddb

Infogrid is an Internet graphics database that provides a number of additional components that make it easier to develop restful web applications on an image basis. Infogrid is open source and includes a range of projects:

Infogrid Graphics database project –infogrid Heart graphdatabase, can be used independently or attached to other Infogrid projects.

Infogrid Graphical database Grid project – The replication protocol is added on graphdatabase basis, so multiple distributed graphdatabase can collaborate in a very large image management environment.

Infogrid Storage projects – like SQL database and distributed NoSQL hash tables, provide an abstract generic interface for storage technology so that Infogrid graphdatabase can persist data using any storage technology.

Infogrid user Interface Project – Maps content in Graphdatabase to a browser-accessible URL in restful style.

Infogrid Lightweight identification Project – Implement user-centric identity technologies such as lid and OpenID.

Infogrid Model Library Project – defines a reusable object model library that is used as a pattern for infogrid applications.

Infogrid Probe Project – implements the probe framework, which allows developers to treat any data source on the Internet as an Image object.

Infogrid Utilities Project – collects common object frameworks and practical code used by Infogrid.

28. Apache Derby

Apache Derby

Apache Derby is a sub-project of Apache DB, which is written entirely in Java and is an open source relational database that is very small in size The base engine plus the JDBC driver is only 2.6MB, it supports the SQL standard, it provides an embedded JDBC driver, so it can be embedded in any Java-based application, and Derby also supports the common client/server model, which is also easy to install and use.

29, Hamsterdb

Apache Derby

Hamsterdb is a lightweight, embedded NoSQL key/value storage engine that has been around for 5 years and now focuses on ease-of-use, performance, stability and scalability. Hamsterdb supports transactions (only one transaction at a time), supports in-memory databases, supports embedded remote databases based on HTTP servers, supports Log/restore, AES encryption, zlib-based compression, and supports C++,python. NET and Java programming languages.

30. H2 Database

Apache Derby

H2 database is an open source Java databases, it is very fast, including the JDBC API, support embedded and server mode, memory database, provide a browser-based console program, its volume is very small, only a size of about 1MB jar file, It also supports ODBC driver and full-text search.

31, Eyedb

Apache Derby

Eyedb is an object-oriented database management system based on the ODMG 3 specification, which provides programming interfaces for C + + and Java, which is very powerful, mature, stable and secure, in fact, it originated in the 1992 Genome View Project and was rewritten in 1994. Widely used in biological information projects.

32, TxtSQL

Apache Derby

txtSQL is an object-oriented flat file database management system, it is written in PHP, supporting the operation of ordinary text files, although it is a text database, but also support a subset of SQL, and execution is very efficient, txtSQL uses the file system in a way similar to the MySQL table and database principle, and it has a similar phpMyAdmin management interface.

33, Db4o

Apache Derby

Db4o is an object-oriented, open-source database that allows Java and. NET developers to store and retrieve any application object in one line of code without having to pre-define or maintain a separate, rigid data model, because the model is now automatically created and updated by Db4o as needed. Db4o's secret to success is its ease of use, which is native to Java and. NET design, and the way in which data objects are stored is defined directly in the application, so the db4o is easy to integrate into the application, so execution is very efficient because it requires only one line of code.

34. Tokyo Cabinet

Tokyo Cabinet

Tokyo cabinet is a kay/value database, each key and value can be of different lengths, and Kay and value can be either binary or string, without the concept of data tables and data types, and records are in a hash table, B + Tree and fixed-length arrays. Tokyo cabinet has the following advantages:

High space utilization – smaller data file size;

High execution efficiency – faster processing speed;

Good concurrency Performance – better performance in multithreaded environments;

Improved usability – Simplified API;

Improved reliability – even in the event of a disaster, data files are not corrupted;

Support for 64-bit architectures – massive storage space and huge database files are supported.

The Tokyo cabinet is written in C and provides APIs for C,perl,ruby,java and Lua.

35. Voldemort Project

Tokyo Cabinet

Voldemort is a distributed key/value storage system that has the following features:

Data is automatically replicated between multiple servers;

Data is automatically partitioned so that each server includes only a subset of the overall data;

Server fault handling is transparent;

Supports plug-in serialization, allows rich key and value types, including lists and tuples, or integrates common serialization frameworks such as Protocol Buffers,thrift,avro and Java serialization

Data items support versioning, even in the event of a failure, data integrity can be guaranteed;

Each node is independent, no other node coordination, and therefore there is no central node;

Excellent single-node performance: 10-20k operations can be performed per second depending on machine configuration, network, disk system, and data replication factors;

Support for geo-distributed deployments.

LinkedIn is currently using Voldemort to address high scalability storage issues.

I do not know if you can read this article in a breath, I think you will be surprised at so many open source database, in fact, this article is not yet fully listed, you are welcome to add.

Original source: Http://phpcamp.net/toolbar/25-alternative-open-source-database-engines

Original name: 25+ Alternative & Open Source Database Engines

NoSQL 35 non-mainstream databases

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.