11.3 应用
OceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,OceanBase具有如下优势:
●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。
●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,从而简化应用。
●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。
如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、大表左连接、数据过期,那么,OceanBase的优势会更加明显。
当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文件系统,比如Taobao File System、HDFS中。
本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用情况。
11.3.1 收藏夹
图11-6展示了淘宝某用户的收藏夹。
图 11-6 淘宝某用户收藏夹
收藏夹属于典型的OLTP业务,主要功能如下:
●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。
●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。
10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。