狠狠撸

狠狠撸Share a Scribd company logo
搜狐 PVInsight 运算系统 刘凯毅  ; 尤春
PVInsight  系统介绍 公司向用户提供的价值 获取的商业价值
PVInsight 运系统介绍 什么样的用户认可提供的价值? 这些用户有商业价值吗? 有多认可? 开始认识用户吧 !
系统介绍  /  用户 关键字 :  响应用户  /  新用户  /  活跃用户  /  流失用户
系统介绍  /  用户 关键字  : 连续访问
系统介绍  /  sohu  企邮 一个企邮用户的连续访问 >  登入  > [ 管理此域 ] >  员工列表 >  广播邮件  * >>> .....  一通点击 >  群组列表  >  新建群组 >  广播邮件  * >  发送 想发广播邮件的用户 想做了些什么?
系统介绍  /  sohu  企邮 如何发现 此类连续访问问题 ? 产物经理提出: 希望看到发“广播邮件”的用户都怎么时候 ? 从数据仓库中找出连续访问中  >  广播邮件  >  发送 ;之前的 操作  3.  并清洗数据为  离发送广播邮件最后 10 步 :  > a_url  访问人数  ;  > b_url 访问人数 离发送广播邮件最后 9 步 :  > c_url  访问人数  > d_url 访问人数  …… .
这样做对商业价值有利吗? 系统介绍  /  商业价值 各个职位上对商业价值的帮助  广告给我们带来效果怎么样 ?
系统介绍  /  商业价值角度
名词解释 Pv : page view  浏览次数 Uv : unique visitor  独立访客 Ip :  独立 Ip 数 新老访客 /  回头用户  /  会话次数  /  访问间隔  /  停留时长  /  访问深度  /  回访率  /  跳出率  /  入口率  计费方式 : cpc :  每次点击计费 cpm :  千次效果展现 计费 cpa  :  用户行为计费 cps  :  销售成本计费
名词解释 现实是很残酷的 :  其实  UV  就很难算  ~ 我们的  UID  是一个  16 位的字符串  一般一个小小的统计就上亿条的记录 ( 16*8* (10**8) ) / ((2**10)**3) =  12 G
PVInsight 运系统介绍 系统架构 收 集  存 储  结构化  可视化
系统架构  /  图
系统架构  /  使用语言 Python  ETL : 数据清洗  /  数据完整性  中间数据:结构维护(分时 / 治) / 统计 胶水 :  c / r /mysql/ infob / bdb  Java Hdfs / mapreduce / hbase  Shell 调度  /  维护运行环境配置
Py  细节  /  预处理
Py  细节  /  预处理  /  数据完整性  url url =>  栏目 ID ,频道 ID
Py  细节  /  预处理  /  数据完整性  url 域名 +url auto.sohu.com/ /20090914/n266706777.shtml   域名  auto.sohu.com/ 泛域名 i.auto.sohu.com/ 20090913/n237706498.shtml   特例 http://cs.focus.cn/news/2005-09-14/128510.html
Py  细节  /  预处理  /  数据完整性  url 存储  btree  需要匹配 url Key  = domain 倒序 |url def  pointerDrift_domain (self,domain,url,loop=10) :  if loop < 0 : return ('0','0') dk2,dv2 =  btree_url. previous()   # next() dtype,ddmain,durl = dk2.split('|')[:3] if ddmain != domain :  return ('0','0') if url.startswith( durl )  :  return dv2.split('') else :  return self. pointerDrift_domain (domain,url,loop-1)
Py  细节  /  预处理  /  数据完整性  url Btree  key  url  moc.uhos.otua |  / 20090913/n237706498.shtml moc.uhos.otua  |  moc.uhos.otua. i  |  /20090914/n266706777.shtml   | = 174  特例 cs.focus.cn/news/2005-09-14/128510.html
Py  细节  /  预处理  /  数据清洗 流水线——预处理 0908251329265655 [26/Aug/2009:13:25:01 +0800] 123.15.49.138 &quot;GET /pv.gif?t?=1251264295765164_1024_768?r?=http://www.sohu.com/ HTTP/1.1&quot; &quot;http://news.sohu.com/20090826/n266231388.shtml&quot; pv.sohu.com CN4107 - - &quot;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; QQDownload 570; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)&quot; iamyp78@sohu.com news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376 900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655   1252922376 900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655   20090826/n266231388.shtml  26/Aug/2009:13:25:01   0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376  900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655   20090826/n266231388.shtml   26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376  900 /20090707/n265035120.shtml   11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com  CN2301 908251329265655  1252922376 900 /20090707/n265035120.shtml   11 /   0|2|1|1|iamyp78@sohu.com  CN2301
Py  细节  /  预处理  /  数据清洗 Py  的一些特性正则 >>> re.findall( r’(?:ab)+’ , ’ababab abbabb aabaab’) 输出  : ['ababab'] >>> re.findall( ’/.*?/’ , ‘/* part 1 */  code  /* part 2 */  ‘) 输出  : ['/* part 1 */', '/* part 2 */']???? ‘ (?<=…)’  前向界定  , ‘(?=…)’?  后向界定 >>> s=r’/* comment 1 */? code? /* comment 2 */’ >>> re.findall( r’(?<=/).+?(?=/)’ , s ) [' comment 1 ', ' comment 2 '] # py  条件正则 大家请注意 。。。
Py  细节  /  预处理  /  数据清洗 合理使用正则
Py  细节  /  预处理  /  中间结果  /  分时分治
PVInsight 运算系统实现 流水线——分时处理
Py  细节  /  分时 流水线——分时处理
Py  细节 分治
计算  UV 好吧已经知道 UV  就很难算  ~ 我们先来看看 ,目前非常火的  Mapreduce  解决方案!
UV  计算, mapreduce  解决方案 目前我这里使用的, mapreduce  很粗暴!
UV  计算, mapreduce  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  SUV1 频道 1  SUV1 频道 1  SUV2 频道 1  SUV3 频道 2  SUV1 频道 1  SUV1 频道 1  SUV1 频道 1  SUV2 频道 1  SUV3 频道 2  SUV1 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  SUV1 频道 1  SUV3 频道 1  SUV1 频道 1  SUV2 频道 2  SUV1 频道 1  SUV1 频道 1  SUV3 频道 1  SUV2 频道 2  SUV1
UV  计算, mapreduce  解决方案 频道 1,IP1,SUV1 频道 2, IP1,SUV2 频道 1, IP2,SUV3 频道 1  ‘SUV’  SUV1 频道 1  ‘IP’  IP1 频道 2  ‘SUV’  SUV2 频道 2  ‘IP’  IP1 频道 1  ‘SUV’  SUV3 频道 1  ‘IP’  IP2 … …
Py  细节  /  预处理  /  中间结果  /  分时分治 Python  : marshal
UV  计算, python  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  001001… 频道 2  100111 … 频道 1  110011… 频道 1  00100… 频道 1  0001010… 频道 2  1001000…
UV  计算, python  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  001001… 频道 2  100111 … 频道 1  110011… 频道 1  00100… 频道 1  0001010… 频道 2  1001000…
UV  计算, python  解决方案 现实又一次的残酷了! 我们的  UID  是一个  16 位的字符串 ~
UV  计算, python  解决方案 bc=bitarray() for n in xrange( 1000 ) : ????bc.extend(bitarray(10**6)) #120M f1=open('/tmp/bc1.ba','wa') bc.tofile(f1) #  我测试在  160k  左右 sio = StringIO() f2=open('/tmp/bc2.ba','wb') w = GzipFile('/tmp/bc3.ba','wb',9,sio) w.write(bc.tostring()) w.close()
UV  计算, python  解决方案
UV  计算, python  调度 这么多任务 , 我们需要以个 .. 调度
Py  细节  /  调度  - gearman
Py  细节  /  调度 – 想象远没现实美好
Py  细节  /  胶水  R / rpy2  import rpy2.robjects as robjects r = robjects.r robjects.globalenv[&quot;x&quot;] = robjects.FloatVector([1,2, 3, 4, 5, 6, 7, 8, 9, 10]) robjects.globalenv[&quot;y&quot;] = robjects.FloatVector([0,30,44,57,65,78,68,97,99,120]) lm_d9 = r.lm(&quot;y ~ 1+x&quot;) r.predict( lm_d9, robjects.r(&quot; data.frame(x=11) &quot;), interval=&quot;prediction&quot;,level=0.95)[0] 输出 :   128.26666666666668
数据的重要性  -  数据可视化 Twitter  上我们的关系
数据的重要性  -  数据可视化 facebook 人物关系链图
数据的重要性  -  数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
数据的重要性  -  数据可视化 高转帖子的传播环: 二环为粉丝转发  5%  , 三环为粉丝们的粉丝转发  55%  , 四环是粉丝们的粉丝加泛粉丝  25% , 五环是随机粉丝  15%  。
数据的重要性  -  数据可视化
数据的重要性  -  数据可视化 twitter 上的 love 有关的关键词
数据的重要性  -  数据可视化 twitter 上的 hate 有关的关键词
数据的重要性  -  数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
?

More Related Content

搜狐Pv insight(py)技术交流

  • 1. 搜狐 PVInsight 运算系统 刘凯毅 ; 尤春
  • 2. PVInsight 系统介绍 公司向用户提供的价值 获取的商业价值
  • 3. PVInsight 运系统介绍 什么样的用户认可提供的价值? 这些用户有商业价值吗? 有多认可? 开始认识用户吧 !
  • 4. 系统介绍 / 用户 关键字 : 响应用户 / 新用户 / 活跃用户 / 流失用户
  • 5. 系统介绍 / 用户 关键字 : 连续访问
  • 6. 系统介绍 / sohu 企邮 一个企邮用户的连续访问 > 登入 > [ 管理此域 ] > 员工列表 > 广播邮件 * >>> ..... 一通点击 > 群组列表 > 新建群组 > 广播邮件 * > 发送 想发广播邮件的用户 想做了些什么?
  • 7. 系统介绍 / sohu 企邮 如何发现 此类连续访问问题 ? 产物经理提出: 希望看到发“广播邮件”的用户都怎么时候 ? 从数据仓库中找出连续访问中 > 广播邮件 > 发送 ;之前的 操作 3. 并清洗数据为 离发送广播邮件最后 10 步 : > a_url 访问人数 ; > b_url 访问人数 离发送广播邮件最后 9 步 : > c_url 访问人数 > d_url 访问人数 …… .
  • 8. 这样做对商业价值有利吗? 系统介绍 / 商业价值 各个职位上对商业价值的帮助 广告给我们带来效果怎么样 ?
  • 9. 系统介绍 / 商业价值角度
  • 10. 名词解释 Pv : page view 浏览次数 Uv : unique visitor 独立访客 Ip : 独立 Ip 数 新老访客 / 回头用户 / 会话次数 / 访问间隔 / 停留时长 / 访问深度 / 回访率 / 跳出率 / 入口率 计费方式 : cpc : 每次点击计费 cpm : 千次效果展现 计费 cpa : 用户行为计费 cps : 销售成本计费
  • 11. 名词解释 现实是很残酷的 : 其实 UV 就很难算 ~ 我们的 UID 是一个 16 位的字符串 一般一个小小的统计就上亿条的记录 ( 16*8* (10**8) ) / ((2**10)**3) = 12 G
  • 12. PVInsight 运系统介绍 系统架构 收 集 存 储 结构化 可视化
  • 14. 系统架构 / 使用语言 Python ETL : 数据清洗 / 数据完整性 中间数据:结构维护(分时 / 治) / 统计 胶水 : c / r /mysql/ infob / bdb Java Hdfs / mapreduce / hbase Shell 调度 / 维护运行环境配置
  • 15. Py 细节 / 预处理
  • 16. Py 细节 / 预处理 / 数据完整性 url url => 栏目 ID ,频道 ID
  • 17. Py 细节 / 预处理 / 数据完整性 url 域名 +url auto.sohu.com/ /20090914/n266706777.shtml 域名 auto.sohu.com/ 泛域名 i.auto.sohu.com/ 20090913/n237706498.shtml 特例 http://cs.focus.cn/news/2005-09-14/128510.html
  • 18. Py 细节 / 预处理 / 数据完整性 url 存储 btree 需要匹配 url Key = domain 倒序 |url def pointerDrift_domain (self,domain,url,loop=10) : if loop < 0 : return ('0','0') dk2,dv2 = btree_url. previous() # next() dtype,ddmain,durl = dk2.split('|')[:3] if ddmain != domain : return ('0','0') if url.startswith( durl ) : return dv2.split('') else : return self. pointerDrift_domain (domain,url,loop-1)
  • 19. Py 细节 / 预处理 / 数据完整性 url Btree key url moc.uhos.otua | / 20090913/n237706498.shtml moc.uhos.otua | moc.uhos.otua. i | /20090914/n266706777.shtml | = 174 特例 cs.focus.cn/news/2005-09-14/128510.html
  • 20. Py 细节 / 预处理 / 数据清洗 流水线——预处理 0908251329265655 [26/Aug/2009:13:25:01 +0800] 123.15.49.138 &quot;GET /pv.gif?t?=1251264295765164_1024_768?r?=http://www.sohu.com/ HTTP/1.1&quot; &quot;http://news.sohu.com/20090826/n266231388.shtml&quot; pv.sohu.com CN4107 - - &quot;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; QQDownload 570; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)&quot; iamyp78@sohu.com news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301
  • 21. Py 细节 / 预处理 / 数据清洗 Py 的一些特性正则 >>> re.findall( r’(?:ab)+’ , ’ababab abbabb aabaab’) 输出 : ['ababab'] >>> re.findall( ’/.*?/’ , ‘/* part 1 */ code /* part 2 */ ‘) 输出 : ['/* part 1 */', '/* part 2 */']???? ‘ (?<=…)’ 前向界定 , ‘(?=…)’? 后向界定 >>> s=r’/* comment 1 */? code? /* comment 2 */’ >>> re.findall( r’(?<=/).+?(?=/)’ , s ) [' comment 1 ', ' comment 2 '] # py 条件正则 大家请注意 。。。
  • 22. Py 细节 / 预处理 / 数据清洗 合理使用正则
  • 23. Py 细节 / 预处理 / 中间结果 / 分时分治
  • 25. Py 细节 / 分时 流水线——分时处理
  • 26. Py 细节 分治
  • 27. 计算 UV 好吧已经知道 UV 就很难算 ~ 我们先来看看 ,目前非常火的 Mapreduce 解决方案!
  • 28. UV 计算, mapreduce 解决方案 目前我这里使用的, mapreduce 很粗暴!
  • 29. UV 计算, mapreduce 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 SUV1 频道 1 SUV1 频道 1 SUV2 频道 1 SUV3 频道 2 SUV1 频道 1 SUV1 频道 1 SUV1 频道 1 SUV2 频道 1 SUV3 频道 2 SUV1 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 SUV1 频道 1 SUV3 频道 1 SUV1 频道 1 SUV2 频道 2 SUV1 频道 1 SUV1 频道 1 SUV3 频道 1 SUV2 频道 2 SUV1
  • 30. UV 计算, mapreduce 解决方案 频道 1,IP1,SUV1 频道 2, IP1,SUV2 频道 1, IP2,SUV3 频道 1 ‘SUV’ SUV1 频道 1 ‘IP’ IP1 频道 2 ‘SUV’ SUV2 频道 2 ‘IP’ IP1 频道 1 ‘SUV’ SUV3 频道 1 ‘IP’ IP2 … …
  • 31. Py 细节 / 预处理 / 中间结果 / 分时分治 Python : marshal
  • 32. UV 计算, python 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 001001… 频道 2 100111 … 频道 1 110011… 频道 1 00100… 频道 1 0001010… 频道 2 1001000…
  • 33. UV 计算, python 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 001001… 频道 2 100111 … 频道 1 110011… 频道 1 00100… 频道 1 0001010… 频道 2 1001000…
  • 34. UV 计算, python 解决方案 现实又一次的残酷了! 我们的 UID 是一个 16 位的字符串 ~
  • 35. UV 计算, python 解决方案 bc=bitarray() for n in xrange( 1000 ) : ????bc.extend(bitarray(10**6)) #120M f1=open('/tmp/bc1.ba','wa') bc.tofile(f1) # 我测试在 160k 左右 sio = StringIO() f2=open('/tmp/bc2.ba','wb') w = GzipFile('/tmp/bc3.ba','wb',9,sio) w.write(bc.tostring()) w.close()
  • 36. UV 计算, python 解决方案
  • 37. UV 计算, python 调度 这么多任务 , 我们需要以个 .. 调度
  • 38. Py 细节 / 调度 - gearman
  • 39. Py 细节 / 调度 – 想象远没现实美好
  • 40. Py 细节 / 胶水 R / rpy2 import rpy2.robjects as robjects r = robjects.r robjects.globalenv[&quot;x&quot;] = robjects.FloatVector([1,2, 3, 4, 5, 6, 7, 8, 9, 10]) robjects.globalenv[&quot;y&quot;] = robjects.FloatVector([0,30,44,57,65,78,68,97,99,120]) lm_d9 = r.lm(&quot;y ~ 1+x&quot;) r.predict( lm_d9, robjects.r(&quot; data.frame(x=11) &quot;), interval=&quot;prediction&quot;,level=0.95)[0] 输出 : 128.26666666666668
  • 41. 数据的重要性 - 数据可视化 Twitter 上我们的关系
  • 42. 数据的重要性 - 数据可视化 facebook 人物关系链图
  • 43. 数据的重要性 - 数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
  • 44. 数据的重要性 - 数据可视化 高转帖子的传播环: 二环为粉丝转发 5% , 三环为粉丝们的粉丝转发 55% , 四环是粉丝们的粉丝加泛粉丝 25% , 五环是随机粉丝 15% 。
  • 45. 数据的重要性 - 数据可视化
  • 46. 数据的重要性 - 数据可视化 twitter 上的 love 有关的关键词
  • 47. 数据的重要性 - 数据可视化 twitter 上的 hate 有关的关键词
  • 48. 数据的重要性 - 数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
  • 49. ?

Editor's Notes

  • #10: 1 正如哲学由最基本的三个问题引申出了很多 2 不同岗位、层级 对广度、深度和持久度要求不一样
  • #17: 1 物以类聚、人以群分,具有相同特征的往往是一起的。 2 栏目由具有相同特征的若干 url 组成。 3 频道由具有相同特征的若干栏目组成,一个栏目可能属于多个频道
  • #21: 第三点 1 python 全局锁的存在,导致使用多线程不如使用单进程来处理 2 节省空间,避免冗余,浪费资源; 减少服务器运算压力, 加快运算速度;相当于多了 9 台服务器 3 (可点击)将访问的 url 处理为 id , 加网址。 不存在的归为第 0 类。 对于 refer 是处理:搜狐内的为 id ,加网址,搜索引擎转化为关键字,其他转化为域名, www2 的转化为 www 的 4 uv 表面只少了一个 0 , 实际上市由字符串变为了整形,节省的空间意义重大。 当然为了记录一些的实际信息, 有些还是需要保存的。 例如来源
  • #25: 1 5 分钟时,根据前面预处理的结果,计算 suv , pv , 并使用集合保留 suv 2 由于 python 的特性, 1 小时和 1 天只需简单加载数据进行归并即可 3 每周、每月
  • #26: 1 人无远虑, 必有近忧 2 所谓分时处理就是将数据分摊到各时间片上进行处理 (翻页)
  • #27: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #29: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #30: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #31: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #33: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #34: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #35: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #36: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #37: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #38: 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  • #50: 1 知无不言、言无不尽 2 有请韩道亮同学上来和我一起回答大家的问题