OceanBase由如下几个部分组成:
客户端:用户使用OceanBase的方式和MySQL数据库完全相同,支持JDBC、 C客户端访问,等等。基于MySQL数据库开发的应用程序、工具能够直接迁移到OceanBase。
RootServer:管理集群中的所有服务器,子表(tablet)数据分布以及副本管理。 RootServer一般为一主一备,主备之间数据强同步。
UpdateServer:存储OceanBase系统的增量更新数据。UpdateServer一般为一主一备,主备之间可以配置不同的同步模式。部署时,UpdateServer进程和RootServer进程往往共用物理服务器。
ChunkServer:存储OceanBase系统的基线数据。基线数据一般存储两份或者三份,可配置。
Merge Server:接收并解析用户的SQL请求,经过词法分析、语法分析、查询优化等一系列操作后转发给相应的ChunkServer或者UpdateServer。如果请求的数据分布在多台ChunkServer上,MergeServer还需要对多台ChunkServer返回的结果进行合并。客户端和MergeServer之间采用原生的MySQL通信协议,MySQL客户端可以直接访问MergeServer。
淘宝Tair是由淘宝自主开发的Key/Value结构数据存储系统,并且于 2010年6月30号在淘宝开源平台上正式对外开源,在淘宝网有着大规模的应用。用户在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。淘宝将Tair开源,希望有更多的用户能从我们开发的产品中受益,更希望依托社区的力量,使Tair有更广阔的发展空间。
Tair 的分布采用的是一致性哈希算法, 对于所有的key, 分到Q个桶中, 桶是负载均衡和数据迁移的基本单位. config server 根据一定的策略把每个桶指派到不同的data server上. 因为数据按照key做hash算法, 所以可以认为每个桶中的数据基本是平衡的. 保证了桶分布的均衡性, 就保证了数据分布的均衡性。
3. 优酷运营数据分析 – HBase,MongoDB, Redis
优酷作为一家大型视频网站,拥有海量播放流畅的视频。它秉承注重用户体验这一产品技术理念,将绝大部分存储用在视频资源上。通过建设专用的视频CDN,建立了可自由扩展、性能优异的架构,在提供更好用户体验的同时优化了存储资源。在除视频资源外的其它方面,优酷也累积了海量数据:仅运营数据,每天收集到的网站各类访问日志总量已经达到TB级,经分析及压缩处理后留存下来的历史运营数据已达数百TB,很快将会达到 PB级,5年后数据量将会达到几十PB级。
目前优酷的在线评论业务已部分迁移到MongoDB,运营数据分析及挖掘处理目前在使用Hadoop/HBase;在Key-Value产品方面,它也在寻找更优的 Memcached替代品,如Redis,相对于Memcached,除了对Value的存储支持三种不同的数据结构外,同一个Key的Value进行部分更新也会更适合一些对Value频繁修改的在线业务;同时在搜索产品中应用了Tokyo Tyrant;对于Cassandra等产品也进行过研究。
对于优酷来说,仍处于飞速发展阶段,已经在考虑未来自建数据中心,提高数据处理能力,从网站的运营中发掘出更多信息,为用户提供更好的视频服务。