<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>旁门左道 &#187; nosql</title>
	<atom:link href="http://log.medcl.net/item/category/nosql/feed/" rel="self" type="application/rss+xml" />
	<link>http://log.medcl.net</link>
	<description>记录生活</description>
	<lastBuildDate>Tue, 29 Nov 2011 15:39:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>brisk调试部署全纪录</title>
		<link>http://log.medcl.net/item/2011/09/brisk-debugging-deployment-quanji-lu/</link>
		<comments>http://log.medcl.net/item/2011/09/brisk-debugging-deployment-quanji-lu/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 14:48:08 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[cassandra]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[brisk]]></category>
		<category><![CDATA[hive]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=885</guid>
		<description><![CDATA[brisk快速测试记录。 参考链接： http://www.datastax.com/docs/0.8/brisk/about_pig 设置环境变量 vi /etc/profile &#160; export BRISK_HOME=/usr/local/brisk-1.0 export PATH=$PATH:$BRISK_HOME/bin 生效 . /etc/profile On linux systems, you need to run the following as root su echo 1 &#62; /proc/sys/vm/overcommit_memory This is to avoid OOM errors when tasks are spawned. --此步骤不需要-- 如果从源码编译，可能需要ant compile and download all dependencies wget http://mirrors.kahuki.com/apache/ant/binaries/apache-ant-1.8.2-bin.tar.gz tar vxzf apache-ant-1.8.2-bin.tar.gz .. ... ant [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2011/09/brisk-debugging-deployment-quanji-lu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>memcached安装</title>
		<link>http://log.medcl.net/item/2011/09/installing-memcached/</link>
		<comments>http://log.medcl.net/item/2011/09/installing-memcached/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 14:35:56 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[Memcached]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[k-v]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=882</guid>
		<description><![CDATA[http://memcached.org/ wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz tar vxzf memcached-1.4.7.tar.gz cd memcached-1.4.7 ./configure 提示： checking for libevent directory... configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/ //安装libevent cd .. wget http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz tar vxzf libevent-2.0.13-stable.tar.gz cd libevent-2.0.13-stable ./configure make make install //重新安装 cd .. cd memcached-1.4.7 ./configure sudo make sudo make install //启动memcached ./memcached-debug ./memcached-debug: error while [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2011/09/installing-memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cassandra 0.7 及Lucandra 0.7 升级过程记录</title>
		<link>http://log.medcl.net/item/2010/09/cassandra-0-7-and-upgrade-records-lucandra-0-7/</link>
		<comments>http://log.medcl.net/item/2010/09/cassandra-0-7-and-upgrade-records-lucandra-0-7/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 04:26:36 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[cassandra]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[0.7]]></category>
		<category><![CDATA[lucandra]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[升级]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=581</guid>
		<description><![CDATA[Cassandra 0.7 及Lucandra 0.7 升级过程记录 Cassandra 0.7 中，所有的Schema信息都是liveupdate，所以不需要从配置文件加载，但是之前的那么多配置，如果可以直接加载进来就好了，cassandra提供了schematool就是解决这个问题的。 [这里我是直接拷贝的Lucandra0.7里的cassandra.yaml到cassandra的配置目录，如果要导入的是你之前的配置，你还需要使用执行config-converter来转换你之前的配置，会自动生成相应的yaml文件 具体过程： ./cassandra-cli connect localhost 9160 show keyspaces 显示如下： &#91;default@unknown&#93; show keyspaces system ok,下面开始执行schemaconvert medcl@ubuntu:~/apache-cassandra-0.7.0-beta1/bin$ ./config-converter Found previous configuration: /home/medcl/apache-cassandra-0.7.0-beta1/conf/storage-conf.xml TFramedTransport will have a maximum frame size of 15MB Creating new configuration: /home/medcl/apache-cassandra-0.7.0-beta1/conf/storage-conf.xml 继续执行schema导入 medcl@ubuntu:~/apache-cassandra-0.7.0-beta1/bin$ ./schematool localhost 8080 import # Note: This tool is deprecated and will [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/09/cassandra-0-7-and-upgrade-records-lucandra-0-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Hadoop Tuning &amp; Optimisation</title>
		<link>http://log.medcl.net/item/2010/09/advanced-hadoop-tuning-u0026amp-optimisation/</link>
		<comments>http://log.medcl.net/item/2010/09/advanced-hadoop-tuning-u0026amp-optimisation/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:34:02 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[分布式]]></category>
		<category><![CDATA[Optimisation]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=573</guid>
		<description><![CDATA[周末去参加了Milind Bhandarkar的【Hadoop应用程序性能调优案例分析】，顺便参观了Yahoo的研发中心，现场到的人不少，收获也蛮多的，Milind Bhandarkar介绍了hadoop的配置、调优以及一些在Yahoo的经验技巧，还介绍了一个叫Hadoop Vaidya的诊断分析框架，附ppt下载地址。 下面也是找的hadoop调优的一个ppt，学习in'。 PPT on Advanced Hadoop Tuning n Optimisation View more presentations or Upload your own. http://hadoop.apache.org/common/docs/r0.20.1/vaidya.html#Purpose Tags: Hadoop, Optimisation, tuning]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/09/advanced-hadoop-tuning-u0026amp-optimisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cassandra 0.7 蓄势待发</title>
		<link>http://log.medcl.net/item/2010/08/cassandra-0-7-ready/</link>
		<comments>http://log.medcl.net/item/2010/08/cassandra-0-7-ready/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:17:34 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[分布式]]></category>
		<category><![CDATA[小道消息]]></category>
		<category><![CDATA[cassandra]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=539</guid>
		<description><![CDATA[Cassandra 0.7beta已经出了，0.7的正式发布估计也是很快了，我们先来看看这次0.7带来了什么新的变化吧。 1.支持二级索引，superColumn下的columns终于可以直接查询了，（10万Columns记录SuperColumn读取居然要10多分钟，汗！） 2.row记录压缩时不需要读入到内存 3.large row的支持 4.Keyspace等相关配置可以动态修改了，不需要重启服务 5.配置文件变化storage.xml-&#62;cassandra.yaml 6.支持truncate一次清空ColumnFamily的数据 7.支持Hadoop的输出格式 8.通过rowcache提高8倍读取速度（太重要了） 9.新的数据分区方式：ByteOrderedPartitioner 10.新的数据类型：IntegerType 11.添加preload_row_cache选项 12.默认使用framed transport （早应该了） 13.range slices 查询的优化及multi_get_count的支持 14.row keys 使用 bytes类型，提高性能 15.sstable新增版本管理 等等。。 还有一些其他的优化或调整可以看下面的详细信息 State of Cassandra, August 2010 View more presentations from jbellis. JPA 1.0 ORM library for the Cassandra database. ，关注ing' 其他相关消息：DBTHINK‘s Cassandra Summit 2010上两个不错的ppt 消息来源：https://svn.apache.org/repos/asf/cassandra/trunk/NEWS.txt 0.7.0 ===== Features -------- [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/08/cassandra-0-7-ready/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hypertable Berlin Buzzwords</title>
		<link>http://log.medcl.net/item/2010/08/hypertable-berlin-buzzwords/</link>
		<comments>http://log.medcl.net/item/2010/08/hypertable-berlin-buzzwords/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 10:53:38 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[分布式]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=533</guid>
		<description><![CDATA[好片分享。 Hypertable Berlin Buzzwords View more presentations from hypertable. No tags for this post.]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/08/hypertable-berlin-buzzwords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloom Filter</title>
		<link>http://log.medcl.net/item/2010/07/bloom-filter/</link>
		<comments>http://log.medcl.net/item/2010/07/bloom-filter/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 02:50:50 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[Bloom Filter]]></category>
		<category><![CDATA[哈希]]></category>
		<category><![CDATA[数据结构]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=495</guid>
		<description><![CDATA[收集的相关资料，学习一下。 From:焦萌, http://blog.csdn.net/jiaomeng/archive/2007/01/28/1496329.aspx http://blog.csdn.net/jiaomeng/archive/2007/01/27/1495500.aspx HelloDba  http://www.hellodba.net/2009/04/bloom_filter.html 从哈希存储到Bloom Filter 焦萌 2007年1月28日 先解释一下什么是哈希函数。哈希函数简单来说就是一种映射，它可取值的范围（定义域）通常很大，但值域相对较小。哈希函数所作的工作就是将一个很大定义域内的值映射到一个相对较小的值域内。 传统的哈希存储 假设要哈希的集合为S，它有n个元素。传统的哈希方法是，将哈希区域组织成h（h &#62; n）个格子的列表，每一个格子都能存储S中的一个元素。存储时将S中的每一个元素映射到{0, 1, … , h-1}的范围内，然后以这个值为索引将此元素存储到对应的格子内。由于哈希函数将一个大集合映射到一个小集合中，所以存在将大集合中的多个元素映射到同一位置的情况，这就是所谓的碰撞（Collision）。当碰撞发生时，有多种策略可供选择，比如用链表将映射到同一位置的元素串起来，或者在碰撞发生时再进行哈希映射直到找到空位为止等等。 传统的哈希方法不会发生错误，而且存储的元素还可以复原。如果哈希函数选择得当，碰撞出现的情况比较少，那么查找某一个元素也很快。但是，如果你哈希某个集合只是为了判断某个元素是否在这个集合中，那么你会发现好像存储整个集合有点浪费。按传统的哈希方法判断某个元素是否属于集合时，会把这个元素和它映射位置上的元素进行匹配，如果完全匹配则说明属于集合，如果不匹配则不属于。在绝大部分查找都不能匹配的情况下（这常常是实际中的情况），我们会发现匹配的过程经常用不到整个元素，因为元素的一部分就可以判断不匹配了。基于“部分信息就能判断不匹配”这个思路，Burton Bloom（Bloom Filter的发明者）提出了一种改进的方法。 改进的哈希存储 在这种改进的方法中，哈希区域和前面一样仍然被组织成格子的列表。但这次并不直接将集合元素存在格子里，而是将每一个元素编码然后将编码存在格子里。假设每个集合元素要占b位，编码后要占c（c &#60; b）位。由于编码位数少于元素位数，不同元素的编码有可能相同，因此在查找元素时可能会出现错误。编码位数取决于你期望的错误率：编码位数越多，错误就越少，反之则越大；当错误少到一定程度（大约2-b），编码位数就足以存下整个元素，因此就变回了传统的哈希存储。 这种方法对传统的哈希存储进行了改良，允许用户在错误率和存储空间之间作权衡。这里我们已经能够看到Bloom Filter的一点端倪。如果说这种方法已经孕育了“正确率换空间”的思想的话，那么Bloom Filter更是这个思想的大胆实践，它完全摆脱了传统的哈希存储方法，在存储空间使用和减少错误率方面又进了一步。 Bloom Filter 在Bloom Filter中，哈希区域的每一位都被当成是独立的可寻址的单元。在对集合元素进行编码时，同时使用若干个独立的哈希函数，将每一个哈希函数映射的地址都置为1。这种编码方法可谓是另辟蹊径，摆脱了原来一个格子一个格子的存储方法。在改进的哈希存储中，编码位数是和正确率交换的筹码，而在Bloom Filter中，筹码变成了哈希函数的个数以及整个哈希区域（即位数组）的大小。如果想具体知道合适的哈希函数个数和位数组大小，请参阅第一篇Bloom Filter概念和原理。 和前面两种哈希存储方法相比，Bloom Filter最大的优势自然是它的空间效率。另外，由于Bloom Filter不用处理碰撞（Collision），因此它在增加或查找集合元素时所用的时间完全恒定（哈希函数的计算时间），无论集合元素本身有多大，也无论多少集合元素已经加入到了位数组中。由于Bloom Filter和改进的哈希存储都对集合元素进行了编码，因此想要从哈希区域中恢复集合元素并不容易。但同时，如果你不想让别人直接看到集合元素，这样的编码处理倒可以看成是一种加密，有效保护了你的隐私。 Bloom Filter很大的一个缺点就是不能删除元素。由于Bloom Filter不处理碰撞，有可能多个哈希函数都映射到了同一位，因此不能简单地在删除时将1置为0。后面我们会看到，Counting Bloom Filter通过将每一位扩展为一个Counter来解决这一问题。 参考资料 [1] B. Bloom. Space/Time Tradeoffs in Hash Coding with Allowable [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/07/bloom-filter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FluentCassandra初体验</title>
		<link>http://log.medcl.net/item/2010/06/fluentcassandra/</link>
		<comments>http://log.medcl.net/item/2010/06/fluentcassandra/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 02:07:16 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[FluentCassandra]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=469</guid>
		<description><![CDATA[FluentCassandra是C#实现的Cassandra的客户端，我来试试看。 英文原文：http://coderjournal.com/2010/06/your-first-fluent-cassandra-application/ 第一步，Cassandra准备工作，略。 第二步，Cassandra配置Keyspace，打开cassandra配置文件storage-conf.xml，输入如下Keyspace信息（博客的简单存储）： &#60;Keyspace Name=&#34;Blog&#34;&#62; &#60;ColumnFamily Name=&#34;Posts&#34; ColumnType=&#34;Super&#34; CompareWith=&#34;UTF8Type&#34; CompareSubcolumnsWith=&#34;UTF8Type&#34; /&#62; &#60;ReplicaPlacementStrategy&#62;org.apache.cassandra.locator.RackUnawareStrategy&#60;/ReplicaPlacementStrategy&#62; &#60;ReplicationFactor&#62;1&#60;/ReplicationFactor&#62; &#60;EndPointSnitch&#62;org.apache.cassandra.locator.EndPointSnitch&#60;/EndPointSnitch&#62; &#60;/Keyspace&#62; 第三步，保存启动Cassandra。 第四步，下载FluentCassandra，位置http://github.com/managedfusion/fluentcassandra 第五步，新建工程，引用FluentCassandra（注意vs版本为2010），以下是主要的测试代码： using System; using System.Linq; using FluentCassandra; using FluentCassandra.Types; &#160; namespace TestClient &#123; internal class Program &#123; private static void Main&#40;string&#91;&#93; args&#41; &#123; using &#40;var db = new CassandraContext&#40;keyspace: &#34;Blog&#34;, host: &#34;localhost&#34;&#41;&#41; &#123; CassandraSuperColumnFamily&#60;UTF8Type, UTF8Type&#62; family = [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/06/fluentcassandra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>伏地魔变身开源数据库-Voldemort</title>
		<link>http://log.medcl.net/item/2010/06/voldemort/</link>
		<comments>http://log.medcl.net/item/2010/06/voldemort/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 14:55:46 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[分布式]]></category>
		<category><![CDATA[voldemort]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=466</guid>
		<description><![CDATA[《哈利·波特》系列中邪恶的大魔头，可以分为Vol-de-mort，在法语中是逃离死亡的意思，与伏地魔相称。如今Linkedin贡献的开源分布式kev-value数据库也叫Voldemort。 http://project-voldemort.com Voldemort &#38; Hadoop @ Linkedin, Hadoop User Group Jan 2010 Tags: nosql, voldemort]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/06/voldemort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cassandra Vs Voldemort</title>
		<link>http://log.medcl.net/item/2010/06/cassandra-vs-voldemort/</link>
		<comments>http://log.medcl.net/item/2010/06/cassandra-vs-voldemort/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 14:36:11 +0000</pubDate>
		<dc:creator>medcl</dc:creator>
				<category><![CDATA[nosql]]></category>
		<category><![CDATA[分布式]]></category>
		<category><![CDATA[key-value]]></category>
		<category><![CDATA[TRUNCATE TABLE]]></category>
		<category><![CDATA[voldemort]]></category>

		<guid isPermaLink="false">http://log.medcl.net/?p=456</guid>
		<description><![CDATA[  By Diego Erdody on May 07, 2010 Translated by Jametong  目的 在Medallia,我们的系统目前有一个关键组件是运行在一个开源的关系型数据库上.由于此组件主要通过主键来查询数据库的条目,我们想尝试将此组件切换到一个键值存储系统上,以利用键值系统提供的多种好处,包含分布式复制、负载均衡以及失败切换.对此组件进行重构以实现纵向扩展是我们的一个目标,附带的其它好处是,可以缓解我们目前较高的磁盘存储需求. 最近,我们花了部分时间来研究这项技术(以及部分其他技术改进,Medallia激动人心的时刻!),考察了多个不同选项.长话短说,最终落在以下两个选择上:Apache Cassandra与Project Voldemort. 这两个项目看似是他们所在开源类别中最成熟的了,都可以提供内置的分散化集群支持,包含分区、容错性以及高可用性.两者都是基于Amazon的Dynamo论文,主要的差异是,Voldemort遵循简单的键值模型,而Cassandra使用了基于BigTable持久化模型的面向列的模型.两者都支持读一致性,也就是读操作总是返回最新的数据,这一点是我们业务所需要的. 高层次的比较 Project Voldemort 虽然不是一份详尽的清单,下面是我们考查这两个存储系统最关心的优势与劣势. 优势 更简单的API 基于Berkley DB的持久化,一个成熟并广泛使用的键值DB 使用向量时钟而不是简单的时间戳.它不需要节点(客户端)的时钟保持同步. 劣势 没有内置的”多数据中心”相关路由支持(意味着至少有一个额外的数据中心有此数据的一份拷贝) Apache Cassandra 优势 更广泛的生产系统部署(Facebook、Twitter、Digg、Rackspace) 更丰富的API,值可以支持动态的列结构(Schema-free).列可以独立演化,意味着你不需要读出整个结构就可以更新其中的一列. 为写操作做过专门优化(设计上). 可配置的一致性级别(在每个请求上指定) 劣势 文件格式仍在开发中,内部结构仍然可能会发生变化.鉴于它所支持的灵活性,文件格式更加复杂也更加难以理解,在性能方面尤其如此 需要同步时钟(NTP)(节点与客户端都需要) 与竞争产品相比,读操作更加磁盘密集 不支持客户端的冲突检测,因此最近的数据总是赢家 性能测试 令我们吃惊的是,这是我们找到的对这两个项目的进行性能比较的唯一链接,因此,我们决定写这篇文章来分享我们的研究.我们使用了vpork的测试框架,对它的代码做了修改以适应我们的需求,升级客户端代码到最新版本、添加热身阶段、增加了重写能力。下面是我们测试的结果. 配置: 版本 Voldemort v0.80.1 Cassandra 0.6.0-beta3 机器-3个类似与如下配置的节点 最大4GB的堆大小(heap size) 复制参数: N=3(每个条目的副本数),R=2(每次读时需要等待返回的节点数),W=2(每次写需要等待响应的节点数) 每台服务器上有8个处理器(Intel(R) Xeon(R) CPU [...]]]></description>
		<wfw:commentRss>http://log.medcl.net/item/2010/06/cassandra-vs-voldemort/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

