[发明专利]高并发、多线程应用中的计数方法及系统有效
申请号: | 201210185463.0 | 申请日: | 2012-06-06 |
公开(公告)号: | CN102722405A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 张海洋 | 申请(专利权)人: | 新浪网技术(中国)有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 赵景平;王宝筠 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 多线程 应用 中的 计数 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种高并发、多线程应用中的计数方法及系统。
背景技术
传统网站帖子浏览计数存储在数据库(比如mysql)中,一般将浏览计数值与帖子内容放在帖子表中。当网络用户通过IE等浏览器查看帖子的时侯,浏览器发送http(Hypertext Transfer Protocol,超文本传送协议)请求到网站服务器,网站服务器会从帖子表中读取帖子内容和浏览计数值显示到浏览器,同时,会对帖子表中浏览计数值做更新操作,实现浏览计数的实时统计。帖子内容和浏览计数统一放到数据库中,实现快速方便,很多访问量小的网站,使用这种技术已经足够。
而对于大型网站,高并发(大于随机写200次/每秒,随机读1000次/每秒),大访问量(每天百万级别以上)时,单个数据库的I/O写性能已经达到极限,I/O负载压力很大。主要是硬盘本身随机读写能力达到上限,无法响应更多的I/O请求,直接导致服务不稳定。如果将读写分散到多台服务器,将直接导致服务器数量庞大,架构复杂,增加维护难度。
发明内容
本发明实施例针对上述现有技术存在的问题,提供一种高并发、多线程应用中的计数方法及系统,以减少磁盘I/O对系统性能的影响。
为此,本发明实施例提供如下技术方案:
一种高并发、多线程应用中的计数方法,包括:
接收操作请求,在所述操作请求中包含操作对象的对象标识及已对所述操作对象的操作次数;
根据操作对象的对象标识与保存在共享内存中的操作对象对应的计数值的映射关系,确定所述操作请求中的对象标识对应的计数值;
根据所述操作请求中的操作次数更新所述共享内存中保存的所述计数值。
优选地,所述方法还包括:
创建所述共享内存,并建立所述操作对象的对象标识与所述计数值的映射关系。
优选地,所述创建所述共享内存包括:
利用共享内存创建shmget函数创建所述共享内存;或者
利用内存映射mmap函数创建所述共享内存;或者
通过进程申请所述共享内存。
优选地,所述建立所述操作对象的对象标识与所述计数值的映射关系包括:
如果所述对象标识是数字类型的,则直接将所述对象标识映射到一个二进制整型值,并将所述二进制整型值作为与所述对象标识对应的计数值;
如果所述对象标识是字符串类型的,则先将所述对象标识映射为一个自动增长类型的字段,再将所述字段映射到一个二进制整型值,并将所述二进制整型值作为与所述对象标识对应的计数值。
优选地,所述共享内存分布在多个服务器中,所述多个服务器包括:本地服务器和远程服务器;所述方法还包括:
在根据所述操作次数更新所述共享内存中保存的所述计数值后,将更新操作后的计数值及对应的对象标识添加到所述本地服务器的日志文件中;
向所述远程服务器发送同步请求,在所述同步请求中包含所述日志文件中的计数值及对应的对象标识,以使所述远程服务器更新自己的共享内存中保存的与所述对象标识对应的计数值。
优选地,所述方法还包括:
接收所述远程服务器发送的同步请求,所述同步请求中包含需要同步的计数值及对应的对象标识;
根据所述映射关系确定所述对象标识对应的计数值;
根据所述需要同步的计数值更新所述本地服务器的共享内存中保存的与所述对象标识对应的计数值。
一种高并发、多线程应用中的计数系统,包括:
接收单元,用于接收操作请求,在所述操作请求中包含操作对象的对象标识及已对所述操作对象的操作次数;
查找单元,用于根据操作对象的对象标识与保存在所述共享内存中的操作对象对应的计数值的映射关系,确定所述操作请求中的对象标识对应的计数值;
更新单元,用于根据所述操作请求中的操作次数更新所述共享内存中保存的所述计数值。
优选地,所述系统还包括:
创建单元,用于创建所述共享内存;
映射关系建立单元,用于建立所述操作对象的对象标识与所述计数值的映射关系。
优选地,所述创建单元,具体用于利用共享内存创建shmget函数创建所述共享内存;或者利用内存映射mmap函数创建所述共享内存;或者通过进程申请所述共享内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新浪网技术(中国)有限公司,未经新浪网技术(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210185463.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于通过铸造或注射成型工艺制造单件式空心体的方法
- 下一篇:静压花键装置