java中单锁的分拆降低冲突概率

      +-----------+
-->   | counter 1 |
      +-----------+
-->   | counter 2 |
      +-----------+   -> sum(subCounter)
-->   | counter 3 |
      +-----------+
-->   | counter 4 |
      +-----------+

JAVA 中的 ConcurrentHashMap 和 LongAdder 的应用

在内部都有多个计数器,这样在并发更新对象的时候,随机选择一个,就可以将锁冲突的概率降低到 1/n

mysql 计数器的应用

拿文章的喜欢计数来做例子,当有n个人同时点击喜欢的时候,INNODB会锁住这条记录,这篇文章的喜欢计数器将是串行增长的。

pre_posts

+-------+-----+----------+
|  id   | ... |   favs   |
+-------+-----+----------+
| 10000 | ... |   8001   |
+-------+-----+----------+

再看下面的,可以将喜欢数从 posts 表拆分出来,一个文章 id,对应多个子计数器,在更新计数器的时候,可以随机选择一条记录增加,在取文章喜欢数的时候,可以sum一下累加起来;这样就降低了并发时候的冲突。

pre_post_favs

+-----+----------+----------+
| id  | post_id  |   favs   |
+-----+----------+----------+
|  1  |  10000   |   2001   |
|  2  |  10000   |   1994   |
|  3  |  10000   |   2010   |
|  4  |  10000   |   1898   |
+-----+----------+----------+

对于计数器的缓存

显然上面的数据解决了数据并发写入的问题,但是查询的代价却是提高了,想到的办法就是对计数器进行缓存。

读取的时候被动缓存的话,就会产生计数器的延迟;所以这里可以采用 canal 监听 mysql binlog 主动触发 cache 的更新。

那么问题又来了,既然是存到 redis 中,该用什么类型的;如果使用大量的 string 的话,key 就会占用大量的内存,可以部分改用 hash,但是 redis 的设定中,只有 数量 < hash-max-ziplist-entries 的时候才会采用优化的存储方式;根据多位大牛的研究 1000 是比较合适的。

favs:10
    000 -> 8001
    001 -> 0
    ...
    999 -> 0

时间: 2024-10-25 18:00:10

java中单锁的分拆降低冲突概率的相关文章

56网:不排除从人人分拆单独上市

中介交易 SEO诊断 淘宝客 云主机 技术大厅 作为国内视频网站的主要先行者之一,56网曾经是红杉资本在国内视频行业最重要的一颗棋子,国外则是笑傲全球在线视频的YouTube.不过,在优酷2010年12月上市,尤其是土豆2011年8月上市后,56网创始人周娟认识到,资本市场留给56网的机会并不多了.而更早之前,56网的另一个竞争对手酷6网,也被盛大纳入了麾下.在此局面下,2011年9月,也就是土豆上市一个月后,56网以8000万美元的作价成为人人公司的全资子公司. 这笔8000万美元的收购是人人

56网涉足社交视频 不排除从人人分拆单独上市

中介交易 SEO诊断 淘宝客 云主机 技术大厅 作为国内视频网站的主要先行者之一,56网曾经是红杉资本在国内视频行业最重要的一颗棋子,国外则是笑傲全球在线视频的YouTube.不过,在优酷2010年12月上市,尤其是土豆2011年8月上市后,56网创始人周娟认识到,资本市场留给56网的机会并不多了.而更早之前,56网的另一个竞争对手酷6网,也被盛大纳入了麾下.在此局面下,2011年9月,也就是土豆上市一个月后,56网以8000万美元的作价成为人人公司的全资子公司. 这笔8000万美元的收购是人人

无谓的分拆:惠普来回折腾的背后

文/孙永杰从传闻变成事实,仅隔了一天的时间,惠普终于拆分了自己,即将当前的惠普公司分拆为一家主营PC和打印机业务的惠普公司(HP Inc)和一家主营企业硬件和服务业务的 惠普企业(Hewlett-PackardEnterprise),分拆后的新惠普公司仍采用当前Logo.尽管业内(包括惠普自己)都对为何分拆惠普及分拆后给惠普带来的好处做了诸多的评论和解释,但我们认为分拆给惠普带来最大,也是最立竿见影好处就是通过分拆,惠普向业内和投资人澄清了这些年始终令 它们困惑的惠普公司的定位问题,即惠普究竟是

Flux是2年前从Google X实验室分拆出的第一家创业公司

Flux是2年前从Google X实验室分拆出的第一家创业公司,一直颇为低调,它专注于开发数据驱动的协作软件,提升建筑设计的生态友好度,降低建筑成本--建起来更高效.更生态化.还更便宜. 它刚在A轮融资中获得800万美金,DFJ领投,Borealis Ventures.Google Ventures.Andreessen Horowitz.Ev Williams 等参投.这笔钱将用于打造软件产品,及扩充团队(目前有20名雇员). Flux由3名前Google软件工程师Nick Chim(CEO)

谷歌CEO称并无分拆公司股票计划

      据国外媒体报道,Google CEO埃里克·施密特日前表示,尽管公司股价增长势头减缓,但Google并没有分拆股票的计划.      近期,Google股价增长势头有所减缓.上周四收于每股收461.47美元,下挫7.78美元.年初至今,Google股价仅上涨了99美分,涨幅0.2%,低于道琼斯工业平均指数的6%,以及标准普尔500指数的5%.      为此,有分析人士认为,Google应该分拆股票,从而降低投资者进入的门槛.但施密特日前却表示,Google并没有分拆股票的计划.  

TOM将分拆业务成四大独立公司 或欲独立上市

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 8月30日下午,TOM易趣新平台宣布正式推出.会后,TOM集团执行董事.TOM在线和TOM易趣首席执行官王雷雷向搜狐IT透露,TOM在线私有化后,将对其旗下无线.门户网站.SKYPE和易趣进行分拆,成立四大独立运营的子公司. 据王雷雷介绍,私有化之后,TOM会重整旗下四大业务,因为TOM集团认为现在这几大业务已经比较成熟,完全可以独立运营.同

李嘉诚御用银行家梁伯韬:曾帮李嘉诚旗下公司分拆融资

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    在李嘉诚的支持下,梁伯韬创办了百富勤,带领内地企业赴港上市,赢得"红筹之父"的美称:长和系公司多年来的分拆和融资,大多由他一手操办:他是李嘉诚的御用银行家,李超人曾经公开说,"无论他到哪,我都会支持他". 相识三十年,并曾多次帮助李嘉诚旗下公司进行分拆和融资,梁伯韬一直被 认为是李嘉诚的御用银行家,两人关系的密切程度可见

西门子将采取合并,还是出售的形式分拆当前业务尚未可知

西门子监管委员会主席格哈德·克罗默(Gerhard Cromme)正在考虑出售公司部分资产,以提升股票价值,并降低公司被敌意并购的危险. 据悉,克罗默和新任CEO彼得·罗谢已为公司股票制定了130-140欧元的中长期价格.而目前,西门子的股价为95欧元. 该消息称,克罗默希望西门子当前的十个部门能够更加紧凑些.目前,克罗默和罗谢一致认为,当前的业务形式过于分散. 到目前为止,还不清楚西门子将采取合并,还是出售的形式分拆当前业务.但西门子监管委员会的一位成员表示:"这两种形式均有可能."

澳洲电讯:被迫分拆将耗资12亿澳元

C114讯北京时间11月4日上午消息(张月红)澳大利亚最大的运营商澳洲电讯(Telstra),面临着政府强制分拆固网业务的压力.澳洲电讯称,这种类似于英国电信式的强制分拆,将使公司耗去12亿澳元(11亿美元)的成本. 澳洲电讯在今天的声明中表示,分拆过程将持续五年多,因为澳洲电讯需要将公司完整的信息技术系统全面打断. 2005年,英国电信同意成立独立董事,以确保规模较小的竞争对手方便接入网络,降低租用费用,以避免英国政府强制分拆的命运. 今天,澳大利亚政府将禁止澳洲电讯购买新的电视广播来扩展无线