NewSQL分类
The term NewSQL was first used in a research paper in 2011, while discussing the emergence of new database systems. Many business systems such as financial sector that handle high profile data should also be able to scale, but they are not able to use NoSQL solutions because they cannot give up high transactional and consistency requirements. The only options previously available to these organizations were to acquire a more powerful single-node machine or develop custom middleware to distribute queries across more traditional DBMS nodes. Both approaches are excessively expensive for most, and therefore, in this work, Aslett analyzes the possibilities of NewSQL to compete with other commercial providers, and in particular with Oracle.
They are classified in to three categories :
- New architectures
- MySQL engines
- Transparent protection
The first type of NewSQL systems are completely new database platforms. They are designed to work in a shared-nothing distributed cluster, in which each node has a subset of the data. Although different design approaches have been used in many of the new databases, there are two main categories in evolution. They send the execution of transactions and queries to the nodes that contain the necessary data. SQL queries are divided into fragments and sent to the nodes, which are the ones that process and contain the data. These databases are capable of scaling linearly as additional nodes are added. General purpose databases maintain the full functionality of traditional databases and the handling of all * of queries. These databases are often written from scratch with a distributed architecture in mind, and include components such as distributed concurrency control, flow control, and distributed query processing. Among them are Google Spanner, Clustrix, NuoDB and TransLattice .
In memory database systems are characterized by having a large number of short-term transactions, which touch a small subset of data using index searches and repetitive. These NewSQL systems achieve high performance and scalability by preventing much of the architecture from being inherited from the original design of the R System, such as recovery algorithms or concurrency control. Two example systems in this category are VoltDB and SQLFire from GoPivotal.
The second type is optimized as an SQL storage engine. These systems provide the same programming interface as MySQL, but with better scale built into the engines, such as InnoDB. Several examples of these new engines are: TokuDB, MemSQL and Akiban.
Third type systems provide an intermediate protective layer to automatically divide the databases across multiple nodes. Some examples of this type of system are dbShards, Scalearc, Scalebase and MySQL Cluster.
Illustration is by Dr. Rabi Prasad Padhy, PhD
相关文章