坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2011

riak源码阅读手记 与Cassandra相比

riak源码阅读手记一 初出茅庐 项目入口 http://www.54chen.com/_linux_/riak-source.html riak源码阅读手记二 左右开弓 启动 http://www.54chen.com/_linux_/riak-cource-code.html riak源码阅读手记 运行安装 http://www.54chen.com/_linux_/riak-source-install-run.html 一些常用的指令: http://wiki.basho.com/Command-Line-Tools.html#riak-admin 实现上: 1)虽然二者都是dynamo的实现,具体方法还是不一样的,riak更忠于dynamo的原文档,实现了所有文档提到的关键点。同时还增加了map reduce和links等功能。 2)Cassandra略去了一些文档里的关键点:向量时钟、按照key范围的大分区等。增加了一些方法如:范围查询、固定分区。 扩展: 1) riak提供了bin/riak join这样的命令来加入新的节点,基本完全按照dynamo文档所说的一样来实现了,从多个节点去获取原来的负载和数据回来,每个节点的压力都可以得到平衡。 2)相比之下,Cassandra集群的节点需要计算数据的一个范围。当加入节点时,Cassandra的策略是分出来相应分区上一半的范围去新节点。这点在一个Cassandra集群需要加节点时会很痛苦,可能会存在两个节点之间大规模的数据转移。 查询和分布: 1)riak有map reduce。 2)Cassandra可以接ha

Continue reading

Posted in 架构研究 | Tagged , | 2 Comments

54chen Twitter memo 2011-09-11

riak源码阅读手记 运行安装 http://t.co/L5ocH6k # 在享受流量冲击带来的兴奋之余,是不是应该考虑,是根据10%的用户建议去做损害100%用户体验的事情,还是让100%的用户可以平滑地享受整个操作过程。大学的报课系统你用过吧? # 54chen Twitter memo 2011-09-04 http://t.co/J7xsiSU #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

riak源码阅读手记 运行安装

riak源码阅读手记一 初出茅庐 项目入口 http://www.54chen.com/_linux_/riak-source.html riak源码阅读手记二 左右开弓 启动 http://www.54chen.com/_linux_/riak-cource-code.html 代码运行入口 riak-kv/ebin/riak_kv.app文件定义了otp标准项目的结构,一个不错的实例:http://www.iteye.com/topic/342819 {mod, {riak_kv_app, []}}一行定义了入口。打开riak_kv_app文件: -export([start/2,stop/1]). 定义了两大个方法,start和stop。 先看start: 启动riak_kv及相关的server。 检查系统时间。 加入系统变量。 确保设置NWR的值和一些vclock的初始值。 看storage_backend是否启动。 在cluster_info中注册。 启动supervisor。 全部启动。 stop:application:stop。 跑一把试试: A机:192.168.103.10 B机:192.168.97.48 C机:192.168.100.52 三个节点,已经装好erlang R13B04。 先在A机操作: wget http://downloads.basho.com/riak/riak-0.14/riak-0.14.2.tar.gz tar zxvf riak-0.14.2.tar.gz cd riak-0.14.2 make …

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

54chen Twitter memo 2011-09-04

淘宝分布式数据库系统OceanBase观后闲话小记 http://t.co/dn0qS7I # 今天是狂暴的一天,http://t.co/hTGXSWX http://t.co/iJT4yTd http://t.co/UG3Kv2Y 小米手机第一批工程机开秒了,各处都有倒计时。 # 54chen Twitter memo 2011-08-28 http://t.co/ODJthD5 #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

淘宝分布式数据库系统OceanBase观后闲话小记

http://code.taobao.org/trac/OceanBase/wiki/intro 讲得还比较细。 数据模型: oceanBase采用类似cassandra的tablet/sstable数据模型实现,简单说就是bigtable的数据模型。 系统目标: 其目标比较明确,是一个强CA类系统,P(分区能力)。目标是强一致性、高可用性,分区能力稍弱。从文档上看,他们并不担心的快速的数据增长量。 去中心化: 见图: RootServer/UpdateServer是一个中心节点,这个有死翘翘的可能性(好吧,他们搞了一主一备)。 支持的操作: 基础的merge/join都可以,一般使用上是够用了。DDL DML的定义基本上是还需要发展的。另外如果开源出来了,广泛项目使用意义上,还需要支持UDF user defined function,实际上把mysql文档实现一遍就ok了。 继续观望,欢迎抛砖。向开源的项目致敬。

Continue reading

Posted in 架构研究 | Tagged | Leave a comment

54chen Twitter memo 2011-08-28

riak源码阅读手记二 左右开弓 启动 http://t.co/G6kB76e # riak源码阅读手记一 初出茅庐 项目入口 http://t.co/aA32hlp # 54chen Twitter memo 2011-08-21 http://t.co/9K4IoNr #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

riak源码阅读手记二 左右开弓 启动

目标系统(target system) OTP系统定义里有这么一个东西: 可以被一般的erl脚本启动的系统叫基础目标系统; 除此之外还可以做运行时代码替换的系统叫简单目标系统; 如果还支持日志输出到文件、自动定时启动的话就叫做内嵌目标系统。 启动目标系统的方式 通过erlang/OTP标准的reltool工具生成的目标系统,可以用多种方式灵活启动。 第一种: os> /usr/local/erl-target/bin/erl 这只启动了一个基础目标系统。基本没什么具体功能。 第二种: os> /usr/local/erl-target/bin/erl -boot /usr/local/erl-target/releases/FIRST/start 用-boot参数,这可以启动一个简单目标系统。releases/RELEASES文件可用来做热替换。 第三种: bin/start 这个脚本会去调用 bin/run_erl ,最终调用 bin/start_erl启动。run_erl是一个提供运行时日志输出到文件的封装。还提供了简单的机制attach到一个erlang shell。 自定义behaviour -spec behaviour_info(atom()) -> 'undefined' | [{atom(), arity()}]. behaviour_info(callbacks) -> [{start,2}, % (Partition, Config) {stop,1}, …

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

riak源码阅读手记一 初出茅庐 项目入口

简介 basho(相扑)是一家美国的技术公司,专营数据存储和管理软件,11年6月30日获得了750万美元的融资。basho将riak开源,通过收取riak的维护和管理界面软件的使用费用来赚钱,和resin的公司类似。 今天主要研究的是,basho旗下的riak:一个类dynamo系统的kv存储。riak使用了erlang进行开发,将代码精简到极致。 rebar riak的代码使用了一个叫做rebar(钢筋)的erlang构建工具,使用起来真的很方便,其使用方法建议参考这篇文章:http://www.linezing.com/blog/?p=347。每个项目下,都有一个叫做rebar.config的文件,里面用erlang语法记录了这个项目需要的目录、环境、版本、以及依赖的包在github上的位置。真的很方便。riak项目中,rebar和reltool被大量使用。reltool使用方法参见 http://erlangdisplay.iteye.com/blog/508944 riak的总控工程:https://github.com/basho/riak。 看rebar.config定义的依赖部分: {deps, [ {cluster_info, "1.1.*", {git, "git://github.com/basho/cluster_info", {branch, "master"}}}, %% 这个模块提供了一个松散易扩展的导出集群节点状态的办法。可以收集的信息包括:时间、所有的erlang进程的静态统计、网络连接情况、cpu和内存、大队列进程、内部内存调

Continue reading

Posted in 资料文档 | Tagged , , | Leave a comment

54chen Twitter memo 2011-08-21

basho的产能:23个代码提供者,46个项目。这就是erlang的产能。 # 今天挺多人上不了gtalk,神马情况 # Rebar是一款Erlang的构建工具,使用它可以方便的编译、测试erlang程序、内联驱动和打包Erlang发行版本。 http://t.co/jzC5m5k # 艳阳高照,小米手机于今天正式发布。http://xiaomi.com # 记hadoop故障一例:BlockAlreadyExistsException http://t.co/C1K4DZi # 54chen Twitter memo 2011-08-14 http://t.co/tQPFCNF #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

记hadoop故障一例:BlockAlreadyExistsException

hive版本:0.7.0 hadoop版本:0.20.2 在线上跑了一个季度了,基本上没什么问题,今天突然出了问题。 在hive执行时留下的蛛丝马迹: Failed with exception org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException: Not replicated yet:/tmp/hive-root/hive_2011-08-15_00-31-02_332_247809173824307798/-ext-10000/access_bucket-2011-08-14_00004 at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1257) at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422) at sun.reflect.GeneratedMethodAccessor2037.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Met

Continue reading

Posted in java | Tagged , | Leave a comment
Page 4 of 11« First...2345610...Last »