`
whitesock
  • 浏览: 483697 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
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 Readling List

Linux in a Nutshell Linux System Programming Linux Kernel Development 推荐这三本书。一不小心成了Robert Love的粉丝。
Meet people, learn stuff.
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

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

Bloom Filter

    博客分类:
  • SE
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),被和谐了。
Global site tag (gtag.js) - Google Analytics