博客园 - sing1ee
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=121192
2012-12-17T03:44:59Z
sing1ee
https://www.cnblogs.com/sing1ee/
feed.cnblogs.com
https://www.cnblogs.com/sing1ee/archive/2012/12/17/2821454.html
计算微博垂直领域的传播力排名 - sing1ee
这几天,我计算了几个领域的PageRank,包括投资人,程序员这种大的垂直领域,也包括“机器学习”“数据挖掘”等这样的小的领域。在挖掘的过程中,也遇到很多有意思的事情。不过,做这个,并不是要给谁排座次,只是想尝试挖掘出来一些有意思的东西。下面是我通过“机器学习”“数据挖掘”“信息检索”等关键字找出来的一批人,然后再计算排名得到的结果。后面一列是粉丝数。不过一些新开通微博的牛人:@余凯 @老师木 尚不在其中。我的数据是之前的一个快照。这样的一个排序,和粉丝的数量关系就不太一致了。所以,垂直领域,还是能够做出很有意思的东西的。可以进一步挖掘,到底哪些因素影响了某一排名。张栋_机器学习 48966.
2012-12-17T03:45:00Z
2012-12-17T03:45:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这几天,我计算了几个领域的PageRank,包括投资人,程序员这种大的垂直领域,也包括“机器学习”“数据挖掘”等这样的小的领域。在挖掘的过程中,也遇到很多有意思的事情。不过,做这个,并不是要给谁排座次,只是想尝试挖掘出来一些有意思的东西。下面是我通过“机器学习”“数据挖掘”“信息检索”等关键字找出来的一批人,然后再计算排名得到的结果。后面一列是粉丝数。不过一些新开通微博的牛人:@余凯 @老师木 尚不在其中。我的数据是之前的一个快照。这样的一个排序,和粉丝的数量关系就不太一致了。所以,垂直领域,还是能够做出很有意思的东西的。可以进一步挖掘,到底哪些因素影响了某一排名。张栋_机器学习 48966. <a href="https://www.cnblogs.com/sing1ee/archive/2012/12/17/2821454.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/12/13/2811581.html
在微博中应用PageRank算法 - sing1ee
这个想法很早就有了,因为我是做搜索引擎背景的,能够深刻的理解PageRank算法在搜索引擎中的重要性,绝对的核心技术之一。不过,这篇博客,并不打算介绍PageRank算法的原理,而是,让我们来看看,这个重要的算法,在新浪微博中的应用。网页与网页之间,通过链接关系传递着重要性。在微博中呢?这个也是成立的。不过在微博中,情况要更复杂一些。所以,我在微博中指出,我并不赞同计算全量的PageRank(即所有人都参与计算)。原因有以下几点:人的主题属性和网页不同。网页往往只有一个主题,而人的主题属性比较多,我们可以将主题属性理解为人的兴趣,一般而言,人的兴趣,会不止一个。人的兴趣会随着时间不断变化,而大
2012-12-13T10:44:00Z
2012-12-13T10:44:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这个想法很早就有了,因为我是做搜索引擎背景的,能够深刻的理解PageRank算法在搜索引擎中的重要性,绝对的核心技术之一。不过,这篇博客,并不打算介绍PageRank算法的原理,而是,让我们来看看,这个重要的算法,在新浪微博中的应用。网页与网页之间,通过链接关系传递着重要性。在微博中呢?这个也是成立的。不过在微博中,情况要更复杂一些。所以,我在微博中指出,我并不赞同计算全量的PageRank(即所有人都参与计算)。原因有以下几点:人的主题属性和网页不同。网页往往只有一个主题,而人的主题属性比较多,我们可以将主题属性理解为人的兴趣,一般而言,人的兴趣,会不止一个。人的兴趣会随着时间不断变化,而大 <a href="https://www.cnblogs.com/sing1ee/archive/2012/12/13/2811581.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/11/18/2776178.html
large graph挖掘的技术基础 - sing1ee
我一直在做社交网络的挖掘工作,深感目前的一些技术并不能满足社交挖掘的需要。我并没有用过太多的工具,而且图计算的平台也没有用过,涉及到大规模数据的离线分析,主要是依赖hadoop。不过,这并不妨碍,我从挖掘需求的角度来探讨:社交挖掘到底需要哪些技术基础,需要一些什么样的工具。题目中有一个词:large graph。也有很多人认为是big graph。我之所以改变称谓,主要的原因在我前面的博客中有体现。因为big data中的个体之间,往往具有关系,这个样就组成了一个graph,并且这是个超大的graph。元数据信息要比单纯的big data要高几个量级。所以,为了进一步体现graph之大,我称之
2012-11-18T10:45:00Z
2012-11-18T10:45:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】我一直在做社交网络的挖掘工作,深感目前的一些技术并不能满足社交挖掘的需要。我并没有用过太多的工具,而且图计算的平台也没有用过,涉及到大规模数据的离线分析,主要是依赖hadoop。不过,这并不妨碍,我从挖掘需求的角度来探讨:社交挖掘到底需要哪些技术基础,需要一些什么样的工具。题目中有一个词:large graph。也有很多人认为是big graph。我之所以改变称谓,主要的原因在我前面的博客中有体现。因为big data中的个体之间,往往具有关系,这个样就组成了一个graph,并且这是个超大的graph。元数据信息要比单纯的big data要高几个量级。所以,为了进一步体现graph之大,我称之 <a href="https://www.cnblogs.com/sing1ee/archive/2012/11/18/2776178.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/11/15/2771375.html
社交圈子挖掘的问题 - sing1ee
这是博客搬家到博客园之后的第一篇文章,也是我最近对微博社交圈子挖掘的一些思考和总结,最近主要的思考和研究,主要针对一下几个问题:层次性重叠性ego network有向社交网络带权社交网络统一解决上面的问题(!)这几个,都是社交圈子挖掘时候我们所面临的问题,在挖掘逐渐深入的过程中,问题会一个一个显现出来。我们就要一个一个解决掉,最后要能够统一在一个方法,一个框架中。我在思考的过程中,也阅读了之前的研究,绝大部分都是针对其中的一个问题,或者两个问题。很少能够解决全部的问题。那我下面尝试分析一下这些问题的产生原因,以及一些可尝试的方法。层次性层次性是一个社会属性,在我们的社交圈子中非常的明显。比如,
2012-11-15T05:26:00Z
2012-11-15T05:26:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这是博客搬家到博客园之后的第一篇文章,也是我最近对微博社交圈子挖掘的一些思考和总结,最近主要的思考和研究,主要针对一下几个问题:层次性重叠性ego network有向社交网络带权社交网络统一解决上面的问题(!)这几个,都是社交圈子挖掘时候我们所面临的问题,在挖掘逐渐深入的过程中,问题会一个一个显现出来。我们就要一个一个解决掉,最后要能够统一在一个方法,一个框架中。我在思考的过程中,也阅读了之前的研究,绝大部分都是针对其中的一个问题,或者两个问题。很少能够解决全部的问题。那我下面尝试分析一下这些问题的产生原因,以及一些可尝试的方法。层次性层次性是一个社会属性,在我们的社交圈子中非常的明显。比如, <a href="https://www.cnblogs.com/sing1ee/archive/2012/11/15/2771375.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/11/05/2765065.html
大数据与复杂网络 - sing1ee
写这篇文章,有两个原因:看了李院士的《大数据研究的科学价值》,有些感触。我自己做了一段时间社交,也有一些想法。之前也写过复杂网络的东西,但是都非常肤浅,没有真正的理解复杂网络,近期看了一些资料,有了进一步的理解。李院士的文章,是从科学家的角度,理解大数据的价值。从文章中,我了解到以下几点:数据inside:未来数据将数据转换为产品或者服务的人。分析即服务:Aaas。构建一个统一的数据分析平台,提供丰富的api,供数据分析师进行分析,挖掘金矿。是一件很有用,同时也很有钱途的事业。大数据的存储、计算、挖掘分析的技术,还需要更进一步的发展。一些同学,规划自己的职业生涯,把这个作为储备,现在开始学习,
2012-11-05T09:16:00Z
2012-11-05T09:16:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】写这篇文章,有两个原因:看了李院士的《大数据研究的科学价值》,有些感触。我自己做了一段时间社交,也有一些想法。之前也写过复杂网络的东西,但是都非常肤浅,没有真正的理解复杂网络,近期看了一些资料,有了进一步的理解。李院士的文章,是从科学家的角度,理解大数据的价值。从文章中,我了解到以下几点:数据inside:未来数据将数据转换为产品或者服务的人。分析即服务:Aaas。构建一个统一的数据分析平台,提供丰富的api,供数据分析师进行分析,挖掘金矿。是一件很有用,同时也很有钱途的事业。大数据的存储、计算、挖掘分析的技术,还需要更进一步的发展。一些同学,规划自己的职业生涯,把这个作为储备,现在开始学习, <a href="https://www.cnblogs.com/sing1ee/archive/2012/11/05/2765065.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/10/12/2765064.html
一些不常见但是很重要的数据结构 - sing1ee
这篇文章是stackoverflow的一篇帖子。上面提到了很多有用的数据结构。有的听过了,经常用,有的没有听过,记录下来。Trie树。应用比较多,一个比较cool的trie的应用TRASH-A dynamic LC-trie and hash data structure。Bloom filter。wiki链接删除某一项是不允许的,不过可以实现可计数的counting bloom filter在BigTable,Cassandra中都有使用可以用来快速检查是否拼写错误Rope:rope 数据结构表示不能修改的字符序列,与 Java 的 String非常像。但是 ropes 效率奇高的字符串变换
2012-10-12T03:00:00Z
2012-10-12T03:00:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这篇文章是stackoverflow的一篇帖子。上面提到了很多有用的数据结构。有的听过了,经常用,有的没有听过,记录下来。Trie树。应用比较多,一个比较cool的trie的应用TRASH-A dynamic LC-trie and hash data structure。Bloom filter。wiki链接删除某一项是不允许的,不过可以实现可计数的counting bloom filter在BigTable,Cassandra中都有使用可以用来快速检查是否拼写错误Rope:rope 数据结构表示不能修改的字符序列,与 Java 的 String非常像。但是 ropes 效率奇高的字符串变换 <a href="https://www.cnblogs.com/sing1ee/archive/2012/10/12/2765064.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/09/18/2765063.html
Cassandra——一些比较和回想 - sing1ee
这篇文章,包含了一些技术,包含了一些回忆。今天看了360的有关Cassandra实践的ppt,有一些感想。让我想起了两年前的一些事情,不过那时,我做的不是存储,而主攻的分布式检索。后来一系列变化,我也经历了很多,后来安下心来,做存储优化,优化的对象就是Cassandra,这也有一年多的时间。理论深厚,心得颇丰,可是仍然缺乏一线经验积累。看到360这么大规模的应用Cassandra,我很高兴。尽管,没有一同战斗,但是我很欣慰,很开心。Cassandra终于摆脱阴影,站起来了。Cassandra在360部署有1500台服务器。国内首屈一指了,还有一家部署规模在这一半左右。不过,单个Cassandr
2012-09-18T08:03:00Z
2012-09-18T08:03:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这篇文章,包含了一些技术,包含了一些回忆。今天看了360的有关Cassandra实践的ppt,有一些感想。让我想起了两年前的一些事情,不过那时,我做的不是存储,而主攻的分布式检索。后来一系列变化,我也经历了很多,后来安下心来,做存储优化,优化的对象就是Cassandra,这也有一年多的时间。理论深厚,心得颇丰,可是仍然缺乏一线经验积累。看到360这么大规模的应用Cassandra,我很高兴。尽管,没有一同战斗,但是我很欣慰,很开心。Cassandra终于摆脱阴影,站起来了。Cassandra在360部署有1500台服务器。国内首屈一指了,还有一家部署规模在这一半左右。不过,单个Cassandr <a href="https://www.cnblogs.com/sing1ee/archive/2012/09/18/2765063.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/09/14/2765062.html
理解Hotspot JVM CMS垃圾回收器【译】 - sing1ee
最近在看Cassandra的内存管理方式,Cassandra默认采用的老年代GC回收策略是CMS,以及采用了Slab Allocator的内存分配方式。采用了Slab Allocator的内存分配方式,大大缩短了GC的时间,据说有1000倍。很吸引人。所以,我要深入研究一下这部分。这部分的实际驱动并不大,可能研究并不十分深入。下面有关CMS GC的部分大多是翻译自Understanding GC pauses in JVM, Hotspot's CMS collector.此外,还有我之前的一些理解。在以后的博客中,我会对JVM平台的延迟问题进行深入的研究。而且,我相信,这并不是一个陈
2012-09-14T10:17:00Z
2012-09-14T10:17:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】最近在看Cassandra的内存管理方式,Cassandra默认采用的老年代GC回收策略是CMS,以及采用了Slab Allocator的内存分配方式。采用了Slab Allocator的内存分配方式,大大缩短了GC的时间,据说有1000倍。很吸引人。所以,我要深入研究一下这部分。这部分的实际驱动并不大,可能研究并不十分深入。下面有关CMS GC的部分大多是翻译自Understanding GC pauses in JVM, Hotspot's CMS collector.此外,还有我之前的一些理解。在以后的博客中,我会对JVM平台的延迟问题进行深入的研究。而且,我相信,这并不是一个陈 <a href="https://www.cnblogs.com/sing1ee/archive/2012/09/14/2765062.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/09/11/2765061.html
Cassandra如何决定flush memtable的大小 - sing1ee
一个多月没有更新博客了。我在积累,频繁更新的话,就没有东西写了-_-。不过还是要定期的总结,以备忘,以分享,以交流,以提高。这篇博客说的问题是Cassandra在memtable flush为sstable的时候,大小是如何计算的,以及flush的阈值是如何确定的。这个过程是动态的,并不是设定某个内存的大小,或者qps多少的时候,进行flush。一方面计算过程可能并不那么直接,另一方面1.1.3版本之前,这里隐藏了比较严重的bug:可能会造成内存溢出(很严重)可能会造成L0层的sstable文件很小(长期来看,也比较严重,严重影响读性能)可能会有以下的日志:WARN[MemoryMeter:1
2012-09-11T03:39:00Z
2012-09-11T03:39:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】一个多月没有更新博客了。我在积累,频繁更新的话,就没有东西写了-_-。不过还是要定期的总结,以备忘,以分享,以交流,以提高。这篇博客说的问题是Cassandra在memtable flush为sstable的时候,大小是如何计算的,以及flush的阈值是如何确定的。这个过程是动态的,并不是设定某个内存的大小,或者qps多少的时候,进行flush。一方面计算过程可能并不那么直接,另一方面1.1.3版本之前,这里隐藏了比较严重的bug:可能会造成内存溢出(很严重)可能会造成L0层的sstable文件很小(长期来看,也比较严重,严重影响读性能)可能会有以下的日志:WARN[MemoryMeter:1 <a href="https://www.cnblogs.com/sing1ee/archive/2012/09/11/2765061.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/08/01/2765059.html
webbench使用 - sing1ee
整理自:原文1 和 原文2最近需要做一些简单的测试,发现webbench这个小工具非常好用。 wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install遇到错误解决:/bin/sh: ctags: command not foundapt-get install ctagscc: Command not foundapt-get install gcccannot create re
2012-08-01T05:08:00Z
2012-08-01T05:08:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】整理自:原文1 和 原文2最近需要做一些简单的测试,发现webbench这个小工具非常好用。 wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install遇到错误解决:/bin/sh: ctags: command not foundapt-get install ctagscc: Command not foundapt-get install gcccannot create re <a href="https://www.cnblogs.com/sing1ee/archive/2012/08/01/2765059.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/07/27/2765058.html
pydev找不到module解决办法 - sing1ee
平时做Python开发主要采用vi,由于之前大多开发Java,所以也用pydev。比较熟悉eclipse。但是,在使用pydev的时候,经常出现找不到module的错误,有的提示错误,可以运行,有的干脆真的找不到,无法启动Python程序。如何解决呢?很简单,如下图: 在设置中找到PyDev下的Interpreter Python选项,右边点击New Folder,选择按照的module目录,比如上图高亮的,就是我安装的pymongo的目录。然后“Apply”应用即可。此法屡试不爽。 【完】
2012-07-27T15:04:00Z
2012-07-27T15:04:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】平时做Python开发主要采用vi,由于之前大多开发Java,所以也用pydev。比较熟悉eclipse。但是,在使用pydev的时候,经常出现找不到module的错误,有的提示错误,可以运行,有的干脆真的找不到,无法启动Python程序。如何解决呢?很简单,如下图: 在设置中找到PyDev下的Interpreter Python选项,右边点击New Folder,选择按照的module目录,比如上图高亮的,就是我安装的pymongo的目录。然后“Apply”应用即可。此法屡试不爽。 【完】 <a href="https://www.cnblogs.com/sing1ee/archive/2012/07/27/2765058.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/07/11/2765057.html
Cassandra Compaction的改进 - sing1ee
有关Cassandra Compaction,我写了好多的博客。这是为什么呢?原因很简单,因为Compaction在实际应用中,影响巨大。而且似乎探讨这方面的文章还比较少。 这篇文章不是翻译的,而是要写我自己的经验,我悲催的发现,凡是写自己总结的经验,文章就会很短。我本来打算Leveled Compaction和SizeTiered Compaction的改进分开些,可是自己掂量了一下,都很少,几句话、甚至一句话就搞定了。所以我不得以把原本两篇文章合到一起写。尽管也不错,但是绝对是我的实践经验,希望对大家有帮助。 SizeTiered Compaction改进 SizeTierd Compac
2012-07-10T16:38:00Z
2012-07-10T16:38:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】有关Cassandra Compaction,我写了好多的博客。这是为什么呢?原因很简单,因为Compaction在实际应用中,影响巨大。而且似乎探讨这方面的文章还比较少。 这篇文章不是翻译的,而是要写我自己的经验,我悲催的发现,凡是写自己总结的经验,文章就会很短。我本来打算Leveled Compaction和SizeTiered Compaction的改进分开些,可是自己掂量了一下,都很少,几句话、甚至一句话就搞定了。所以我不得以把原本两篇文章合到一起写。尽管也不错,但是绝对是我的实践经验,希望对大家有帮助。 SizeTiered Compaction改进 SizeTierd Compac <a href="https://www.cnblogs.com/sing1ee/archive/2012/07/11/2765057.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/07/09/2765056.html
理解Hinted Handoff - sing1ee
Hinted Handoff在读Dynamo论文的时候,对这个名字就不是很理解。现在要深入了解Cassandra,想要翻译这个词,在网上找了一下,大概两种翻 译:1)提示移交;2)永远可写入。我比较倾向于第一个翻译,因为对于Cassandra,永远可写入并不总是成立的。不过,作为专有的名词出现,我在下 文就不进行翻译了。【正文开始】Hinted Handoff作为写操作的可选的一部分,主要目的是当不要求一致性的时候,提高写的高可用性。其次,Hinted Handoff缩短了暂时失败的节点恢复一致的时间。尤其是在一些奇怪的网络问题下,更加有用。(网络短时间不可用之类)Hinted Handoff
2012-07-09T14:35:00Z
2012-07-09T14:35:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】Hinted Handoff在读Dynamo论文的时候,对这个名字就不是很理解。现在要深入了解Cassandra,想要翻译这个词,在网上找了一下,大概两种翻 译:1)提示移交;2)永远可写入。我比较倾向于第一个翻译,因为对于Cassandra,永远可写入并不总是成立的。不过,作为专有的名词出现,我在下 文就不进行翻译了。【正文开始】Hinted Handoff作为写操作的可选的一部分,主要目的是当不要求一致性的时候,提高写的高可用性。其次,Hinted Handoff缩短了暂时失败的节点恢复一致的时间。尤其是在一些奇怪的网络问题下,更加有用。(网络短时间不可用之类)Hinted Handoff <a href="https://www.cnblogs.com/sing1ee/archive/2012/07/09/2765056.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/07/02/2765055.html
Cassandra三级存储构想 - sing1ee
这篇博客需要对SSD有一定了解,我这里没有详细讨论SSD相关的问题,某些概念不了解自行google,或者留言讨论。Cassandra最大的特点就是将随机写巧妙的转换为顺序写。memtable达到一定大小之后,flush到磁盘(可以是SSD,通常是HDD)。这个特性,对Cassandra在SSD上的应用,带来了天然的优势。现在Cassandra部署情况,较常用的方式是内存+HDD,或者有钱一些的公司内存+SSD。后者主要是想通过SSD随机读的优异表现提升读的性能(大概是HDD的100倍)。但是,我们知道,根据数据局部性原理,数据的热点是永远存在的。所以,全部数据放在SSD上是比较浪费的。除了数据
2012-07-02T09:32:00Z
2012-07-02T09:32:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这篇博客需要对SSD有一定了解,我这里没有详细讨论SSD相关的问题,某些概念不了解自行google,或者留言讨论。Cassandra最大的特点就是将随机写巧妙的转换为顺序写。memtable达到一定大小之后,flush到磁盘(可以是SSD,通常是HDD)。这个特性,对Cassandra在SSD上的应用,带来了天然的优势。现在Cassandra部署情况,较常用的方式是内存+HDD,或者有钱一些的公司内存+SSD。后者主要是想通过SSD随机读的优异表现提升读的性能(大概是HDD的100倍)。但是,我们知道,根据数据局部性原理,数据的热点是永远存在的。所以,全部数据放在SSD上是比较浪费的。除了数据 <a href="https://www.cnblogs.com/sing1ee/archive/2012/07/02/2765055.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/30/2765054.html
有关Cassandra的数据划分【译】 - sing1ee
当启动一个Cassandra集群的时候,必须选择如何在集群中的不同节点之间划分数据。这是由Cassandra的partitioner来完成的。 在Cassandra中,Cassandra所管理的数据构成了一个环。这个环根据节点的数量划分成相等的区间,这样一个节点就可以负责存储一个区间或者几个区间中的数据。在一个节点能够加入到环中之前,它必须被分配一个token(中文翻译为令牌)。token决定了节点在环中的位置,从而也决定过了节点负责管理的数据范围。 数据根据行键(row key)被划分到不同的节点上。为了确定第一个复本所在的节点,需要在换上顺时针的查找,直到找到一个token的值大于等于行键
2012-06-30T01:06:00Z
2012-06-30T01:06:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】当启动一个Cassandra集群的时候,必须选择如何在集群中的不同节点之间划分数据。这是由Cassandra的partitioner来完成的。 在Cassandra中,Cassandra所管理的数据构成了一个环。这个环根据节点的数量划分成相等的区间,这样一个节点就可以负责存储一个区间或者几个区间中的数据。在一个节点能够加入到环中之前,它必须被分配一个token(中文翻译为令牌)。token决定了节点在环中的位置,从而也决定过了节点负责管理的数据范围。 数据根据行键(row key)被划分到不同的节点上。为了确定第一个复本所在的节点,需要在换上顺时针的查找,直到找到一个token的值大于等于行键 <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/30/2765054.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765053.html
Token的生成【译】 - sing1ee
前些日子有同学问如何生成token,原来做Voldemort的时候,官方提供了一个脚本,自动生成,Voldemort只是一致性hash很方便,考虑的因素也少。而Cassandra考虑的就多了,跨机架,跨数据中心,都有很多需要注意的。上次我说了在同一个数据中心很实用,可控的方法。下面讲讲DataStax推荐的一些方法。 【正文开始】 Token是为数据中心中某一特定节点分配某一范围的数据的依据。 当启动一个Cassandra的集群,必须选择数据在集群中节点是如何分布的。partitioner是根据数据的key来决定这行数据存储在哪个节点上。token是独立与partitioner的。每一个节点都
2012-06-29T09:25:00Z
2012-06-29T09:25:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】前些日子有同学问如何生成token,原来做Voldemort的时候,官方提供了一个脚本,自动生成,Voldemort只是一致性hash很方便,考虑的因素也少。而Cassandra考虑的就多了,跨机架,跨数据中心,都有很多需要注意的。上次我说了在同一个数据中心很实用,可控的方法。下面讲讲DataStax推荐的一些方法。 【正文开始】 Token是为数据中心中某一特定节点分配某一范围的数据的依据。 当启动一个Cassandra的集群,必须选择数据在集群中节点是如何分布的。partitioner是根据数据的key来决定这行数据存储在哪个节点上。token是独立与partitioner的。每一个节点都 <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765053.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765052.html
Cassandra client的请求详解【译】 - sing1ee
Cassandra的读写请求,主要包括两部分,client端如何找到节点,请求何时成功返回,以及本地的读写是如何完成的,本地的读写,会在后续的博客中不断给出。本文主要解析前面两个问题。 【正文开始】 Cassandra集群中的所有节点都是对等的。客户端的读写请求可能会发送给集群中的任一节点。当客户端连接了某一个节点,并且开始发送读写请求,那个这个节点因为承担了客户端的操作,就被称为“协调者”。 协调者的工作是充当客户端应用和存储实际请求数据的节点之间的代理。协调者根据数据划分、复制的策略来决定,将实际的读写请求发送到确定的节点。 写请求 协调者会将些请求发送到所有应该存储这条数据的节点(也就是
2012-06-29T05:44:00Z
2012-06-29T05:44:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】Cassandra的读写请求,主要包括两部分,client端如何找到节点,请求何时成功返回,以及本地的读写是如何完成的,本地的读写,会在后续的博客中不断给出。本文主要解析前面两个问题。 【正文开始】 Cassandra集群中的所有节点都是对等的。客户端的读写请求可能会发送给集群中的任一节点。当客户端连接了某一个节点,并且开始发送读写请求,那个这个节点因为承担了客户端的操作,就被称为“协调者”。 协调者的工作是充当客户端应用和存储实际请求数据的节点之间的代理。协调者根据数据划分、复制的策略来决定,将实际的读写请求发送到确定的节点。 写请求 协调者会将些请求发送到所有应该存储这条数据的节点(也就是 <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765052.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765051.html
Amazon DynamoDB与Cassandra比较 - sing1ee
这是一篇Jonathan Ellis写的文章,与DynamoDB进行比较,突出Cassandra的优点,但似乎后面的评论,大家并不那么接收Cassandra,尤其是在云主机的环境下。原文在这儿。这篇文章就不详细的翻译了,因为有很多的废话,捡重要的说吧。 Cassandra和DynamoDB有什么关系呢?按照文章的说法儿,这简直就是一个轮回。Cassandra最初的实现,很大程度上借鉴了Dynamo那篇论文的实现。但是数据存储模型等并没有采用。今年,Amazon推出DynamoDB,除了Dynamo基础之外,更是从Cassandra学习了很多内容。很有意思。以至于作者最后开玩笑说,Cassand
2012-06-28T16:15:00Z
2012-06-28T16:15:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】这是一篇Jonathan Ellis写的文章,与DynamoDB进行比较,突出Cassandra的优点,但似乎后面的评论,大家并不那么接收Cassandra,尤其是在云主机的环境下。原文在这儿。这篇文章就不详细的翻译了,因为有很多的废话,捡重要的说吧。 Cassandra和DynamoDB有什么关系呢?按照文章的说法儿,这简直就是一个轮回。Cassandra最初的实现,很大程度上借鉴了Dynamo那篇论文的实现。但是数据存储模型等并没有采用。今年,Amazon推出DynamoDB,除了Dynamo基础之外,更是从Cassandra学习了很多内容。很有意思。以至于作者最后开玩笑说,Cassand <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/29/2765051.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/28/2765050.html
Cassandra博客更新预告 - sing1ee
一年的时间很快就过去了,这一年,工作上好像只是围绕这Cassandra。前面也写了不少文章,不过都比较浅,原因种种。从明天开始,我除了翻译一些Cassandra的文章之外,还要把这一年的所得逐渐写出来。和大家分享,讨论,也为Cassandra在国内推广,出点力。尽管不如Hbase那般火热,但是我仍旧十分看好Cassandra。尤其是1.0版本以后的发展,越来越给力。 这篇博客主要列出以后会写的一些点。如果不列出来,不强迫自己,恐怕拖一拖就过去了,对自己对后来搞Cassandra的同学,都不好。所以,我要先列出来:SizeTired Compaction的改进——主要效果会提升读性能【done】
2012-06-28T12:51:00Z
2012-06-28T12:51:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】一年的时间很快就过去了,这一年,工作上好像只是围绕这Cassandra。前面也写了不少文章,不过都比较浅,原因种种。从明天开始,我除了翻译一些Cassandra的文章之外,还要把这一年的所得逐渐写出来。和大家分享,讨论,也为Cassandra在国内推广,出点力。尽管不如Hbase那般火热,但是我仍旧十分看好Cassandra。尤其是1.0版本以后的发展,越来越给力。 这篇博客主要列出以后会写的一些点。如果不列出来,不强迫自己,恐怕拖一拖就过去了,对自己对后来搞Cassandra的同学,都不好。所以,我要先列出来:SizeTired Compaction的改进——主要效果会提升读性能【done】 <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/28/2765050.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sing1ee/archive/2012/06/27/2765049.html
有关Cassandra节点之间的通信:Gossip【译】 - sing1ee
Cassandra使用叫做Gossip的协议发现集群中其他节点的位置和状态信息。Gossip是一个点对点的通信协议,节点之间会周期进行状态信息交换——这些信息包括当前节点本身信息,以及当前节点存储的其他节点的状态信息。 在Cassandra中,gossip进程每秒钟都会和集群中的其他三个节点交换状态消息。状态信息包括节点自身的信息、以及所存储的其他节点的信息,这样集群中的节点,很快就能够互相了解。gossip消息都有一个版本信息,随着交换的进行,旧的信息会逐渐被旧的信息覆盖。 集群成员和种子节点 当节点第一次启动,它会从配置文件中确定所属Cassandra集群的名字,以及确定seeds nod
2012-06-27T15:41:00Z
2012-06-27T15:41:00Z
sing1ee
https://www.cnblogs.com/sing1ee/
【摘要】Cassandra使用叫做Gossip的协议发现集群中其他节点的位置和状态信息。Gossip是一个点对点的通信协议,节点之间会周期进行状态信息交换——这些信息包括当前节点本身信息,以及当前节点存储的其他节点的状态信息。 在Cassandra中,gossip进程每秒钟都会和集群中的其他三个节点交换状态消息。状态信息包括节点自身的信息、以及所存储的其他节点的信息,这样集群中的节点,很快就能够互相了解。gossip消息都有一个版本信息,随着交换的进行,旧的信息会逐渐被旧的信息覆盖。 集群成员和种子节点 当节点第一次启动,它会从配置文件中确定所属Cassandra集群的名字,以及确定seeds nod <a href="https://www.cnblogs.com/sing1ee/archive/2012/06/27/2765049.html" target="_blank">阅读全文</a>