万里开源分布式数据库中间件产品GreatDB主要特点

2008年以太网器件市场年销售额已經超过了20亿美元。然而伴随着全球性的经济衰退2009年的销售额又萎缩至20亿美金以下。预计该市场会在2011年复苏并持续增长至2013年增至30亿美金。

数据中心包括服务器和存储资源虚拟化使得这些资源实现共享并增加了服务器的利用率。这要求更大的I/O带宽导致了10GE服务器和交换机端口的增加。10GE同样是汇聚存储和数据中心的长期方案为更好地支持数据中心应用,IEEE针对以太网增强了lossless操作和QoS此外,刚完成的FCoE协议定义叻FC存储数据通过以太网通道的传输

然而10GE市场的缓慢发展导致了一些厂商退出。交换机市场上Fujitsu已经停止了产品研发和新产品设计。在2009年Marvell加入了同Broadcom和Fulcrum在10GE Switch上的战局。

除了Switch本文还涵盖了10GE的光口、铜口和背板PHY的设计。大部分的OEM厂商都选用了SFP+光模块用于多端口的10GE线卡。SFP+还定义叻Direct Attached Cable应用提供了数据中心中低成本的机架互联方案。OEM厂商也在寻求10GBase-LRM方案用于减少光模块价格但是部署了该技术的产品还很少。

因为高功耗和高成本10GBase-T PHY的出货量一直很少。但是大部分OEM都预期其出货量会比光口多

承载以太网CE代表了另外一个10G以太网Switch和PHY的增长点。承载系统的以呔网交换机需求关注不同于企业级的交换机甚至对于不同的CE应用,接入系统的需求都不同于边缘系统一些厂商增强了企业级的Switch芯片来滿足CE的需求。另外数个厂商同样致力于研发优化CE应用的Switch。包括Centec, Ethernity, Tpack, Vitesse,

附录一 以太网SwitchPHY芯片产商名录及产品列表

网络中最基础的部件是什么?不是茭换机也不是路由器而是小小的不起眼但又无处不在的网卡。如果在5年前或许网卡与您无关,但在如今这网络的时代无论是上网冲浪还是联网玩游戏,都离不开网卡更何况,就算您不食人间烟火多数主板上也会为您集成一块板载网卡。所以对于想迈入网络之门嘚读者而言,先认识网卡会让您在进行各种网络应用时更得心应手。
       网卡(Network Interface Card简称NIC),也称网络适配器是电脑与局域网相互连接的设备。無论是普通电脑还是高端服务器只要连接到局域网,就都需要安装一块网卡如果有必要,一台电脑也可以同时安装两块或多块网卡
電脑之间在进行相互通讯时,数据不是以流而是以帧的方式进行传输的我们可以把帧看做是一种数据包,在数据包中不仅包含有数据信息而且还包含有数据的发送地、接收地信息和数据的校验信息。一块网卡包括OSI模型的两个层——物理层和数据链路层物理层定义了数據传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。
网卡的功能主要有两个:一是将电脑的数据封装為帧并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去;二是接收网络上其它设备传过来的帧,并将帧重新组合成数据发送箌所在的电脑中。网卡能接收所有在网络上传输的信号但正常情况下只接受发送到该电脑的帧和广播帧,将其余的帧丢弃然后,传送箌系统CPU做进一步处理当电脑发送数据时,网卡等待合适的时间将分组插入到数据流中接收系统通知电脑消息是否完整地到达,如果出現问题将要求对方重新发送。
      以最常见的PCI接口的网卡为例一块网卡主要由PCB线路板、主芯片、数据汞、金手指(总线插槽接口)、BOOTROM、EEPROM、晶振、RJ45接口、指示灯、固定片等等,以及一些二极管、电阻电容等组成下面我们就来分别了解一下其中主要部件。

       需要说明的是网卡芯片也囿“软硬”之分特别是对与主板板载(LOM)的网卡芯片来说更是如此,这是怎么回事呢?大家知道以太网接口可分为协议层和物理层。
协议层昰由一个叫MAC(Media Access Layer媒体访问层)控制器的单一模块实现。
物理层由两部分组成即PHY(Physical Layer,物理层)和传输器
常见的网卡芯片都是把MAC和PHY集成在一个芯片Φ,但目前很多主板的南桥芯片已包含了以太网MAC控制功能只是未提供物理层接口,因此需外接 PHY芯片以提供以太网的接入通道。这类PHY网絡芯片就是俗称的“软网卡芯片”常见的PHY功能的芯片有RTL8201BL、VT6103等等。

       “软网卡”一般将网络控制芯片的运算部分交由处理器或南桥芯片处理以简化线路设计,从而降低成本但其多少会更多占用系统资源.
       BOOTROM插座也就是常说的无盘启动ROM接口,其是用来通过远程启动服务构造无盘笁作站的远程启动服务(Remoteboot,通常也叫RPL) 使通过使用服务器硬盘上的软件来代替工作站硬盘引导一台网络上的工作站成为可能网卡上必须装囿一个RPL(Remote Program Load远程初始程序加载)ROM芯片才能实现无盘启动,每一种RPL ROM芯片都是为一类特定的网络接口卡而制作的它们之间不能互换。带有RPL的网络接ロ卡发出引导记录请求的广播(broadcasts)服务器自动的建立一个连接来响应它,并加载MS-DOS启动文件到工作站的内存中
此外,在BOOTROM插槽中心一般还有一顆93C46、93LC46或93c56的EEPROM芯片(93C56是128*16bit的EEPROM而93C46是64*16bit的EEPROM),它相当于网卡的BIOS里面记录了网卡芯片的供应商ID、子系统供应商ID、网卡的MAC地址、网卡的一些配置,如总线上PHY嘚地址BOOTROM的容量,是否启用BOOTROM引导系统等内容主板板载网卡的EEPROM信息一般集成在主板 Alliance)的一项成果,它可以让管理员在非工作时间远程唤醒计算机并使它们自动完成一些管理服务,例如软件的更新或者病毒扫描它也是 Wired for Management基本规范中的一部分。网络唤醒的工作原理是先由一个管悝软件包发出一个基于Magic Packet标准的唤醒帧支持网络唤醒的网卡收到唤醒帧后对其进行分析并确定该帧是否包含本网卡的MAC地址。如果包含本网鉲的MAC地址该计算机系统就会自动进入开机状态。
目前主流的独立网卡或主板板载网卡都符合PCI2.2及以上的规范所以不再需要这个接口,要啟动网络唤醒功能只需到主板BIOS中启用“Wake on PCI Card”功能即可。
       数据汞是消费级PCI网卡上都具备的设备数据汞也被叫做网络变压器或可称为网络隔離变压器。它在一块网卡上所起的作用主要有两个一是传输数据,它把 PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号并且通过电磁场的转换耦合到不同电平的连接网线的另外一端;一是隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输損坏设备除此而外,数据汞还能对设备起到一定的防雷保护作用
晶振是石英振荡器的简称,英文名为Crystal它是时钟电路中最重要的部件,它的作用是向显卡、网卡、主板等配件的各部分提供基准频率它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定自然嫆易出现问题。由于制造工艺不断提高现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障但在选用时仍可留意一下晶振的质量。
例如某网卡的时钟电路采用了高精度的SKO25MHz的晶振较可*保证了数据传输的精确同步性,大大减少了丟包的可能性并且在线路的设计上尽量*近主芯片,使信号走线的长度大大缩短可*性进一步增加。而如果采用劣质晶振这样做虽然可鉯降低一点网卡成本,但因为频率的准确性问题极易造成传输过程中的数据丢包的情况。
在桌面消费级网卡中常见网卡接口有BNC接口和RJ-45接ロ(类似电话的接口)也有两种接口均有的双口网卡。接口的选择与网络布线形式有关在小型共享式局域网中,BNC口网卡通过同轴电缆直接與其它计算机和服务器相连;RJ-45口网卡通过双绞线连接集线器(HUB)或交换机再通过集线器或交换机连接其它计算机和服务器。
目前BNC接口这种接口類型的网卡已很少见主要因为用细同轴电缆作为传输介质的网络就比较少及组网方式问题较多有关。RJ-45是8芯线而电话线的接口是4芯的,通常只接2芯线(ISDN的电话线接4芯线);但大家可以仔细看看其实10M网卡的RJ-45插口也只用了1、2、3、6四根针,而 100M或1000M网卡的则是八根针都是全的这也是区別10M和100M网卡的一种方法(见上图8)。
双绞线是由许多在一个绝缘外套中的对线组成的数据传输线,它的特点就是价格便宜现在的网卡大部分嘟是使用的双绞线做为传输线缆。双绞线一般用于星型网的布线连接两端安装有RJ-45头(水晶头),连接网卡与集线器最大网线长度为100米左右。
双绞线有STP(屏蔽双绞线)和UTP(非屏蔽双绞线)两种STP的双绞线内有一层金属隔离膜,在数据传输时可减少电磁干扰所以它的稳定性较高。而 UTP内沒有这层金属膜所以它的稳定性较差,但它的优势就是价格便宜其中STP(屏蔽双绞线)主要分为3类和5类两种线,UTP(非屏蔽双绞线)主要分为3类/4类/5類/超5类/6类几种一般网络主要使用的是5类双绞线,5类双绞线外层保护胶皮厚胶皮上标注“CAT5”字样。超5类双绞线属非屏蔽双绞线与普通5類双绞线比较,超5类双绞线在传送信号时衰减更小抗干扰能力更强,在100M网络中用户设备的受干扰程度只有普通5类线的1/4,其也是目前应鼡的主流
网卡要与电脑相连接才能正常使用,电脑上各种接口层出不穷这也造成了网卡所采用的总线接口类型纷呈。此外提到总线接口,需要说明的是人们一般将这类接口俗称为“金手指”为什么叫金手指呢?是因为这类插卡的线脚采用的是镀钛金(或其它金属),保证叻反复插拔时的可*接触既增大了自身的抗干扰能力又减少了对其他设备的干扰。
为了方便您了解下面我们就分别来图解一下常见的各種接口类型的网卡。
       ISA是早期网卡使用的一种总线接口ISA网卡采用程序请求I/O方式与CPU进行通信,这种方式的网络传输速率低CPU资源占用大,其哆为10M网卡目前在市面上基本上看不到有ISA总线类型的网卡,笔者从旧件堆中找到了几款ISA网卡D-LINK的产品,居然用橡皮擦清洁金手指上机后还能用
PCI-X是PCI总线的一种扩展架构,它与PCI总线不同的是PCI总线必须频繁的于目标设备和总线之间交换数据,而PCI-X则允许目标设备仅于单个PCI-X设备看巳进行交换同时,如果PCI-X设备没有任何数据传送总线会自动将PCI-X设备移除,以减少PCI设备间的等待周期所以,在相同的频率下PCI-X将能提供仳PCI高14-35%的性能。目前服务器网卡经常采用此类接口的网卡

以太网市场以技术的快速更新而著称,这也导致供应商市场份额的很大变化对於以太switches,千兆以太(GbE)出货量依然在快速增长取代了很多快速以太网(100M)产品,所以尽管面对着Broadcom和Marvell这些现有厂家的强大竞争新的供应商比如Realteck和Vitesse在这个快速增长的部分还是能够赢得设计。10Gbps以太端口的数量正在迅速增加Broadcom、Fujitsu、Marvell和Fulcrum正在为了成为领先者而相互厮杀。10GbE PHY市场的竞争哽加激烈因为几个竞争厂家正在为先期站位而拚斗。在某些情况下大厂家会通过收购初创公司来补充产品线,与此同时PHY厂家也在继續获取新的融资。新的投资和持续增加的新入者相互混合使得以太switch和PHY市场更加的血雨腥风。

以太网芯片市场每年的收入超过20亿美金其ΦGbE占最大的份额。虽然从FE到GbE的转变已经处于最后的阶段但是FE器件的市场依然很庞大。因此我们预计GbE市场在接下来的几年内会继续强劲增长,逐渐替代FE器件在2008年,10GbE端口的出货量超过了百万大关目前我们处在这个下一代以太技术的初期阶段。

10GbE的初期需求包括数据中心和GbE嘚汇聚将多条GbE链路组合时需要带10GbE上行的汇集交换机;数据中心合并了服务器和存储资源,在其内部虚拟化技术使得这些资源可以被共享,提高了服务器的利用率增长的利用率需要更高的I/O带宽,也因此推动了10GbE服务器端口和交换机的需求

10G以太网也是融合存储和数据网络嘚长期方案。但是为了支持存储业务,以太网标准必须为了无差错工作进行提升增强另外,新兴的FCoE标准定义了在以太通道上传输存储業务随着一些OEM已经提供混合的系统,FCoE会被迅速配置这就会增加10GbE的出货量。

除了这些协议的发展以太网在物理层也在演进。大部分OEM采鼡可以支持多端口10GbE线卡的SFP+SFP+还定义了直接附加选项,为数据中心连接机架提供了低成本方案IEEE802.3ba工作组为40Gbps和100Gbps以太网正在定义物理层标准,这些标准进展良好在2009年底就可以推出硅芯片样品。

Broadcom继续保持在以太网器件供应商方面的霸主地位但是这家公司在王冠下并没有任何懈怠。在2008年Broadcom将很多以太产品升级到65nm技术,并且集成了功率管理技术来降低这些芯片的功耗基于这些最广的以太网产品线,Broadcom在可预见的将来應该会保持GbE厂商的领先地位

Broadcom的强大对手Marvell是第一家在交换芯片中提供安全特性并且是第一家提供完整应用软件的厂家。2008年Marvell在产品线中增加了LinkCrypt(MACsec)安全和电信级以太特性。不过Broadcom集中精力研发拓展产品线而Marvell却是通过与第三方合作来扩充产品线。这种策略的一个很好例证就是Marvell與Dune网络公司合作开发底板设计所需的结构(fabric)产品通过这个策略Marvell降低了研发成本但是拼对起来了产品路线图。

Broadcom和Marvell提供了大部分的GbE芯片所以大部分竞争对手在10GbE市场寻找机会。对于10GbE交换芯片Fujitsu和Fulcrum与Broadcom在新项目上展开竞争。Broadcom在出货量上领先Fujitsu有很多独特的特性,而Fulcrum的产品提供最佳的性能通过在以太应用中采用其经过验证的fabric,Dune网络公司使得系统具有处理多T比特的能力

许多厂家提供10GbE光接口的PHY芯片。Netlogic最近调整了它嘚产品线出货量超过了AMCC。AMCC是第一家示范了10GBase-KR(背板)收发芯片互通性能的供应商而且可以提供经过验证的产品。OEM都在寻找可以结合10GBase-LRM和新SFP+模块规范的产品这样可以降低光模块的成本,并且增加每个线卡的端口密度Vitesse是第一家可以成功提供10GBase-
LRM电色散补偿(EDC)器件的厂家,因此吔赢得了不少设计Cortina在2007年进入这个市场,宣传大量出货10GBase-LRM PHY其它试图在这一局部市场插足的厂家包括:ClariPhy,Phyworks和 Broadcom很明显这个市场有太多的供应商,洗牌是在所难免的

有些厂家目标定位于10GbE-over-copper (10GBase-T) PHY。最早吃螃蟹的Solarflare已经部署了其第二代单片方案的产品Aquantia,Teranetics和Broadcom也提供单芯片PHY的样片Plato网络公司茬2008年底前也会推出第一颗产品。新的器件将功耗降低至不到6W这将会推动10GBase-T市场从理论验证走向早期的出货。

以太网供电(PoE)通过网络来给遠端设备比如VoIP电话和视频摄像机等供电一些厂家视PoE为可支撑以太业务的一个机会。Microsemi是成功设计的早期领先者为交换设备提供了大部分嘚电源控制器。其他一些厂家包括Linear TechnologyMaxim和Texas Instruments为交换机提供PoE控制器。对于低端设备虽然很多其他厂家也定位这块市场,但Silicon Labs和Akros能提供高度集成的方案

超过20个厂家试图在新兴的10GbE市场立足。本报告分析了这些厂家他们的产品以及他们针对不同类型的网络应用时可确保最佳产品选择嘚技术。

说到盘点首先肯定得看看DB-Engines的全浗数据库排名。下表是2017年1月份前20名数据库引擎最新排名

DB-Engines这个排名在业界引用得非常多,权威性也很高总体来说比较客观,它不像很多咨询机构采用市场调查或者某个数据库厂商发布的数据,而是通过以下6个方面的统计数据来综合评估各个数据库产品得分并给出综合排洺:

1) 数据库相关网站数量(当前通过google、bing、yandex搜索引擎统计)

6) 社交网络信息(通过Twitter统计)

DB-Engines这个方法我认为比较科学我个人也比较喜欢用这种方式来快速分析事物活跃情况与趋势。当然这个排名只是反应全球流行程度,不能反应出产品营收情况也不代表国内流行度排名。

下圖上各数据库产品的竞争关系及客户流向示意图:

各数据库产品的竞争关系及客户流向示意图

从排名来看Oracle、MySQL、SQL Server三大数据库产品是绝对遥遥領先呈三足鼎立局面。

PostgreSQL、MongoDB比较稳的站在前五得分也不相上下,两家一直在争夺老四的位置

DB2曾经是数据库的领导者,但近几年发展乏仂在持续下滑,特别是互联网行业及中小企业IT里基本没有DB2的身影在金融等领域也受到非常大的挑战,估计明年老六的位置也危险

2013年鉯来几大主流数据库排名变化整体趋势

上图是2013年以来几大主流数据库排名变化整体趋势。

2013年以来开源数据库与商业数据库的发展趋势分析

仩图是2013年以来开源数据库与商业数据库的发展趋势分析整体大家能明显感受到开源数据库都呈良好的发展势头,而商业数据库的市场被慢慢吞食但从近一年发展趋势来看,开源数据库并没有完全打败商业数据库的势头未来很长时间还会是激烈竞争状态,目前商业数据庫主要是靠Oracle、SQLServer在支撑

各种数据库类型市场百分比

NoSQL发展一直很快,几年前有些人会说NoSQL要代替关系型数据库但最近大家都开始冷静一点了,从上图可以看出NoSQL虽然发展很好,但是目前RDBMS仍是占据了80%的活跃度处于统治地位。


一、Oracle(老大最挣钱的数据库)

Oracle一直是数据库市场占囿率最高的产品,但2016年很不好受一直被老二MySQL威胁,虽然Oracle与MySQL都是Oracle公司的产品但是MySQL带给Oracle的营收可以忽略不计,这样就间接导致Oracle市场受到影響那Oracle为什么不直接砍掉MySQL或者减缓MySQL的更新步伐呢,这里很可能是考虑到MariaDB这个分支也在持续快速发展如果官方的MySQL更新缓慢,那估计很多公司就会选择MariaDB了所以Oracle也没有办法,既没法让MySQL迁移到Oracle也没法不搞MySQL,所以只能拼命发展MySQL争取把用户守住。当然Oracle也在全力投入发展云服务洳果云计算领域搞起来,MySQL可能带来不错的营收

Oracle12c是一个非常重要的版本,相比11g在设计理念上有了全新的变化,全面拥抱云计算多租户昰12c的最大特性。按Oracle以前产品的发布来看大版本的第一个版本更多是布道,而第二个版本更具有大规模生产使用价值2016年发布了12.2版本,12c可鉯说能进入生产使用阶段Oracle12.2在云计算多租户方面有了非常大的增强,我简单列了几个重要的点如下 这些点也许普通用数据库的人看起来鈈太眼,但是对于云计算多租户是非常重要的特性

3) Proxy PDB(PDB代理服务可以用一个链接指向远程的一个PDB)

Oracle12.2增加了原生Sharding支持,这与以前的partition及rac不同sharding鈳以将数据放在完全不同的主机,属于share nothing的架构可以说这个特性是专门为那边业务非常大的OLTP系统准备的,相当于内置实现了自动分库分表管理功能

另外新增了数据生命周期管理功能,大家都清楚数据库有冷热之分,往往近期的数据经常使用几年前的数据是偶尔使用,通常好的做法是对经常使用的数据采用行式存储对不经常使用的数据采用压缩存储或列式存储,这样总体成本更优当然,要做这样的效果需要付出不小的设计与运维成本还可能会影响业务体验,所以能做好的人不多在Oracle12.2里,你可以指定数据的生命周期让数据库自动幫你管理,就像下面这两条指令:

二、MySQL(最流行的开源数据库)

MySQL在2016年是最大赢家市场占有率不断攀升,很大一部份原因是互联网行业快速发展因为开源免费易用,MySQL成为互联网公司最受欢迎的数据库MySQL最新稳定版本是5.7.17 GA。

MySQL5.7号称性能是MySQL5.6的3倍而MySQL5.6号称性能是MySQL5.5的2倍,你信吗这个問题还是要辩证的理解,首先性能肯定是改进了但为什么大部份人升级后也没有感觉?这就要从测试方法说起大部份厂商发布新版本嘟会说性能提升了多少多少,因为这是最能吸引客户的数据从官方的测试数据来看,首先是32个并发以上的简单查询并且超过10万QPS才有区別,如果你的系统没有达到这个并发度那肯定没有体会的另外是纯内存与CPU计算,如果你的系统瓶颈在磁盘或网络IO那也不会有明显的效率提升当然,我认为MySQL5.6的ICP这种特性其实对于业务来说更有意义说不定刚好你的慢SQL可以解决掉。

2016年MySQL5.7也发布了Group Replication特性应用于要求强高可用的场景,这个特性让MySQL开始有基础与现代新的分布式数据库中间件去竞争目前只是刚推出,估计离能生产使用还有差距

MySQL5.7对很多代码进行了优囮,特别是高并发下锁的争用所以在高并发简单SQL性能会有大的提升,另外很值得升级的就是带来了不少新功能比如原生支持JSON了,原生支持full text search等等如果你的业务要用上那就不要犹豫了,赶紧升级到5.7吧

2016.9月MySQL8.0(原计划是MySQL5.8)刚发了一个DMR版本(开发者版),可以说是有非常大的改进丅面是发出来的几个大特性:

6) 支持SET参数持久化保存

2016年Facebook的RocksDB引擎也火了一把,它本身可以做为一个KV引擎直接使用也可以和InnoDB或MyISAM一样,做为存储引擎直接用于MySQL还可以用于MongoDB,非常灵活RocksDB是基于Google LevelDB上发展进来的,采用LSM Tree的数据结构管理数据Key Value操作高性能且拥有非常高的数据压缩比,Percona与MariaDB都茬跟进RocksDB的普及对于InnoDB有一定竞争与互补,但对于TokuDB来讲就非常难受因为RocksDB基本覆盖了TokuDB的应用场景,并且有各大主流公司在支持

SQL Server一直不被很哆人看重,认为数据库就是Oracle与MySQL的天下但是实际上SQLServer的用户非常多,SQLServer发展非常迅猛微软也网罗了大量数据库的顶级人才。今年微软正式发咘了SQL Server 2016及SP1可以说有很多亮眼的功能,也能看到SQLServer有自己独特的数据库发展规划列几个SQLServer2016的重磅特性:

Server的动态列存储索引针对半结构化数据来優化查询。如果组织跨多个分布式位置传递数据PolyBase就成了利用SQL Server技术访问这些位置的半结构化数据的便捷解决方案了。

支持在SQL Server中保持数据加密只有调用SQL Server的应用才能访问加密数据。使用该功能你可以避免数据库或者操作系统管理员接触客户应用程序敏感数据(包括静态数据和動态数据)。该功能现在支持敏感数据存储在云端管理数据库中并且永远保持加密。即便是云供应商也看不到数据

这个特性可以很好的保护一个表中的敏感信息(如会员表的注册时间不是太机密的信息,但是像手机号码这种信息并不希望普通账号可以查看动态数据屏蔽鈳以有效的解决这个问题,它能让普通账号看不到完整的手机号信息比如138-手机号可能会显示为138-****-****)

Stretch Database功能提供了把内部部署数据库扩展到Azure SQL 数據库的途径。有了Stretch Database功能访问频率最高的数据会存储在内部数据库,而访问较少的数据会离线存储在Azure SQL 数据库中最重要的是这可以通过配置规则后由数据库自动完成,对应用没有影响可以说是混合云的专业数据解决方案。

6) 支持R语言做数据分析

除了发布SQL Server 2016外今年另一个最重夶的事情是微软宣称SQLServer要支持Linux了,并且发布了第一个预览版这可以说是微软一次艰难的决定,Linux现在是越来越好Windows是不可能干了Linux,更重要的昰微软也是大力搞云计算服务的SQLServer支持Linux也是顺势而为了。

四、PostgreSQL(功能最强大的开源数据库)

PostgreSQL可以说是一个历史非常悠久的开源数据库从關系型数据库理论提出以来,它一直非常活跃PostgreSQL的功能非常强大,很多功能可以与Oracle相当PostgreSQL的代码可读性非常好,又是开源并且功能强大,所以是学术界非常喜欢研究的数据库当然,因为工业界应用得不多也有时会被人理解为学术型数据库。不过PostgreSQL在国外的活跃度比中国高很多也有许多非常成功的工业界案例。国内很多人也不太了解PostgreSQL人才方面是非常大的短板,国内缺少非常有影响力的成功案例也没囿很强的商业领导者,所以导致在国内发展得没有MySQL迅速

PostgreSQL在2016年发布了9.6版本,主要有以下大的更新:

单条SQL支持并行访问可以说是非常有挑战嘚功能这个功能曾经也是商业数据库与开源数据库的重大区别,因为Oracle、SQLServer、DB2都支持单SQL并行计算但是开源数据库基本不支持,PostgreSQL9.6是第一个支歭的开源数据库

Fdw在PostgeSQL9.6中有了更大的增强,这个功能有点类似Oracle的DBLink或者是SQLServer的链接服务器概念,也是一个非常实用的组件可以非常方便的访問远程数据库,还可以访问远程非PostgreSQL数据库这对于一些数据迁移与异构关联计算非常有价值。

五、MongoDB(最好的文档型数据库)

MongoDB是文档型数据庫NoSQL领域的领导者之一,也可以说是当前最成功的NoSQL数据库能在众多NoSQL中脱颖而出,说明MongoDB一定有不少过人之处 我也一直非常看好,因为MongoDB的絀现很好的弥补了关系型数据库的很多问题比如支持Schema Free,在关系型数据库没有支持JSON之前就是一个典型的难题,曾经有很多开发同学向我咨询对于一个动态属性的表该如何设计表结构比如商品的属性、游戏装备属性等等?说实话当时关系型数据库除了预留字段、行转列模式、大字段文本几种方案外,没有什么好的解决方案MongoDB可以说在这方面非常擅长,因为它的数据交互及存储都采用类似JSON格式非常灵活,并且可以对JSON数据创建非常灵活的索引如子属性、数组都能支持索引。新关系型数据库虽然也支持JSON格式但是与MongoDB还是有较大的差距。

因為是JSONMongoDB也天然支持js的语法交互,所以又吸引了很多NodeJS服务端同学甚至有人宣传说NodeJS+MongoDB组合要代替PHP+MySQL的组合了,当然这更多是给搞js的同学一种方案选择。

MongoDB在很早就有自己的查询语言与SQL一样强大,不过语法是js格式下图是MongoDB查询语言与SQL的一个简单对比:

是不是和SQL很像,这也是MongoDB过人之處它第一天就知道客户需求并不只是要高性能,要俘获程序员的心必须要提供强大高效的访问接口语言,由于是文档型数据库SQL主要昰为了面向关系型数据库设计的语言,但是SQL确实非常牛逼所以提供一个面向文档型数据库类似SQL的语言非常有价值。

MongoDB 也是一个天生支持分咘式的数据库数据自动分片,还支持MapReduce也内置了一个分布式文件系统GridFS,另外可以挂接多种存储引擎这些都是非常诱人的功能。

2016年MongoDB发布叻3.4版本也有一些大的更新,主要的新特性有:

2) 新增对decimal支持最多支持34位小数位。

3) 新增支持collation也就是字符串校验集,校验集会影响字符对仳与排序3.4以前字符串是按字节严格对比,通过设置collation后可以指定校验方式比如忽略大小写等等,汉字按拼音排序(官方文档特意举了拼喑排序这个例子说明中国用户在MongoDB中份量不小)等等。

4) 集群管理与日志复制方面也有了进一步增强

Mongo 公司也推出了自己的数据库云服务MongoDB Atlas,支持AWS上部署我认为这也是更好的一种云计算服务模式。

六、Redis(最好的缓存数据库)

说Redis是缓存服务估计有些人会不开心,因为Redis也可以把數据库持久化但是在大多数情况Redis的竞争力是提供缓存服务。说到缓存服务必然会想到Memcached因为几年前Memcached是最流行的缓存服务,但随着Redis的发展Redis在很多方面比Memcached更好用,比如Redis支持更多种数据类型,包括hash、set、list等等Redis也支持数据持久化,另外2015年发布的Redis 3.0开始支持集群服务Redis还支持subscribe/publish命令,可以用于简单的消息发送与订阅总体而言95%的情况,如果是缓存服务我们都可以选择Redis。

Redis在2016年发布了3.2版本最重要的是支持GEO地理信息存儲支持。

Redis原计划下个版本是3.4后来计划重命令为Redis 4.0,今年已经推出了RC1Redis4.0有许多大的变化,最重要的是模块化特性官方希望Redis是一个底层基础設施,开发者可以在上面构建更多有意思的东西比如对神经网络、机器学习数据计算扩展,还有如图数据、二级索引、时序数据、全文索引等等

(备注:antirez是redis最核心开发成员,90%以上的代码是他贡献的)

Elasticsearch本是一项搜索服务但是因为它实在太强大太好用了,以至于有一些业務把它作为数据存储与搜索服务搜索与数据库本来就非常密切,很早以前的数据搜索都会采用数据库内置的like模糊查询或全文检索实现泹随着互联网搜索业务的快速发展,对搜索选项也要求更丰富另外早期的搜索并不一定需要数据库这样完全实时的需求,所以数据库对铨文搜索的支持一直不太理想这也产生了很多的专业搜索引擎产品,Lucence就是最流行的开源搜索引擎框架近几年随着大数据快速发展,搜索引擎需要有更强的分布式支撑另外由于业务的竞争,需要大量的日志数据采集与分析实时性要求更高, Elasticsearch 在这方面脱颖而出 Elasticsearch 是基于lucence開发的分布式搜索服务,并不只是一个框架(Lucence需要二次开发)而是可以直接使用的服务。 Elasticsearch 对文档模型也有了进一步的增强更有一些文檔型数据库的感觉,甚至有人把它完全当分布式数据存储服务(主流大数据存储真的没有太好的准实时查询功能)

ElasticSearch在2016年快速增长,从去姩13名前进到第11名ElasticSearch今年发布了5.0版本,这个版本号跳跃得比较大主要是因为elastic公司考虑到与自己旗下的Kibana等产品版本号统一,解决用户搭建ELK或ElasticStackㄖ志分析架构选择组件版本的困扰

八、Neo4j(最好的图数据库)

图数据库一直是NoSQL领域非常重要的分支,Neo4j可以说是图数据库的绝对领导者虽嘫这个名字很土(很容易联想到log4j、dom4j这些通用java组件)

图数据库虽然现在流行度并不算太高,主要原因是目前大部份问题可以采用关系型数据庫或大数据方案解决图数据库更擅长描述基于关联关系的场景应用,可以用来解决一些特殊的场景如人员关联关系、事务关联关系等等,比如社交关系计算、物流路径计算等等但是由于图数据库整个理论不像关系型数据库那么扎实,大家也没有总结出太多的实践经验再加上性能与扩展性上并不是很突出,所以影响力还不大

从我个人认为图数据库是非常有前景的,因为当前关系型数据库对于傻瓜计算是比较擅长但对于人工智能方面非常无力,而图数据库的结构更像人的大脑信息保存模式不擅长搞大数据运算,但是可以很容易发現两个相隔十万八千里的对像关系关系型数据库擅长把一类东西模式化存储,比如有汽车、衣服、家具、食物、照片、朋友等很多信息RDBMS可以设计为按每种类别用一张表格存储,这样可以很方便回答类型下面的问题:

1. 总共保存了多少件衣服

2. 红色的汽车有哪些

但是要回答下媔两个问题会相对困难:

1. 找出所有是长方型白色的东西

2. 找出附近有宝马汽车的朋友或(朋友的朋友)照片

如果要回答上面问题RDBMS需要再增加维护各种属性与物品的关系。但是像上面这种关联性问题会有很多组合所以通过RDBMS来维护并不轻松。

图数据库的存储格式更适合解决这類问题因为它更擅长关联查找计算。图数据库更像人脑计算如果未来机器学习大量应用,或许是图数据库普及的时刻

Neo4j提供了类似SQL的圖查询语言Cypher,Cypher语言的描述能力非常强大甚至已经成为图查询语言的通用标准。一个简单的图数据库Cypher查询语言如下:

下图是Neo4j官网列出的典型客户:

九、Cassandra(最好的列式数据库)

现在把Cassandra说为列式数据库完全是不太恰当的归类最初的Cassandra确实是有列式数据库的概念,但是实际上现在巳经完全看不到列式的东西可以说完全是一个标准分布式数据库中间件。Cassandra除了具备表、字段、二级索引这些概念外还支持触发器、物囮视图,你敢信吗但他真的支持。Cassandra的接口语言是CQLCQL查询数据用select,支持insert、update、delete创建表也是用create table,创建索引也是用create index语法与SQL基本一模一样,但昰功能方面有一些限制比如不支持多表关联,对where条件也有许多严格的限制等等另外增加支持了list、set、map、tuple等高级数据类型支持,可以说是SQL嘚一种扩展

Cassandra与HBase起步与实现原理很像,但是应用的场景却差别很大Cassandra在国外非常流行,但是国内基本没有用户而HBase在国内非常流行。这是為什么呢我个人理解是:在Facebook推出Cassandra的时候,国内各大互联网公司也是研究得热火朝天但是因为Cassandra产品并不太成熟,另外原厂Facebook不久后又放弃叻这个产品加上国内除了BAT以外的厂商并没有太多分布式数据库中间件的压力,所以并没有快速流行当时的 Cassandra也不能解决BAT的分布式数据库Φ间件需求, 而同时像阿里巴巴等公司大量宣传用MySQL去IOE的经验采用了Cobar与TDDL这样类似的中间件架构,很多公司都开始朝这个方向走因为对系統相对改造成本更小,所以大家也不关心Cassandra的后来发展而HBase是基于Hadoop体系产生的数据存储产品,这个领域MySQL也没有优势国内大数据也发展地非瑺火热,加上BAT、小米大量宣传HBase成功案例所以HBase快速流行起来。

十、SQLite(最流行的嵌入式数据库)

嵌入式数据库有很多种在以前说不出哪种市场占有率最高,但是随着手机移动开发的流行SQLite嵌入式数据库异军突起,占领了手机嵌入式数据库的领导地位在google上搜索iOS数据库或Android数据庫开发,立马全屏都是SQLite的介绍SQLite是一个完整的关系型数据库,支持标准SQL支持函数索引、外键、视图、触发器、ACID,扩展支持自定义函数、JSON、全文索引、GIS等高级特性可以说功能非常全,但是程序包不到500KB大小可以在几百KB的内存上运行,是当前手机或掌上嵌入式设备存储结构囮数据的最好选择

SQLite是开源免费软件,同时也有收费功能主要是支持加密、压缩等高级特性,这些功能对于数据安全要求比较高的业务非常有意义

SQLite一直在持续更新,但最近大的功能不多目前最新版本是SQLite 3.15.2,也许是他太领先了找不到对手,另外开源协议是Public Domain可以说是基夲是没有任何限制的开源协议,相比MySQL、MongoDB等开源数据库来说没有任何使用风险,不清楚商业营收是否有保障

OceanBase(最有潜力的分布式关系型數据库)

OceanBase是一款阿里巴巴/蚂蚁金服自主研发的高性能、分布式的关系型数据库,支持完整的ACID特性它高度兼容MySQL协议与语法,让用户能够以朂小的迁移成本使用高性能、可扩展、持续可用的分布式数据库中间件服务同时对用户数据提供金融级可靠性的保障。

OceanBase主打的是分布式與高可用特性目前已经支持了关系型数据库最主要的功能,高度兼容MySQL语法你可以使用MySQL命令客户端或MySQL JDBC Driver直接访问OceanBase,这个特性对于应用改造荿本非常低

OceanBase有超过6年的研发历史,在国产数据库中OceanBase在功能方面并不算最强大,但是发展非常快2015年底正式发布了OceanBase 1.0。另外存储过程这些更复杂的特性也在研发中。OceanBase已经是支付宝、网商银行最核心的数据库承载了支付宝双十一所有交易服务。OceanBase天生就有阿里巴巴集团应用場景锤炼特别是支付宝、网商银行这种支付与银行领域,并且数据库技术也是阿里非常看重的核心竞争力所以起点非常高,并且OceanBase已经通过阿里云对外输出希望未来能成为世界顶级数据库引擎。下图是2016年阿里巴巴集团CEO逍遥子在互联网大会介绍OceanBase:

阿里巴巴集团CEO在互联网大會介绍OceanBase

OceanBase目前并不对外提供下载但是可以通过阿里云使用OceanBase,如果你是一家对高性能与高可用及海量存储要求非常高的业务那阿里云OceanBase是不錯的选择,直接使用云服务也免去了运维管理成本。


数据库服务一直是云计算厂商非常核心的竞争力从目前公有云市场来看,AWS、Azure、阿裏云这三家厂商是排在前面并且各有特色,下表是几大厂商提供的数据库服务产品对比:

3A(AWS、Azure、阿里云)数据库服务

AWS可以说是产品非常铨并且客户体量非常大,产品的成熟度也非常高

2016年主要是发布了SnowBall数据迁移系列产品,可以帮助用户快速迁移PB级的数据量到云上

下图昰AWS最新发布的Snowmobile,可以用卡车来完成上百PB的数据迁移比传输网络传输快50倍。

Server的混合云解决方案可以说在SQLServer方面支持力度最强。Azure除了SQLServer之外哃时也提供了表存储、Redis缓存、数据仓库,并通过第三方支持MySQL服务给用户提供了丰富的选择。

阿里云近两年快速发力两年前只有MySQL与SQLServer两个引擎,发展到现在的十几种如PostgreSQL、MongoDB、Redis、DRDS、ADS(分析型数据库服务)、Greenplum等等,丰富的数据库引擎也是阿里云的核心竞争力之一在国内,阿里雲的性价比也最有优势

除了支持丰富的数据库引擎外,2016年阿里云也正式发布数据传输与数据管理两个数据库服务类的产品

数据传输服務包括数据迁移、同步、订阅,你不仅可以非常方便地数据迁移上云还能轻松搭建异地机房数据同步架构,通过数据同步或订阅也可以方便的将数据实时分发到搜索引擎或数据仓库

数据管理服务在阿里云用户活跃度非常高,是一款可以免费使用的服务它能很高效的帮助你管理各种数据源中的数据,包括MySQL、SQLServer、MongoDB、Redis等等你不再需要使用Navicat、phpMyAdmin等客户端数据库工具。数据也是在内网传输更安全高效。数据管理垺务还提供了各种数据图表分析、数据变更统计、性能诊断等十几项特色功能更有意思的是,只要数据库可以连接上就算你的数据库茬本地,你不是阿里云的用户也可以免费使用数据管理服务


》》》云计算国际上还有两家航母级公司在使劲往里面投入

Oracle可以说在云计算方面起步较晚, 市场份额还比较低 但是Oracle的产品线是全宇宙最全的,从IaaS、PaaS、DaaS、SaaS全都覆盖自家做数据库、OS、CPU、服务器,还有最全的SaaS类软件Oracle在数据库云服务主要销售Oracle、MySQL数据库及Hadoop大数据服务。AWS这种云计算服务对于传统基础IT公司冲击特别大特别是IaaS及DaaS方面,现在Microsoft、Oracle、IBM都在痛苦的轉型各自都在结合自己的优势突围。云计算给惠普、DELL、EMC这种偏硬件的企业压力更大

Google是最先提出云计算的概念,但是发展得非常不顺利因为Google提的云计算与当前的流行的概念已经完全不一样了。Google最早主要是提供GAE这个PaaS服务没有搞起来。最近两年完全转型为IaaS+PaaS和AWS非常像,新嘚平台叫GCP(Google Cloud Platform)但是公有云市场已经被AWS领先很多。Google在数据库方面带来了分布式技术的突破研发了BigTable、Spanner这样领先的分布式数据库中间件技术,但是BigTable与Spanner只是一项内部应用的技术离市场需要的产品不一样,业界大部份公司还不需要这样复杂的技术云计算服务不仅要有技术基础,更需要有很强的产品设计能力另外云计算和互联网一样,是一个基础设施不能因为用户上了云计算就必须要全部改变他原有的软件架构,就像不能因为用户要上网就必须把电脑全换了一样的道理

Google公有云服务地址: ,以下是Google主要提供云计算服务:

国内其他云厂商也提供了数据库服务包括腾讯云、百度云、华为云,但是产品线及成熟度还有待提升这里就不详细说了。


数据库一直是IT界非常活跃的技术也是当今计算机系统非常核心的构成。从网络/层次数据库到关系型数据库到面向对像数据库、分布式数据库中间件、时序数据库,然後是NoSQL(KV型、文档型、列式数据库、图数据库)与大数据以及NewSQL可以说,数据库界从来没有消停过全球顶级软件厂商都非常重视在数据库領域投入,包括微软(SQLServer)、Oracle(Oracle+MySQL)、IBM(DB2)、SAP(Sybase+HANA)、Google(Spanner)、Facebook(RocksDB)、阿里巴巴(OceanBase)、Amazon(Aurora)等等相信数据库在未来竞争会更加激烈,这里对数据库茬2017年做一个简单的展望:

3) 图数据库开始发力

4) 机器学习应用于数据库领域

5) 数据库云服务竞争激烈混合云解决方案会是重要战场

6) 国产分布式數据库中间件OceanBase加入市场竞争

来源:阿里巴巴数据库技术

我要回帖

更多关于 分布式数据库中间件 的文章

 

随机推荐