note: NoSQL

2010100520:41
memcached 這一波應該是 NoSQL 風潮的始祖吧
官網:http://memcached.org/
memcached  是分散式的記憶體快取程式,由 Danga Interactive 公司於 2003 開發,用於他們的產品:LiveJournal
後來以 BSD license 授權釋出

依據 2008年 Facebook 的網誌,Facebook 用了 800台server、28T 的記憶體在服務


NoSQL 相關

了解NoSQL的必读资料 2010-01-12
NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与 ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。
当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而 NoSQL 存储就是为了实现这个需求


反NoSQL的呼聲 2010-03-16


NoSQL資料庫知識圖 2010-02-11
整理 NoSQL 的不錯的資料


NoSQL資料庫筆談v0.2 2010-02-24
本書寫了一些目前的NoSql的一些主要技術,演算法和思想。同時列舉了大量的現有的資料庫實例。讀完全篇,相信讀者會對NoSQL資料庫了解個大概。
另外我還準備開發一個開源內存資料庫galaxydb.本書也是為這個資料庫提供一些架構資料。


[CSDN]NoSQL会取代SQL数据库吗? 2010-03-30
最近有Twitter、Digg和Reddit等多家Web 2.0企业宣布从MySQL转而使用非关系型数据库(NoSQL)提供可伸缩的数据存储解决方案,引起了开发者对NoSQL的强烈关注。

NoSQL真的会完全取代关系型数据库吗?

对此,前Google工程师,Milo(本地商店搜索引擎)创始人Ted Dziuba最近发表标题惊人的博客“I Can't Wait for NoSQL to Die”,对NoSQL的适用范围进行了分析。他认为,NoSQL也会带来一连串的新问题,并不会成为主流,无法取代关系型数据库



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


NoSQL解決資料庫暴量的新方法| 技術專題| iThome online 2010-09-20
在臺灣,開發社交遊戲的力可科技,因為關聯式資料庫無法應付每日2GB的資料量增長,而改採NoSQL資料庫來解決資料庫寫入暴量的問題。NoSQL儼然成為資料庫的一股新威力 




memcached

Memcached深度分析(原创)
 2009-02-11
本文意在通过对memcached的实现及代码分析,获得对这个出色的开源软件更深入的了解,并可以根据我们的需要对其进行更进一步的优化。末了将通过对BSM_Memcache扩展的分析,加深对memcached的使用方式理解。



Cassandra

Cassandra成为Apache顶级项目
Apache基金会副总裁Matthieu Riou近日在邮件列表中宣布,开源分布式数据存储系统Cassandra日前正式成为Apache顶级项目。
Cassandra最初由Facebook开发,以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。很多方面都可以称之为Dynamo 2.0。


Digg采用Cassandra遭遇滑铁卢,工程副总裁去职 2010-09-08
在今天发布的一段视频中,Digg首席执行官凯文·罗斯(Kevin Rose)解释了Digg网页的一些技术问题,以及Digg网页为何不能返回到原先的架构。新版的Digg网站设计,也就是Digg v4是基于分散式数据库Cassandra,取代了原先的MySQL数据库。


Twitter停用Cassandra原因分析--转载 2010-08-04




memcachedb

memcachedb的性能测试 2008-01-24
memcachedb故名思义就是 memcached + bdb,是基于memcached Socket层和berkeley-db存储层结构的实现, 是新浪互动社区技术团队2007年的一项重大的技术成果,现在应用于新浪互动社区多个产品线中,其中包括新浪博客等重头产品。能够实现任意 memcache api的调用、数据实时落地以及主辅实时备份。



Tokyo Cabinet

Tokyo Cabinet Key-Value数据库及其扩展应用PPT[原创] 2010-04-03
张宴 / 以下是我4月2日在“2010年数据库技术大会”的演讲PPT,介绍了 Tokyo Cabinet Key-Value 数据库的性能优化关键参数,以及金山逍遥网在Tokyo Cabinet基础上实现的TCSQL实时列表缓存数据库(Version 1.3)。




2010-11-21

Memlink
memlink官網:http://code.google.com/p/memlink/wiki/Introduce
天涯社区 (提供博客、相册、个人空间等服务) 开发了一款数据引擎

Memlink是一个高性能、持久化、分布式的Key=>List/Queue数据引擎。正如名称中的Memlink所示,所有数据都建构在内存中,保证了系统的高性能(读性能大约是Redis几倍到十倍),精简内存(内存消耗大约是Redis的1/4),使用了redo-log技术保证数据的持久化。此外,Memlink还支持主从复制、读写分离、数据项过滤操作等功能。

特点:

  • 内存数据引擎,性能极为高效
  • List中的Node采用块链组织,精简内存,优化查找效率
  • Node数据项可定义Mask表,支持多种过滤操作
  • 支持redo-log,数据持久化,非Cache模式
  • 分布式,主从同步
  • 读写分离,写优先处理。
有提供
memlink的C,PHP,Python,Java客户端API介绍

MemLink详细设计文档



Membase
http://www.membase.org/downloads
可以从单节点方便的扩展到集群,而且为memcached(有 线协议的兼容性)实现了即插即用功能,在应用方面为开 发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。

特性:

  • 自动将在线数据迁移到低延迟的存储介质的技术(内存,固态硬盘,磁盘)
  • 可选的写操作一一异步,同步(基于复制,持久化)
  • 反向通道再平衡[未来考虑支持]
  • 多线程低锁争用
  • 尽可能使用异步处理
  • 自动实现重复数据删除
  • 动态再平衡现有集群
  • 通过把数据复制到多个集群单元和支持快速失败转移来提供系统的高可用性。


2011-02-18 補

Google公开Megastore论文——解决NoSQL、SQL融合难题
http://cloud.csdn.net/a/20110211/291587.html
作为一个建立于Bigtable之上的分布式存储系统,Megastore已经被谷歌使用了数年。Google在2008年的SIGMOD大会上就已经开 始讨论它了,但相关技术信息直到最近才被公布,在上个月举行的创新数据系统研讨会上(CIDR),Google公开了其Megastore分布式存储技术 的白皮书。



Google Megastore分布式存储技术全揭秘
http://cloud.csdn.net/a/20110216/291968.html
Megastore是谷歌一个内部的存储系统,它的底层数据存储依赖Bigtable,也就是基于NoSql实现的,但是和传统的NoSql不同的是,它 实现了类似RDBMS的数据模型(便捷性),同时提供数据的强一致性解决方案(同一个datacenter,基于MVCC的事务实现),并且将数据进行细 颗粒度的分区(这里的分区是指在同一个datacenter,所有datacenter都有相同的分区数据),然后将数据更新在机房间进行同步复制(这个 保证所有datacenter中的数据一致)。



2011-02-27 補

Redis几个认识误区
http://timyang.net/data/redis-misunderstanding/
如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。Redis是REmote DIctionary Server的缩写,在Redis在官方网站的的副标题是A persistent key-value database with built-in net interface written in ANSI-C for Posix systems,这个定义偏向key value store。还有一些看法则认为Redis是一个memory database,因为它的高性能都是基于内存操作的基础。另外一些人则认为Redis是一个data structure server,因为Redis支持复杂的数据特性,比如List, Set等。对Redis的作用的不同解读决定了你对Redis的使用方式。


Redis容量及使用规划

http://timyang.net/data/redis-capacity/



Redis新的存储模式diskstore
http://timyang.net/data/redis-diskstore/
Redis作者antirez是一个非常勤奋的开发者,在Redis性能已经非常惊人的情况下持续不断开发新的特性,比如从新的cluster源代码看到,作者已经把Dynamo及Paxos一些核心的思想考虑进去并进行了一些简洁的实现。相比其它产品如Memcached则几年没什么大变化,在Web 2.0时代,Memcached已经非常不够用,技术人员需要考虑做很多额外工作才能让Memcached适应新的变化和需求。


這篇值得參考
用Twitter的cursor方式进行Web数据分页
http://timyang.net/category/web/