代码改变世界

随笔档案-2012年01月

The Log-Structured Merge-Tree(译)(转载)

2012-01-14 09:35 by Haippy, 2364 阅读, 收藏, 编辑
摘要: 随着NoSql系统尤其是类BigTable系统的流行,LSM-Tree这个名词也开始变得不再陌生。相信大多数了解NoSql系统的人,基本上都会听到 过LSM-Tree这个名词,但是读过其原始论文的人估计就不是很多了。在我看来,LSM-Tree之于BigTable的重要性就像一致性hash之于 Dynamo。溯本求源一向是本人的追求,希望可以从最初的文字中找到蕴含在结构之下的更多思考。老实说,这篇论文也算是很长的了,原文共30页,涉及了 不少公式,因此翻起来也不会那么简单。 阅读全文

LRU算法的简单实现( C语言 + uthash包)

2012-01-12 21:20 by Haippy, 6036 阅读, 收藏, 编辑
摘要: LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。 阅读全文

Learning by doing 系列文章(之一)如何在 Python 中使用 epoll ?

2012-01-11 17:27 by Haippy, 2061 阅读, 收藏, 编辑
摘要: Python 在 2.6 版中引入了用于处理Linux epoll系统调用的API,本文简单地介绍 python 中与 epoll 有关的 API,欢迎大家提出问题。 阅读全文

epoll 使用详解

2012-01-09 16:32 by Haippy, 45344 阅读, 收藏, 编辑
摘要: epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高),epoll 与 FreeBSD的kqueue类似,都向用户空间提供了自己的文件描述符来进行操作。 阅读全文

Python简单的多客户端聊天室程序

2012-01-06 10:28 by Haippy, 4181 阅读, 收藏, 编辑
摘要: 本文所示代码将教你如何使用Python标准库中的select.select模块实现多路复用的命令行下CS模式的聊天室程序。 阅读全文