Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8068984
  • 博文数量: 594
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 10324
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html

文章分类

全部博文(594)

分类: 大数据

2015-08-16 23:14:36


10亿用户,同时在线用户1亿数据服务技术方案.pdf

目录

目录 1

1. 一般方案 1

1.1. 用户数据构成 1

1.2. 交互逻辑 2

1.3. 方案特点 2

2. 新方案 2

2.1. 数据组织 2

2.2. 交互逻辑 3

2.3. 大并发 4

2.4. 核心思想 4

 

1. 一般方案

1.1. 用户数据构成

1) 用户名

具有唯一性,由用户在注册时由用户自己确定,如各类邮箱用户名; 或者由系统分配,如QQ号。

2) 用户ID

也具有唯一性,用户在注册时由系统分配。

3) 用户属性

用来描述用户的,如性别、年龄等。

4) 用户行为

对用户活动的记录,如最近一个月的淘宝消费记录。

1.2. 交互逻辑

 

1.3. 方案特点

一般方案的有点是实现简单,效率还不错,内存性价比不高。

2. 新方案

2.1. 数据组织

数据组织的目的是为了更高效更经济的提供数据服务。可以达到O(1)查找,和无锁化查询更新。

数据的组织采取经典的“image+editlog(也可叫binlog)”。离线处理放在每天访问量最小的时间段。

 

2.2. 交互逻辑

显然,取得用户ID后的后续操作都是O(1),这样具备极佳的性能。基于数组,还可以实现无锁化查询。

 

2.3. 大并发

按用户ID垂直切片,如切分成100片。20台机器时,每台加载5片;共10台机器时,每台加载10片。如此多集群服务,即可实现上亿同时在线服务。

2.4. 核心思想

数组化是新方案的核心。基于数组,不但提供了最快的查询,而且不浪费内存,“image+editlog”使得数据更新高效简单,且不需要中断服务。

 


x

阅读(3475) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~