NewSQL初了解
NewSQL一词是由451 Group的分析师Matthew Aslett在研究论文中提出的。它代指对老牌数据库厂商做出挑战的一类新型数据库系统。NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID
NewSQL一词是由451 Group的分析师Matthew Aslett在研究论文中提出的。它代指对老牌数据库厂商做出挑战的一类新型数据库系统。NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。
分布式数据库公司VoltDB的首席技术官Michael Stonebraker表示NoSQL数据库可提供良好的扩展性和灵活性,,但他们也有自己的不足。由于不使用SQL,NoSQL数据库系统不具备高度结构化查询等特性。NoSQL其他的问题还包括不能提供ACID(原子性、一致性、隔离性和耐久性)的操作。另外不同的NoSQL数据库都有自己的查询语言,这使得很难规范应用程序接口。Stonebraker表示数据库系统的滞后通常可归结于多项因素。诸如以恢复日志为目的的数据库系统维持的缓冲区池,以及管理锁定和锁定的数据字段。在VoltDB的测试中发现以上这些行为消耗系统96%的资源。
相对于NewSQL系统虽然在的内部结构变化很大,但是它们有两个显着的共同特点:(1)它们都支持关系数据模型,(2) 它们都使用SQL作为其主要的接口。已知的第一个NewSQL系统叫做H-Store,它是一个分布式并行内存数据库系统。目前NewSQL系统大致分三类:
新架构
所述第一类型的NewSQL系统是完全新的数据库平台,它们均采取了不同的设计方法。它们大概分两类:
(1) 这类数据库工作在一个分布式集群的节点上,其中每个节点拥有一个数据子集。 SQL查询被分成查询片段发送给自己所在的数据的节点上执行。这些数据库可以通过添加额外的节点来线性扩展。现有的这类数据库有: Google Spanner, VoltDB, Clustrix, NuoDB.
(2) 这些数据库系统通常有一个单一的主节点的数据源。它们有一组节点用来做事务处理,这些节点接到特定的SQL查询后,会把它所需的所有数据从主节点上取回来后执行SQL查询,再返回结果。
SQL引擎
第二类是高度优化的SQL存储引擎。这些系统提供了MySQL相同的编程接口,但扩展性比内置的引擎InnoDB更好。这类数据库系统有:TokuDB, MemSQL。
透明分片
这类系统提供了分片的中间件层,数据库自动分割在多个节点运行。这类数据库包扩:ScaleBase,dbShards, Scalearc。
那么现有NewSQL系统厂商有哪些呢:
我们将包括(顺序随机)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、带有 NDB的 MySQL 集群和带有HandlerSocket的MySQL。后者包括Tokutek和JustOne DB。相关的“NewSQL作为一种服务”类别包括亚马逊关系数据库服务,微软SQLAzure,Xeround和FathomDB。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

TRedis caching technology is a high-performance memory caching technology that can improve the performance and response speed of a website or application. In this article, we will introduce the basic concepts of TRedis caching technology and how to use it in your applications. What is TRedis caching technology? TRedis is a memory caching technology that stores frequently used data in memory, thereby increasing the speed of accessing this data. The main idea of this technique is to reduce the load on the database or disk by using in-memory caching

ECache is a Java caching framework that provides a simple yet powerful way to reduce the response time of computer applications. It enables applications to respond to client requests faster and improves system throughput by storing data in memory. In this article, we will introduce some basic knowledge of ECache caching technology, including its advantages, installation and usage, etc. 1. Advantages of ECache Improve system performance: ECache stores cache data in memory, which means that applications

JSP file opening method JSP (JavaServerPages) is a dynamic web page technology that allows programmers to embed Java code in HTML pages. JSP files are text files that contain HTML code, XML tags, and Java code. When a JSP file is requested, it is compiled into a JavaServlet and then executed by the web server. Methods of Opening JSP Files There are several ways to open JSP files. The easiest way is to use a text editor,

Redisson is a Redis-based caching solution for Java applications. It provides many useful features that make using Redis as a cache in Java applications more convenient and efficient. The caching functions provided by Redisson include: 1. Distributed mapping (Map): Redisson provides some APIs for creating distributed maps. These maps can contain key-value pairs, hash entries, or objects, and they can support sharing among multiple nodes.

Go and Golang are the same programming language and there is no substantial difference between them. Go is the official name of the programming language, and Golang is the abbreviation commonly used by Go language developers in the Internet field. In this article, we will explore the characteristics, uses, and some specific code examples of the Go language to help readers better understand this powerful programming language. Go language is a statically compiled programming language developed by Google. It has the characteristics of efficiency, simplicity, and strong concurrency, and is designed to improve programmers' work efficiency.

Understanding localstorage: What kind of database technology is it? In web development, data storage and processing have always been an important issue. With the continuous development of computer technology, various database technologies have also appeared one after another. Among them, localstorage is a widely used database technology. It is a local storage solution provided by HTML5 that can store and read data in the browser. This article will introduce the characteristics and usage of localstorage, and give specific codes.

What is the Golang XOR operator? Come and find out! In Golang, the XOR symbol (^) is a bitwise operator used to perform bitwise XOR operations on binary numbers. The operation rule of the XOR operator is: if the corresponding binary bits are the same, they are equal to 0, and if they are different, they are equal to 1. In Golang, it can be used not only for binary representation of integers, but also for boolean type values. This article will explain in detail how to use the Golang XOR operator and provide specific code examples. 1. XOR operation of integer type in Golang, use

First Time with PHP: Understanding What the PHP Language Is For beginners, learning a programming language can seem a bit difficult. But for developing websites and web applications, PHP is a very useful programming language. PHP is widely used in web development to generate dynamic content encoded in html. In this article, we will learn the basics about PHP language. Overview of PHP PHP (Hypertext Preprocessor) is an open source, server-side scripting language
