`
m2000hsf
  • 浏览: 99673 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统[转载]

阅读更多
[文章作者:张宴 本文版本:v1.0 最后修改:2009.01.21 转载请注明原文链接:http://blog.s135.com/post/394/]

  key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。如果辅以Real- Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。而MySQL,在几百个并发连接下,就基本上崩溃了。

  虽然key-value分布式存储具有极高的性能,但是只能做类似于MySQL的SELECT * FROM table WHERE id = 123;简单主键查询。

  “搜索索引引擎+key-value分布式存储”能够实现高并发的复杂条件查询、全文检索与数据显示。但是,由于索引更新需要时间,目前还不能实现完全意义上的Real-Time Search(实时搜索),只能称之为Near Real-Time Search(准实时搜索)。“搜索索引引擎+key-value分布式存储”除了做全文检索外,还可以在允许的索引延迟范围内,取代MySQL进行复杂条件查询。

  我的文章《亿级数据的高并发通用搜索引擎架构设计》的程序编码已经完成,第一轮测试昨天已经结束,能够在高并发情况下实现1分钟内索引更新,属于“Near Real-Time Search Engine(准实时搜索引擎)+key-value分布式存储”应用。其中,索引引擎采用Sphinx,存储采用key-value分布式数据库Tokyo Tyrant。

  以下是常见的key-value分布式存储系统:  

  其中,以下几款值得关注:

  1、Hypertable:它是搜索引擎公司Zvents根据Google的9位研究人员在2006年发表的一篇论文《Bigtable:结构化数据的分布存储系统》开发的一款开源分布式数据储存系统。Hypertable是按照1000节点比例设计,以 C++撰写,可架在 HDFS 和 KFS 上。尽管还在初期阶段,但已有不错的效能:写入 28M 列的资料,各节点写入速率可达7MB/s,读取速率可达 1M cells/s。Hypertable目前一直没有太多高负载和大存储的应用实例,但是最近,Hypertable项目得到了百度的赞助支持,相信其会有更好的发展。
  点击在新窗口中浏览此图片
  2、Tokyo Tyrant:它是日本最大的SNS社交网站mixi.jp开发的 Tokyo Cabinet key-value数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换。对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。Tokyo Tyrant 具有故障转移、日志文件体积小、大数据量下表现出色等优势,详见:http://blog.s135.com/post/362.htm

  Tokyo Cabinet 2009年1月18日发布的新版本(Version 1.4.0)已经实现 Table Database,将key-value数据库又扩展了一步,有了MySQL等关系型数据库的表和字段的概念,相信不久的将来,Tokyo Tyrant 也将支持这一功能。值得期待。
  

  3、CouchDB:它是Apache社区基于 Erlang/OTP 构建的高性能、分布式容错非关系型数据库系统(NRDBMS)。它充分利用 Erlang 本身所提供的高并发、分布式容错基础平台,并且参考 Lotus Notes 数据库实现,采用简单的文档数据类型(document-oriented)。在其内部,文档数据均以 JSON 格式存储。对外,则通过基于 HTTP 的 REST 协议实现接口,可以用十几种语言进行自由操作。
  

  4、MemcacheDB:它是新浪互动社区事业部为在Memcached基础上,增加Berkeley DB存储层而开发一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,它仍旧是个Memcached,但是,它的数据是可以持久存储的。

  

<!---搜索  -->

<style type="text/css">
@import url(http://www.google.com/cse/api/branding.css);
</style>
<div class="cse-branding-right" style="background-color:#000000;color:#FFFFFF">
  <div class="cse-branding-form">
    <form action="http://www.google.com/cse" id="cse-search-box">
      <div>
        <input type="hidden" name="cx" value="partner-pub-1594701811387501:ugi9stv3ucv" />
        <input type="hidden" name="ie" value="GB2312" />
        <input type="text" name="q" size="100" />
        <input type="submit" name="sa" value="&#x641c;&#x7d22;" />
      </div>
    </form>
  </div>
  <div class="cse-branding-logo">
    <img src="http://www.google.com/images/poweredby_transparent/poweredby_000000.gif" alt="Google" />
  </div>
  <div class="cse-branding-text">
    &#33258;&#23450;&#20041;&#25628;&#32034;
  </div>
</div>
分享到:
评论

相关推荐

    memcached-win64-1.4.4-14.rar

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。 Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等...

    Memcached参考手册中文CHM版最新版本

    Memcached是一个自由开源的系统,由Danga Interactive公司的Brad Fitzpatrick领导开发,现已成为包括mixi、hatena、Facebook、Vox、LiveJournal在内的众多服务中提升Web应用扩展性的关键组件。 Memcached作为一种...

    Tokyo Cabinet Key:Value数据库及其扩展应用

    《Tokyo Cabinet Key-Value数据库及其扩展应用》 在应对现代Web 2.0应用程序的高并发和大数据量需求时,传统的MySQL数据库遇到了性能瓶颈。单表记录数的增长导致查询效率降低,而读写分离模式在面对大量写操作时...

    基于MemCache的分布式扩展算法.pdf

    MemCache的分布式原理在于,它允许多台服务器共享内存空间,形成一个分布式存储网络。当客户端请求数据时,会根据特定的分布算法决定数据存储在哪个服务器上。常见的分布算法有哈希一致性(Consistent Hashing)、...

    Memcached分布式缓存

    - **TokyoTyrant案例**:TokyoTyrant是一个开源的高性能key-value存储系统,它可以与memcached兼容,提供更强大的功能。 #### 总结 Memcached作为一款高性能的分布式缓存系统,在现代互联网应用中扮演着至关重要的...

    Laravel开发-mixi

    $accessToken = $mixi-&gt;getAccessToken(); // 存储access_token和refresh_token到数据库或其他持久化存储 } catch (\Exception $e) { // 处理错误情况 } }); ``` 一旦获取到访问令牌,你可以通过Mixi API访问...

    国内外知名SNS开源介绍

    ### 国内外知名SNS开源系统介绍 #### SNS概述 SNS(Social Network Service),即社交网络服务,是一种旨在帮助人们建立社会性网络的互联网应用服务。SNS平台不仅促进了用户之间的交流与互动,还提供了多样化的...

    Memcached 内存分析、调优、集群

    与其他Key-Value存储系统相比,Memcached在集群部署、性能等方面表现出色。例如,在集群方面,Memcached支持通过一致性哈希进行数据分布;在性能方面,Memcached通常具有更快的响应时间和更低的延迟。 #### 6. ...

    Memcached内存分析、调优、集群.ppt

    与Redis等其他key-value系统相比,Memcached专注于高速缓存,适合短期存储热数据,而Redis提供更丰富的数据结构和持久化功能。在集群和性能方面,两者各有优势,具体选择取决于应用场景的需求。 【总结】 ...

    memcached全面剖析.pdf

    - TokyoTyrant是一款由mixi工程师开发的兼容memcached协议的键值存储系统,具有更高的性能和稳定性。 - TokyoTyrant可以在某些场景下作为memcached的替代品。 综上所述,memcached作为一种强大的缓存解决方案,在...

    Mixi-D+Toolbar.exe.dat

    Mixi-D+Toolbar.exe.dat

    高性能高并发服务器架构.pdf

    - 视频存储与分发: 采用了高效的数据存储方案以及内容分发网络。 - 数据库管理: 采用了分布式数据库技术和数据分片策略。 - **eBay的架构优化**: - 数据量处理: eBay通过分区和分片技术有效地处理了巨大的数据量...

    高性能高并发服务架构.doc

    - **Memcached**:分布式内存对象缓存系统,广泛应用于大型网站,如Facebook、Yeejee、mixi。 - **Squid**:高性能的代理缓存服务器,常与Memcached配合使用。 - **Apache Deflate**:压缩模块,减少传输数据量,...

    Memcached内存分析、调优、集群.pdf

    与其他key-value存储系统相比,Memcached在性能方面具有明显优势。它通常在低延迟和高吞吐量的应用场景下表现突出。然而,在持久化存储和复杂查询方面,Memcached可能不如其他系统(如Redis或Cassandra)。 #### 五...

    收集的大型网站架构实例

    Mixi作为日本最大的社交网络,其CTO Batara Kesuma在分享中提到了如何利用开源工具进行向外扩展。Mixi的核心挑战在于如何有效地管理MySQL数据库的扩展,以应对不断增长的数据量。他们采用了数据库切分...

    memcached完全剖析

    它作为一种高性能的分布式内存对象缓存系统,被广泛应用于mixi、hatena、Facebook、Vox、LiveJournal等众多大型网站中,显著提高了这些应用的可扩展性和响应速度。 ##### **1.1 Memcached的作用** 随着Web应用的日...

    memcached全面剖析.docx

    $mc-&gt;set('key', 'value'); # 获取数据 my $data = $mc-&gt;get('key'); # 删除数据 $mc-&gt;delete('key'); ``` **深入理解 memcached** 除了基本的存取操作,memcached 还支持设置数据过期时间、批量操作等高级特性...

    Memcached 原理和使用详解

    5. **分布式存储**:数据分布在多个服务器上,通过键值对的方式实现数据的定位和分发,每个实例独立管理自己的数据。 **安装与使用** 安装Memcached通常涉及以下几个步骤: 1. 下载源码包,解压。 2. 配置编译环境...

    高性能高并发服务器架构

    - 动态Cache服务器:Memcached作为分布式缓存服务器,在Facebook、Yeejee和Mixi等大型网站中广泛应用,用于缓存热点数据,减少数据库的直接访问压力,提升响应速度。 2. **负载均衡技术**: - 负载均衡通过分发...

Global site tag (gtag.js) - Google Analytics