<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[365天]]></title><description><![CDATA[做喜欢的事]]></description><link>https://blog.youkuaiyun.com/OpenNaive</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OpenNaive]]></copyright><item><title><![CDATA[Redis的内存碎片]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/40587611</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/40587611</guid><author>OpenNaive</author><pubDate>Wed, 29 Oct 2014 16:02:02 +0800</pubDate><description><![CDATA[Redis默认使用jemalloc分配内存，根据fast'14的最佳论文的说法，当遇到变长key-value负载时，会出现碎片问题：内存利用率低，实际分配的内存比所需要的内存多。因此我用YCSB对Redis的内存进行了测试。

实验的第1阶段：向Redis插入100万条记录，key为20字节，value为100字节，皆为定长，理论上的有效数据大约是120MB。阶段2：产生90万个update请]]></description><category></category></item><item><title><![CDATA[谷歌技术"三宝"之BigTable]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7532589</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7532589</guid><author>OpenNaive</author><pubDate>Fri, 04 May 2012 22:09:29 +0800</pubDate><description><![CDATA[2006年的OSDI有两篇google的论文，分别是BigTable和Chubby。Chubby是一个分布式锁服务，基于Paxos算法；BigTable是一个用于管理结构化数据的分布式存储系统，构建在GFS、Chubby、SSTable等google技术之上。相当多的google应用使用了BigTable，比如Google Earth和Google Analytics，因此它和GFS、MapRed]]></description><category></category></item><item><title><![CDATA[谷歌技术"三宝"之MapReduce]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7514146</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7514146</guid><author>OpenNaive</author><pubDate>Thu, 26 Apr 2012 22:01:57 +0800</pubDate><description><![CDATA[江湖传说永流传：谷歌技术有"三宝"，GFS、MapReduce和大表（BigTable）！
谷歌在03到06年间连续发表了三篇很有影响力的文章，分别是03年SOSP的GFS，04年OSDI的MapReduce，和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议，在计算机学会推荐会议里属于A类。SOSP在单数年举办，而OSDI在双数年举办。
那么这篇博客就来介绍一下]]></description><category></category></item><item><title><![CDATA[谷歌技术"三宝"之谷歌文件系统]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7483523</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7483523</guid><author>OpenNaive</author><pubDate>Sat, 21 Apr 2012 17:28:31 +0800</pubDate><description><![CDATA[题记：初学分布式文件系统，写篇博客加深点印象。GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理。
虽然"The Google File System " 是03年发表的老文章了，但现在仍被广泛讨论，其对后来的分布式文件系统设计具有指导意义。然而，作者在设计GFS时，是基于过去很多实验观察的，并提出了很多假设作为前提，这等于给出了一个GFS的应用场景。所以我们自己在设计分布式系统时，一定要]]></description><category></category></item><item><title><![CDATA[使用math库遇到的错误]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7442924</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7442924</guid><author>OpenNaive</author><pubDate>Mon, 09 Apr 2012 22:03:26 +0800</pubDate><description><![CDATA[程序里需要使用pow函数，虽然我已经#include ，但是make的时候仍然出现错误：undefined reference to 'pow'。
在网上查找了一些解决方案，明白了math库是需要手动加上-lm链接的，但是仍有些问题不明白。
Q1：pow的参数如果是两个常数，则不加-lm也是正确的，why？
Q2：-lm的位置似乎有讲究，gcc $(OBJS) -o exbin -lm可以链]]></description><category></category></item><item><title><![CDATA[三种二叉树遍历的非递归实现]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7442537</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7442537</guid><author>OpenNaive</author><pubDate>Mon, 09 Apr 2012 20:43:02 +0800</pubDate><description><![CDATA[今天偶然翻出了很久以前写的一篇博客，是关于三种二叉树遍历的非递归实现的，转到这儿来吧。程序都是伪代码，因为是考研复习期间写的，数据结构参考了严蔚敏的《数据结构》。
先看递归实现：

void Traverse(BiTree T){
    if(T){
    //visit,先序遍历
    Traverse(T->lchild);
    //visit,中序遍历
    Travers]]></description><category></category></item><item><title><![CDATA[主文件系统 vs 二级文件系统 （EMC篇）]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7362766</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7362766</guid><author>OpenNaive</author><pubDate>Mon, 19 Mar 2012 21:32:15 +0800</pubDate><description><![CDATA[文主要基于FAST11和FAST12的两篇论文：A study of practical deduplication和Characteristics of backup workloads in production systems。前者来自微软，主要分析的是用于主存储系统的文件系统；后者来自EMC，分析的是用于二级存储系统（如备份、归档）的文件系统。两篇论文共同的特点是实验的数据集都非常庞大，因]]></description><category></category></item><item><title><![CDATA[主文件系统 vs 二级文件系统 （微软篇）]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7357132</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7357132</guid><author>OpenNaive</author><pubDate>Sun, 18 Mar 2012 11:02:00 +0800</pubDate><description><![CDATA[本文主要基于FAST11和FAST12的两篇论文：A study of practical deduplication和Characteristics of backup workloads in production systems。前者来自微软，主要分析的是用于主存储系统的文件系统；后者来自EMC，分析的是用于二级存储系统（如备份、归档）的文件系统。两篇论文共同的特点是实验的数据集都非常庞大，]]></description><category></category></item><item><title><![CDATA[最佳论文：构建高性能的重复数据删除系统]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7096719</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7096719</guid><author>OpenNaive</author><pubDate>Mon, 26 Dec 2011 15:05:19 +0800</pubDate><description><![CDATA[USENIX年度会议（USENIX Annual Technical Conference）是计算机体系结构的顶级会议之一，每年举办一次。2011年ATC会议的最佳论文奖被来自赛门铁克的一篇论文摘得：Building a High-performance Deduplication System。最近几年关于重复数据删除的研究达到了高潮，2011年FAST的最佳论文是一篇来自微软的关于重复数据删除]]></description><category></category></item><item><title><![CDATA[磁盘分区]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7094623</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7094623</guid><author>OpenNaive</author><pubDate>Thu, 22 Dec 2011 15:57:09 +0800</pubDate><description><![CDATA[有台服务器的分区不太合理，今天重新给分了一下，顺便整理一下资料。

1 概念

通常新买回来的电脑，都习惯先对磁盘进行分区。磁盘分区就是将一块物理磁盘分为好几个逻辑存储单元，这几个单元之间互相独立，从外部看就好像有多块物理磁盘。分区编辑软件（比如fdisk）可以对磁盘执行创建、删除分区等操作。每个分区都可以有自己的文件系统。
对磁盘进行分区有很多的好处。保护和孤立数据，一个分区损坏了并不]]></description><category></category></item><item><title><![CDATA[大话存储]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7058141</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7058141</guid><author>OpenNaive</author><pubDate>Fri, 09 Dec 2011 21:11:51 +0800</pubDate><description><![CDATA[这本书买了一年了，最近终于比较完整的读了一遍，感觉收获不少，应该写一篇读后感吧。
首先这本书是讲存储的，市面上关于存储的书少之又少，好书就更是稀缺资源，这本书可以说一定程度上弥补了资料的缺失。书里几乎涉及到了存储的方方面面，涵盖了磁盘、RAID、FC、SAN、NAS、备份等各个方向。这本书里不仅对各个技术的概念、原理进行了讲解，还包括了一些产品的实践，就称它为理论联系实际吧。入学的时候，自己是完]]></description><category></category></item><item><title><![CDATA[关联规则挖掘（二）：Apriori算法]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7051460</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7051460</guid><author>OpenNaive</author><pubDate>Thu, 08 Dec 2011 21:11:04 +0800</pubDate><description><![CDATA[1 算法简介

在数据挖掘领域，Apriori算法是挖掘关联规则的经典算法。Apriori算法采用的是自底向上的方法，从1-频繁集开始，逐步找出高阶频繁集。
它的基本流程是：第一次扫描交易数据库D时，产生1-频繁集。在此基础上经过连接、修剪产生2-频繁集。以此类推，直到无法产生更高阶的频繁集为止。在第k次循环中，也就是产生k-频繁集的时候，首先产生k-候选集，k-候选集中每一个项集都是对两个]]></description><category></category></item><item><title><![CDATA[关联规则挖掘（一）：基本概念]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7047823</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7047823</guid><author>OpenNaive</author><pubDate>Wed, 07 Dec 2011 11:04:44 +0800</pubDate><description><![CDATA[本文主要来自《数据仓库和数据挖掘》一书，这本书讲的和维基百科里的非常相似，怀疑是从某本外文书籍里翻译过来的。

关联规则挖掘（Association rule mining）是数据挖掘中最活跃的研究方法之一，可以用来发现事情之间的联系，最早是为了发现超市交易数据库中不同的商品之间的关系。
这里有一则沃尔玛超市的趣闻。沃尔玛曾今对数据仓库中一年多的原始交易数据进行了详细的分析，发现与尿布一起被]]></description><category></category></item><item><title><![CDATA[Linux文件系统]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7043171</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7043171</guid><author>OpenNaive</author><pubDate>Tue, 06 Dec 2011 14:16:19 +0800</pubDate><description><![CDATA[从图书馆借的《Linux文件系统》，作者是Moshe Bar，他还写了另一本书叫《Linux internals》，应该说还是挺牛的。
但是翻看了几页后，终于忍不住给还了回去，因为翻译太烂了，而且有些古老。
首先说说翻译，除了有些不流畅外，最让人不能忍受的是通篇充斥了缓冲区、缓冲区缓存、缓存这样的模糊不清的翻译，不了解的人很难区分这些词语的意思。
抱怨一下，国内有很多翻译过来的经典书籍（谁让]]></description><category></category></item><item><title><![CDATA[谁养鱼（四）：遗传算法的实现]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7020679</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7020679</guid><author>OpenNaive</author><pubDate>Mon, 28 Nov 2011 19:13:30 +0800</pubDate><description><![CDATA[1 简介
根据达尔文的进化论，生物种群从低级、简单的类型逐渐发展成为高级、复杂的类型。各种生物要生存下去就必须进行生存斗争，具有较强生存能力的生物个体容易存活下来，并有较多的机会产生后代；具有较低生存能力的生物则被淘汰，或者产生后代的机会越来越少，直至消亡。

遗传算法借鉴了生物界自然选择、遗传变异机制，将种群代表一组问题的解，通过对当前种群施加选择、交叉和变异等一系列遗传操作，从而产生新一]]></description><category></category></item><item><title><![CDATA[谁养鱼（三）：如何让计算机认识线索]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7013306</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7013306</guid><author>OpenNaive</author><pubDate>Fri, 25 Nov 2011 21:52:44 +0800</pubDate><description><![CDATA[在谁养鱼问题中给出了15条线索，如何让计算机识别这些线索，并作出正确的判断呢？
因为房子的顺序是固定，给它们编号1、2、3、4、5。每个房子都有五种类型的属性，分别是颜色、国籍、饮料、宠物、香烟，并且不同的房子之间相同类型的属性是不同的。

通过观察可以发现，线索可以分为三类：固定线索，绑定线索和相邻线索。固定线索指的将某个属性固定在某个序号的房子，比如线索8和线索9，分别将牛奶固定在中间房]]></description><category></category></item><item><title><![CDATA[谁养鱼（二）：如何将排列映射到整数域]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/7002140</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/7002140</guid><author>OpenNaive</author><pubDate>Wed, 23 Nov 2011 14:59:41 +0800</pubDate><description><![CDATA[今天又考虑了一下谁养鱼的问题，觉得用遗传算法来解题值得一试，但是主要的难点有三：

如何让计算机理解线索？即如何表示绑定、相邻等关系？比如丹麦人喝茶的绑定关系，绿房子在白房子左边的左相邻关系等。问题空间和遗传空间如何转换？问题空间是红黄蓝绿白这样的排列，如何将其转换成遗传空间的二进制编码？也就是编码问题。遗传算法如何设计？包括种群规模，初始化，适应度函数，选择、交差、变异算子，终止条件等。]]></description><category></category></item><item><title><![CDATA[谁养鱼（一）：人工解法]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/6998493</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/6998493</guid><author>OpenNaive</author><pubDate>Mon, 21 Nov 2011 23:02:05 +0800</pubDate><description><![CDATA[题目：据说有五个不同颜色的房间排成一排，每个房间里分别住着一个不同国籍的人，每个人都喝 一种特定品牌的饮料，抽一种特定品牌的烟，养一种宠物，没有任意两个人抽相同品牌的香烟，或喝相同品牌的饮料，或养相同的宠物，问题是谁在养鱼作为宠物？ 为了寻找答案，给出了十五条线索：


英国人住在红色的房子里；瑞典人养狗作为宠物；丹麦人喝茶；绿房子紧挨着白房子，在白房子的左边；绿房子的主人喝咖啡；抽Pall]]></description><category></category></item><item><title><![CDATA[图灵机和NP难度问题]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/6991370</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/6991370</guid><author>OpenNaive</author><pubDate>Sat, 19 Nov 2011 19:57:14 +0800</pubDate><description><![CDATA[这学期选了NP难度这门课，挺感兴趣。但是在和同学讨论问题的时候，发现大家对NP难度的认识非常模糊，什么是P!=NP？什么是NP完全？什么是NP难度？都有自己的一套说法。于是自己去查阅了一些资料，可能存在理解不正确的地方，但尽量要把这些问题讲清楚。
关于NP方面的知识涉及到很多哲学和数学的内容，有非常多的定理，很难理解，这里只介绍一些基本概念。下面就从最最基本的图灵机开始说起。
1 图灵机
图]]></description><category></category></item><item><title><![CDATA[拟人拟物法求解不等圆Packing问题]]></title><link>https://blog.youkuaiyun.com/OpenNaive/article/details/6988839</link><guid>https://blog.youkuaiyun.com/OpenNaive/article/details/6988839</guid><author>OpenNaive</author><pubDate>Fri, 18 Nov 2011 16:46:19 +0800</pubDate><description><![CDATA[NP难度这门课还是比较有意思的，老师布置了一道作业，写一个用拟人拟物法求解不等圆Packing问题的小程序。
问题描述：在一个已知的容器中希望能放下N个不同形状大小的物体，其中界限容器的封闭边境以及各个物体都是不可入的刚性实体，如果客观上放不下，我们要求做出放不下的判断；如果客观上放得下，则要求给出每个物体的位置和方向。
这就是所谓的Packing问题，我们将问题简化了，只考虑圆形的容器和物体]]></description><category></category></item></channel></rss>