IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

细数运行在微软平台上的NoSQL数据库

2010年08月18日
网络/网络

从可查询的分布式解决方案,如MongoDB,到简单的分布式Key/Value存储解决方案,如 Cassandra。此外,还有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前仅有少量的NoSQL项目支持在Windows平台上运行,如果要说到生产应用 那就更少了。

Memcached

Memcached传统上认为它不属于NoSQL的范畴,而是一个分布式Key/Value内存缓存解决方案,它可以用来存储各种各样的临时数据集,存储方式和其它NoSQL数据库解决方案没有什么差别。

NorthScale提供了适合于32位和64位Windows平台的Memcached程序包,可从这里免费下载。

MongoDB

MongoDB是一个基于文档(JSON风格)的数据存储引擎,通过它的自动分片功能可实现良好的水平 扩展能力,它使用了一个简单但功能很强大的基于JavaScript/JSON的查询语言,提供了快速插入和更新能力,主要归功于它的低开销原子修改程 序。此外,使用Map/Reduce实现了跨多个MongoDB数据库聚合和数据处理。

MongoDB背后的10Gen公司前不久正式宣布了对Windows平台的支持。MongoDB目前的最新版本是1.6.0,许多大型Web站点现在都在使用它。关于MongoDB Windows版本的更多信息请移步这里,对应的版本可从这里下载。

sones GraphDB

sones GraphDB是一个企业图形数据存储引擎,它使用C#语言开发,并且是开源的,对于非商业目的可以免费下载,但如果用于商业目的则需要购买商业许可。

图形数据库和我们常说的NoSQL数据库存储方式是不同的,它们更善于处理一类特定的问题:数据集包含了大量的关系,需要快速高效地遍历这些关系。

图形数据库一个常见的用例就是用来存储社交关系或社交图,通常,这些社交图由许多节点组成,节点之间存在许多独立的关系,这是传统关系数据库很难处理好的问题域。如果你对sones GraphDB感兴趣,可从这里下载它的源代码,更多信息请访问该项目的官方网站。

Voldemort

Voldemort是一个分布式Key/Value存储系统,LinkedIn用它解决了网站的高扩展 性存储问题,简单的分区功能已经不能满足LinkedIn的需要。Voldemort使用Java编写,因此借助Java的跨平台特性,它也可以运行在 Windows平台上。请阅读这篇文章了解如何在Windows平台上安装Voldemort。

NoSQL项目机会

对于Microsoft世界来说这是一个激动人心的时刻,但目前Microsoft阵营采用NoSQL的节奏还非常慢,因对机会也比较多,如果能开发出优秀的NoSQL托管存储解决方案,一定会很受欢迎。

ESENT分布式数据存储

关于ESENT,我能想到最恰当的比喻是,它是Microsoft世界的BerkeleyDB,鲜为人知,很少有.NET开发人员使用它,但它的性能和可靠性已经经受住了时间的考验。

ESENT是一个原生支持Windows的嵌入式数据库引擎,它是CodePlex上的一个托管项目,最新的Windows版本已经内置了esent.dll。

我做了一些测试,它的速度真是太快了,每秒可以执行大约10万次插入操作,够变态吧。关于性能的更多统计数字请看这里。

内存字典式分布式数据存储

内存字典式分布式数据存储和ESENT有点类似,但不同的是它的数据完全存储在内存中。他可以作为分布 式缓存的基础,也可以跨一系列节点复制数据而实现持久化,任何时间只要有一个节点可用,数据都是可以访问的,Amazon或其它基于云的非持久化服务器解 决方案可以完美地实现托管,我是这种解决方案的坚决支持者。

最后的想法

对.NET开发人员来说,使用NoSQL解决方案目前还有一些限制,但随时间的推移,肯定会有越来越多的NoSQL解决方案可供选择,作为一名.NET开发人员,我们也应该参与到这些项目中去,以期早日解决现在存在的问题,这也是.NET开发人员的一次难得的机会。

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

哪些企业真正需要系统具备横向扩展能力
哪些企业真正需要系统具备横向扩展能力在此之前,你可能没有考虑过你的IT部门需要一个横向扩展(也称向外扩展)系统。在如...
DB2 10新功能:从Oracle迁移更容易
DB2 10新功能:从Oracle迁移更容易这里就有一些: 局部类型 此功能允许PL/SQL和SQL PL块在BEGINEND块中定义局部类型...

本类热点