• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
关于云计算利器Oracle NoSQL Database初体验简介
发布日期:2016-3-24 11:3:1
 

  关于云计算利器Oracle NoSQL Database初体验简介

  在过去几年里,NoSQL数据库的世界里不断涌现出各种新项目,我们时常听到雄心壮志的吹鼓手们拍着胸脯保证他们的新的NoSQL应用是如何打破了所有的旧框架,可以带来难以想象的性能。实际上呢,有些言过其实了,NoSQL依然不能进入华尔街,就算是新潮的开发者们也只敢把它用在那些人们生活中的无关紧要的琐碎数据上。但是,老式的表式结构确实局限性太大了,如果能够抛弃掉这些,数据库的速度能够得到飞速的提高。

  Oracle NoSQL Database产品发布的消息可能会让NoSQL的粉丝们有些吃惊,但实际上Oracle已经悄悄的在这条路上走了一段时间了。五年前,Oracle买了SleepyCat Software,这家企业就是当初的开源Berkeley DB的初创者,Berkeley DB在当时就凭借灵活的Key-Value存储模式而出名,而Berkeley DB的技术据说就是Oracle NoSQL Database的核心,虽然看上去是完全重写了一遍。

  正在这时,Oracle这个一贯开发顶级的防弹SQL数据库的专家带来了它的NoSQL数据库服务器,实用、坚固,标准的Oracle风格。疯狂的梦想家们会继续编写NoSQL的新项目,但严肃的人会仔细的关注一下Oracle的产品,因为它不仅带来了NoSQL中那些令人兴奋的功能,与此同时,也符合严格的大型工程的大手笔,不禁让人肃然起敬。

  一、Oracle NoSQL:完全的ACID

  Oracle NoSQL中最有趣的地方就是Key-Value结构。不用再去定义大纲或者把自己锁在表格架构里,只需要创建关键字,然后把数据关联给它们就行了。你可以给关键字连上一个图像文件,也可以连上一个字符串,什么都行,数据库接受字节码,不理会内容是什么。

  Oracle把关键字分为主次两个部分,你可以认为主部分是对象的指针,次部分是记录的各种字段。比如说,你可以把住址和邮编等等其他的字符串放在次部分里,而把姓名和社会保障卡号放在主部分里,这和一些NoSQL工具使用一个对象多个字段的做法不同。

  关于Oracle NoSQL是不是真正提供ACID遵从还有不少争论,但Oracle NoSQL确实能够做出这样的承诺。

  Oracle NoSQL中重要的地方是针对ACID遵从而做的近似工程,这让Oracle NoSQL达到了SQL数据库所能够提供的严格标准。ACID的意思是“Atomic,Consistent,Isolated,Durable transactions”,指的是严密、持续、隔离并且耐用的交易处理。而大多数的NoSQL系统走的是另一条路:BASE,“Basically Available, Soft State, and Eventually Consistent”,也就是保证基本可用性,柔性事务处理,保证最终结果的一致性。换而言之,强调结果不强调过程。

  二、最终结果一致性:争论

  这里有个问题可以提一下,耶鲁大学的计算机科学教授Daniel Abadi在博客上质疑说在某些情况下,Oracle的NoSQL向主服务器写入的关键字匹配会丢失,比如说,如果主服务器宕机同时复制服务器又没有准备好。很快哈佛大学的计算机科学教授Margo Seltzer(我们知道她现在是Oracle的员工,她参与创建了Sleepycat)发表了回应,她认为这并不是Oracle NoSQL的问题,如果要达到真正意义上的“最终结果一致性”,数据中心需要在准备好复制服务器的前提下才开始写入数据。显然想要这个争论得出结果可能会比一年一度的这两所大学之间的足球赛更难些。

  当然这些争论不是我感兴趣的,为了测试Oracel NoSQL的速度,我特意找了台低端的Mac配置。我开启了单点NoSQL服务器,然后往里面塞入358400条长度都大约30的字符串关键字。在这台老掉牙的Mac上,Oracel NoSQL一共用了119秒。

  为了对比一下,我把相同的记录插入最新版的Voldermort数据库,在这个LinkedIn症状使用的开源Java NoSQL数据库上,用掉的时间是180秒。

  我对这个简单的测试结果感到非常的高兴,Oracel NoSQL似乎领先了不少。创建关键字需要建立字符串数组,而对象的实例化经常成为Java的瓶颈,在这个测试中Oracel NoSQL似乎没有碰到这方面的问题。

  总的来说,Oracle NoSQL非常值得你去试一试。因为它来自这样一个严谨的数据管理厂商,它又提供了这么多严谨的功能。