- 博客(6)
- 资源 (1)
- 收藏
- 关注
转载 从LongAdder看更高效的无锁实现
http://coolshell.cn/articles/11454.html benchmark:http://blog.palominolabs.com/2014/02/10/java-8-performance-improvements-longadder-vs-atomiclong/ 用空间换时间,
2014-10-18 22:31:35
953
原创 LuceneIndexFileDeleter会保留初始的commit
给实时索引添加了merge策略,持续更新时发现有做merge,但索引目录中的段数远远大于RealTimeIndexWriter中的段数,就是有些merge的段应该删除,目录中没有删除。而关闭searcher之后索引目录就变小了,段数也对了。 定位之后发现IndexFileDeleter构造函数中有个checkpoint(segmentInfos,false),false会将第一个commit加入
2014-10-18 22:04:51
1206
原创 PForDelta的介绍论文
ttp://paperhub.s3.amazonaws.com/7558905a56f370848a04fa349dd8bb9d.pdf FOR(Frame-Of-Reference),PFor(Patched Frame-Of-Referene),cpu优化的guide line: 1.减少control hazard,这个影响最大,cpu带分支预测功能在条件测试之前就先走,发现有错
2014-10-18 22:02:37
1848
原创 JDK6中AtomicInteger的实现
AtomicInteger extends Number implements Serializable,内部果然是一个volatile int,但是compareAndSet(CAS),incrementAndGet等原子操作都依赖于unsafe.compareAndSwap,这个应该是对不同平台又不同实现,汇编级别的lock free,并注意每次compareAndSet只有当true时才返回
2014-10-18 21:59:05
1084
原创 Lucene段合并的参数估计
使用lucene默认的TieredMergePolicy,索引更新时最大会占用多少硬盘,要看mergepolicy何时触发merge。 从代码中可以看出,只有当eligible.size() >= allowedSegCountInt时才触发。 eligible是大小不超过阈值的段集合,allowedSegCountInt计算如下,设segsPerTier为a,maxMergeAtOnce为b
2014-10-18 21:56:16
1968
原创 Facebook图搜索unicorn
unicorn(独角兽),里面类似于倒排链的reference list,对应的term如friend:2,表示entity 2的朋友列表,整个结构是shard的,上面是top aggregator,然后是rack aggreator,支持StrongOr,weakAnd,Difference操作,还有apply(如找朋友的朋友),extract,有个nosql图数据库neo4j也是类似的,只是听
2014-10-18 21:50:01
1523
Scons User Guide 2.01
2011-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅