iGraph 2015双促复盘总结

简介:

该文章来自阿里巴巴技术协会(ATA)精选集 

前言

随着2015双促落下帷幕,iGraph在线图存储和查询服务也在全力支撑各项业务的过程中经历了近乎疯狂的成长。随着大家逐渐从 关系的视角来审视我们的数据和业务,iGraph服务所提供的 基于关系的查询服务也开始被大家大量应用到业务逻辑中。iGraph团队也很兴奋地看到iGraph服务中所承载的业务呈现出了爆发式的增长,其中不乏集团的核心业务,比如搜索业务和推荐业务。在这里,我们iGraph团队向所有信任我们的用户,表示最衷心的感谢,是你们的信任和优异的成绩彰显了iGraph团队工作的价值。这一篇文章首先向大家整体介绍iGraph服务目前的发展状况,然后向大家介绍我们在支撑双十一大促业务过程中所做的相关工作。希望这些介绍能够让大家进一步了解iGraph,并能够给我们提出宝贵的意见。

iGraph服务现状

双十一相关指标数据

虽然iGraph服务上目前承载了众多业务,但是对iGraph服务造成巨大压力的还是集团两大核心业务—— 搜索和 推荐。这两项业务平时的体量已经足够大,双十一他们的流量更是难以预估。尤其是推荐业务,由于今年是个性化推荐元年,业务呈现出爆发式增长,更是让整个容量评估过程难上加难。

其实对于iGraph服务来讲,不但访问压力大,实时更新压力也非常巨大。因为,用户实时行为(比如点击行为、购买行为、加购行为、收藏行为等)反馈对算法效果至关重要,这些实时行为反馈通过Pora实时流计算平台实时更新到iGraph服务中。由于双十一当天用户行为数激增,所以实时行为反馈对iGraph服务造成了巨大的更新压力。

很幸运,在各团队的通力合作下,iGraph在双十一大促过程中平稳地支撑了这两条重要的业务,也迎来了iGraph各项系统指标的峰值。

系统核心指标(出于安全考虑,请原谅我们不能给出精确绝对值):
1. Proxy流量接入层峰值QPS达到几百万的,Searcher集群峰值QPS超过千万。
2. Proxy接入层在QPS达到几百万峰值QPS时,服务响应保持在3ms以内。
3. 实时更新消息峰值达到几百万QPS每秒,双十一当天更新消息总量更是超过五百亿条。

iGraph服务规模

目前,iGraph服务在上海、杭州以及深圳三个机房进行了单元化部署,为近千份关系数据提供在线服务,数据规模约250T。日常访问iGraph服务接入层峰值QPS在 110W左右。

由于大家对于iGraph团队的信任,iGraph服务的客户也在不断增长,包括(排名不分先后):
1. 个性化推荐业务
2. 淘系商品个性化搜索业务
3. 1688搜索业务
4. 虾米音乐推荐业务
5. 集团安全用户指纹业务
7. 拍立淘业务
8. 航旅业务
9. B2B ICBU推荐业务
10. 蚂蚁金服天罗地网业务
11. ...

iGraph备战双十一

iGraph团队主要从两个方向来备战2015双十一。首先,需要让iGraph支撑更多的业务,这就需要我们不断丰富iGraph的功能,并且提升业务团队使用iGraph服务的效率;其次,需要不断提升我们自身的运转效率,这就需要我们提升iGraph服务的性能同时降低维护iGraph服务的运维成本。于是我们主要做了一下几件事情:

基础数据服务

对于个性化搜索和个性化推荐来讲,都离不开用户的行为数据,通常这些数据都要求比较高的实时性(通常是秒级)。因为iGraph服务能够支持高并发低延迟的访问,并且支持大量消息实时更新,于是我们联合Pora实时流式处理平台以及iGraph服务打造了用户基础数据服务(如下图所示)。这个服务既可以提供最近一段时间内用户的历史行为数据也可以提供实时的用户行为。基础数据服务为集团各条业务的实时个性化提供支撑。基础服务提供的实时数据包括:
1. 用户点击行为
2. 用户购买行为
3. 用户收藏行为
4. 用户收藏商品行为
5. 用户收藏店铺行为
6. 用户加购行为
7. 用户Profile(购买力、偏好等)

Screen Shot 2015-12-23 at 6.36.07 PM

基础数据服务为业务方在双十一提供 126W峰值QPS,双十二 170W 峰值QPS的用户实时行为访问,给业务指标带来了巨大的提升。搜索离线团队提供的Pora 实时流式计算平台在处理用户实时日志方面也非常给力。

iGraph用户自助服务

为了能够让业务进行快速迭代,我们iGraph团队提供了一个iGraph服务自助接入Web服务。用户只需在Web页面上(如下图所示)简单填写相关信息,iGraph服务就可以自动托管整个数据的回流,并且用户可以在自助服务页面上查看到数据回流具体状态。只要自助服务页面上显示数据回流成功,那么用户就可以通过iGraph Client或者iGraph Http服务查询自己的数据。
Screen Shot 2015-12-22 at 8.26.21 PM

iGraph在线自动化部署

随着iGraph服务承接的业务不停增长,iGraph集群的规模不停增长,集群的在线部署和异常处理占用了我们大量时间。为了能够自动化地进行在线集群部署以及智能的异常处理,我们给iGraph在线集群添加了一个自动化调度角色,我们称之为iGraph Admin。

Screen Shot 2015-12-22 at 9.08.09 PM

有了iGraph Admin角色之后,使我们应对iGraph集群部署和异常处理变得轻松自如。集群部署只需要保证有足够的空闲机器资源,iGraph Admin可以自动申请机器资源并部署上iGraph服务,整个过程不需要人工干预;对于集群中经常出现的机器异常,iGraph Admin会自动把对应的iGraph服务迁移到正常的机器上。

iGraph服务内部优化

Proxy异步化改造

为了能够让iGraph服务支撑更高的访问量,我们将原先iGraph Proxy的线程模型进行了异步化改造。之前Proxy采用同步访问模型,使得Proxy服务的单机服务能力在1W QPS左右就上不去了,因为这时候同步服务模型所带来的线程切换代价太高,导致cpu system非常高,而此时整体CPU利用率仅仅在40%左右。为了解决这个问题,我们把Proxy的服务模型进行异步化改造,让Proxy的整体服务能力提升了2.5倍,Proxy极限CPU可以压到90%以上。如果查询返回结果稍大,这时千兆网络带宽会成为制约单机Proxy服务能力的瓶颈。

渐进式引流数据切换模式

因为iGraph中所有数据都存放在SSD上,热点数据会被Cache在内存中。这样如果某一张表进行数据全量切换时,会造成内存中所有Cache的数据都失效。这时候所有对该表的访问都会落在SSD上,如果访问量比较大,会把SSD的IOPS打满,这时候会对整体服务的稳定性造成巨大的影响。为了降低这种影响,我们在数据切换时采用渐进式引流的数据切换方式,这样可以减轻SSD的IOPS压力,同时能够让该表的热点数据逐渐Cache到内存中,最终我们可以在数据切换过程中实现在线服务的稳定性。

其实在iGraph服务性能优化方面,我们做了非常多优化,这些优化琐碎但是非常有收益,比如提供batch访问接口、优化网络中断平衡、调整内核内存回收参数等等,由于篇幅所限,我们不能一一深入说明,还请谅解。

结束语

这篇文章给大家简单介绍了iGraph在准备2015双十一大促过程中所做的一些工作以及iGraph在大促过程中的相关数据表现。由于篇幅有限,无法深入阐述每一项工作的细节。最后,感谢大家一直以来对iGraph团队的信任,我们会更加努力地将iGraph打造成更加高效、易用的关系查询服务。

目录
相关文章
|
SQL 运维 搜索推荐
《揭秘,阿里开源自研搜索引擎Havenask的在线检索服务》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask的在线检索服务,它具备高可用、高时效、低成本的优势,帮助企业和开发者量身定做适合业务发展的智能搜索服务。
85401 138
|
人工智能 搜索推荐 异构计算
|
存储 固态存储 索引
搜索和推荐统一存储层的新进展和思考
我们在2017年统一了搜索和推荐场景下的HA3、iGraph、RTP和DII四大引擎的存储层(参见统一之战),帮助它们取得了的更迅速的迁移能力、更快速的数据恢复能力和更丰富的数据召回能力。 最近一年来,我们在统一的存储框架上又做了进一步的演进,下面将分别从架构、Build服务以及存储模型角度介绍我们的新进展和思考。   1.架构   在我们的传统架构(参见统一之战)中,
3319 0
|
12月前
|
人工智能 自然语言处理 文字识别
阿里云 AI 搜索开放平台新增:服务开发能力
阿里云 AI 搜索开放平台新发布:服务开发能,可通过集成 dsw 能力并新增 notebook 功能,进一步提升用户编排效率。
507 0
|
人工智能 大数据 程序员
一文看懂开源图化框架中的循环设计逻辑!
相信大家在日常工作中,已经精通各种循环逻辑的实现。就拿我来说吧,多年的工作经验,已经让我可以熟练的使用 C++,Python,英语等多种语言,循环多次输出“hello word”。不过大家有没有想过一个这样的问题:如何在一个有向无环图(Directed Acyclic Graph,简称dag)中实现循环呢?
1263 0
一文看懂开源图化框架中的循环设计逻辑!
|
运维 搜索推荐 调度
Ha3搜索引擎简介
Ha3是阿里巴巴搜索团队开发的搜索引擎平台,它为阿里集团包括淘宝、天猫在内的核心业务提供搜索服务支持。
26411 1
|
SQL 消息中间件 Swift
【一文看懂】Havenask单机模式创建
本次分享内容为Havenask单机模式,由下面3个部分组成(Hape工具介绍、创建单机版Havenask、Hape问题排查),希望可以帮助大家更好了解和使用Havenask。
129217 1
|
人工智能 监控 算法
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践
TPP图化致力于打造一个算法在线服务领域易用、性能极致、迭代效率远超普通方式的产品。本文将介绍TPP图化以及2021年在性能、开发体验上的改进,并介绍未来TPP图化的规划。
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践
|
机器学习/深度学习 SQL 人工智能
阿里云峰会 | 统一召回引擎在搜索场景的应用实践
淘宝每次的搜索行为在后端都会有大量的数据计算和处理才会召回符合用户需求的搜索结果,当面对的业务越来越多如何在工程体系上不断演化满足不同业务的需求?特邀阿里巴巴技术专家介绍统一召回引擎,带你了解如何应对~
2662 0
阿里云峰会 | 统一召回引擎在搜索场景的应用实践

热门文章

最新文章