CodingCat

CodingCat's Blog

Making Sense of Performance in Data Analytics Frameworks

花了半个下午的时间读了一下这篇论文[1]。这是一篇测量性的文章,写的很浅显易懂,所以实属快餐式的论文,但是揭示的道理,却让以后做大数据框架的人们多了一些思考的空间,而不是疯狂引用过去的结论。 在很长一段时间,学术界都有一个定论,数据处理框架的瓶颈主要来源于磁盘操作、网络传输和异常任务(Straggler),也产生了很多很多针对这三个问题做优化的paper。这篇来自于伯克利的paper对这三...

Code Review of Spark on Yarn - Client Mode

What I will/won’t talk about In this article, I will go through the code of Spark on Yarn (Client mode) to present the interaction between the components. To avoid being a super-long article preve...

Really like this analogy about API design

Recently I’m reading the book “Practical API Design: Confessions of a Java Framework Architect” by Jaroslav Tulach, the main architect of NetBean I read an analogy between API design and the Physi...

如何减少Locality Sensitive Hashing系统中的哈希表的数量

最近读了 Multi-Probe LSH: Efficient Indexing for HighDimensional Similarity Search [1] 这篇文章,觉得还是很有意思的,做一个简短的总结。 对于LSH 已经在(http://codingcat.me/blog/2015/02/10/streaming-similarity-search-over-one-billi...

TL; DR of Some Thoughts on Go and Erlang

Recently, I read this blog article: http://blog.erlware.org/some-thoughts-on-go-and-erlang/ It explains some thoughts of the author on Go and Erlang, especially the fault-tolerance mechanism. Here...

论文阅读笔记: Streaming Similarity Search over one Billion Tweets using Parallel Locality-Sensitive Hashing

在很多的场景下,尤其是推荐系统中,关键的一步就是计算元素之间的相似度。在传统意义上,用户的相似度往往是通过离线计算方式生成的,比如user-based, item-based, 这些算法,而随着技术的发展,工业界和学术界都在寻求,把这种离线计算转化为在线计算的途径。这篇来自VLDB的论文就是对这个问题的一种尝试性的解决方案。 关于similarity search 所谓的simila...

论文阅读笔记: Algorithmic Improvements for Fast Concurrent Cuckoo Hashing

这是一篇发表在EuroSys 2014的论文, 和上一篇(/blog/2015/01/19/mem3c_notes/) 阅读笔记来自于同一个组,都是CMU的david anderson的学生发的,同样也是和Intel合作,同样也是提出了一种高效的并发Cuckoo Hashing的实现。 基于上一篇的基础,这一篇就不再过多的阐述哈希表和Cuckcoo Hashing的基础知识了。这篇所做的工...

论文阅读笔记: MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing

这是一篇发表在NSDI 2013的论文,其基本思想是利用并行的Cuckoo 哈希算法和CLOCK替换算法,来取代Memcached的Cache放置算法,在以读操作为主导的场景下达到更高的系统吞吐量。 Memcached的基本做法以及哈希表的基本概念 Memcache将内存分割为1MB大小的内存页,每一个内存页再被细分为固定大小的chunk. 为了适应不同大小的object, memcac...

从Akka 内存可见性的实现看JVM volatile机制

引发写这篇博客的原因是前几天和人讨论给spark打的一个patch,说到,为什么akka Actor的内部状态不需要显示声明为volatile也能做到多线程间的内存可见。在stackoverflow上找到了一个答案,但是很显然回答者Roland (Akka的Leader) 回答的过于简洁了,没有把背后的volatile语义原理讲出来,所以这篇博客的就是要讲出这个所以然来。 背景知识 “A...

a nice talk about Paxos

http://vimeo.com/105851447