- 浏览: 483697 次
- 性别:
- 来自: 大连
最新评论
-
龘龘龘:
TrueBrian 写道有个问题,Sample 1中,为了控制 ...
What's New on Java 7 Phaser -
龘龘龘:
楼主总结的不错。
What's New on Java 7 Phaser -
TrueBrian:
有个问题,Sample 1中,为了控制线程的启动时机,博主实际 ...
What's New on Java 7 Phaser -
liguanqun811:
不知道楼主是否对zookeeper实现的分布式锁进行过性能测试 ...
Distributed Lock -
hobitton:
mysql的get lock有版本限制,否则get lock可 ...
Distributed Lock
文章列表
1 Overview
Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。
2 Glossary
2.1 ...
这几天试用了一下Membase,在这里简单地冒个泡。作为一款分布式的key-value 数据存储,Membase完全兼容memcached(实际上Membase跟memcached也是颇有渊源)。 用于memcached的客户端也同样可以访问Membase,例如spymemcached和xmemcached等。 既然Membase跟memcached兼容,那么可能大多数人都会有这样的疑问,Membase和memcached到底有何主要的区别?我想答案应该是持久化和复制。 此外,Membase的web控制台让人印象深刻:界面直观,易于操作。AppFirst也已经发布了用于监控Membas ...
1 Overview
Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Lock。跟其它读/写锁定机制相比,Sequential Lock有以下特点:
在获取锁时偏向写锁。只要他人不持有写锁,那么获得写锁的操作总是能够成功。
读操作时不需要获得锁(即读操作永远不会被阻塞),然而在有些情况下读操作需要重试。
Sequential Lock更轻量级,可伸缩性相对更好。
...
Linux in a Nutshell
Linux System Programming
Linux Kernel Development
推荐这三本书。一不小心成了Robert Love的粉丝。
1 Overview
InnoDB自动检测死锁。如果死锁发生,那么InnoDB会回滚权重相对小的事务。实际上,InnoDB中存在以下两种类型的死锁:
真正的事务间循环等待。
在进行死锁检测的过程中,如果InnoDB认为检测的代价过大(例如需要递归检查超过200个事务等),那么InnoDB放弃死锁检测,并认为死锁发生。
本文中使用的MySQL版本: 5.1.42,InnoDB plugin版本: 1.0.6。
2 Scenarios
如果死锁发生,除了应用程序的日志之外,最有价值的信息恐怕就是show innodb status的输出了,然而 ...
1 Overview
Git作为一种Distributed Version Control System,和传统的Contralized Version Control System(例如SVN,CVS)相比存在很多不同之处,以下笔者认为相对来说比较重要的区别。本文提到的SVN版本为1.5,Git版本为1.7.0。
2 Differences
2.1 Data Storage
在每次提交时,SVN都会累加global revision number,同时在Data Store中存储revision间的差异部分;跟SVN相比,Git在提交时会对reposi ...
Happy new year
- 博客分类:
- Miscellaneous
It has been a long time that I didn't put down anything on my blog. I was busy implementing a client/server prototype using quickfix/J and Eclipse RCP. This reminds me a lot of things that I‘ve forgotten. I wish I could finish it without staying up too late. Anyway happy new year.
1 Overview
最近一篇关于MySQL HandlerSocket的blog吸引了不少人的注意,甚至MySQL Performance Blog上也有关于HandlerSocket的性能评测。该blog中声称对于一个CPU bound而非IO bound的MySQL Server(即绝大部分的数据可以从缓存中取得,例如InnoDB Buffer Pool有接近100%的命中率),使用HandlerSocket可以将查询性能提升7.5倍。目前HandlerSocket已经被其作者应用到生产环境,效果良好。笔者在昨天抽空安装并试用了一下HandlerSocket Plugin。
...
1 first class function & currying.
2 trait. 可以有方法的默认实现,可以限定被mixed into的类型,可以在语义上更精确地限定方法参数的类型等。
3 variance. 相比Java Generic中有限的支持,Scala中的variance更加灵活。
4 structural type. 基于反射的语法糖,有的时候会发现它非常便利。
5 implicit parameters and conversions. 双刃剑,小心使用。
6 object definition.
TBC
1 Overview
Bloom filter最早由 Burton Howard Bloom提出,是一种用于判断成员是否存在于某个集合中的数据结构。 Bloom filter的判断基于概率论:
如果某个成员存在于集合中,那么Bloom filter不会返回假(即不存在),也就是说false n ...
以下内容仅代表个人观点,绝无广告意图。
Learning Python 3rd Edition. 尽管有些厚(英文版700多页),但是不失为Python入门的绝佳书籍之一。
Dive into Python. Python进阶,内容比较全面。
The Definitive Guide to Django Second Edition. Django入门书籍,内容浅显。
Pro Django. Django进阶的绝佳书籍之一。
Developing with Google App Engine. GAE 入门。
不到两周的时间内阅读了1000多页的英文文档,编写了300页的ppt,组织了近20小时的培训,平均每天睡眠4~5小时。How did I make it through!
本文所有例子均基于Python 3.1.2
1 Overview
首先简单介绍几种常见的舍入模式:
ROUND_CEILING : 向正无穷大(Infinity)方向舍入。
ROUND_FLOOR : 向正无穷大(–Infinity)方向舍入。
ROUND_UP : 向远离0的方向舍入。
ROUND_DOWN : 向 ...
今天突然发现很久以前在JavaEye上发表的Efftive J2ME系列的文章只剩下最后一篇,其余三篇莫名其妙的被失踪了。之前一直以为JavaEye是个保存技术文档的不错选择,现在看来也未必了。无奈只得在网上试试搜索一下,幸亏有别的网站转载了这几篇文章, 于是重新在JavaEye上发表一遍。在重新发表的时候,貌似知道了其中缘由:文档里含有中文BOMB字样(这是因为我写的一个游戏名字叫BomberMan),被和谐了。