- 博客(145)
- 收藏
- 关注
原创 Mongodb集群节点故障恢复场景分析
一个适当配置的Mongodb分片集群是没有单点故障的。本文描述了分片集群中存在的几种不同的潜在的失败场景,以及Mongodb对这些失败场景是怎么处理的。
2011-04-03 00:35:00 10318
原创 Mongodb的优点与不足
在这里收集下我自己对Mongodb的一些优缺点方面的认识,或者是通过其它比较可靠的网文上引用或者摘录的作为依据,这个是一个渐进的过程,也是随着我对Mongodb认识的加深而不断扩展的。
2011-04-01 21:25:00 15951 3
原创 用Mongodb基于GridFS存储文件
在Mongodb中以GridFSB方式存放文件有两种方式:1、命令行方式mongofiles 2、客户端驱动编程(以Java为例)
2011-03-29 22:14:00 23989 10
原创 Mongodb运行时添加分片复制集
基于"Mongodb集群配置(sharding with replica set)"的集群,尝试在Mongodb集群运行时动态添加分片复制集。
2011-03-26 11:06:00 7025 1
原创 Mongodb学习资料大全
Mongodb的首要参考资料非http://www.mongodb.org/display/DOCS莫属了。也有很多的前人把老外的E文翻成中文了,看起来要方便些,在最初的那些日子参考下也是大有益处的!在学习新系统的时候,知道了基本的技巧与用法之后就要进行大量的实践了,要找到这种新技术的边界点和不足之处,否则轻易是不能应用到真实的产品场景中去的,否则后悔都来不及了。
2011-03-26 00:05:00 4498
原创 Mongodb集群JavaAPI插入数据
在完成了集群的搭建工作之后,需要做的就是建立一个数据库,建立表,设置分片主键来初始化数据了!(1)建立WLB数据库,设置分表wlb_orders(2)用Java代码完成数据初始化(3)查看数据库分片信息db.printShardingStatus()(4)查看数据库的状态信息db.stats()(5)查看服务器状态信息db.serverStatus()
2011-03-24 13:26:00 10538 1
原创 Mongodb集群配置(sharding with replica set)
长期以来我就对分布式系统原理与实践非常感兴趣,对于Mongodb我一直很好奇,最近终于有时间能动手实验一把!我在一台Windows机器下搭建了一个 Replica Sets + Sharding 测试集群环境,以此作为我后续对于Mongodb更进一步学习的实验平台。只有一台windows机器,配置方案:1、3个分片sharding2、每一个分片由3个节点构成1主2备的Replica Sets3、3个配置节点Configserver4、1个路由节点Mongos
2011-03-22 23:19:00 17115 18
原创 对淘宝2011年会的感想
感谢澄识老大对我的信任与栽培,让我对价值观和员工培养体系有了一个总体的认识与实践锻炼机会,借此也让我的心态有了比较彻底的变化,从思想和认识层面有了一个较为明显的进步!正是因为有这些个人认识上的东西作为基础,我才能在遇到困难和挫折的时候,在外部条件有变化的时候,能自我进行快速的调整去积极的、乐观的拥抱变化,最低限度会让我的方向和目标、行动保持正确状态,而不是去抱怨、去沉沦!这些是我永远的财富,假如日后我能在技术上或者管理上有所突破的话,首功当属于此点了!
2011-03-04 21:49:00 2376 4
原创 他山之石,可以攻玉(一)
-------澄识-------------------1、项目要当做产品做。要多想。产品是有延续性的。做项目时要考虑将来的延续,横向的通用性。并不是所有的业务系统都要一个模式,项目整个代码拷过来改改就行。把通用的东西抽出来,做成框架,有一定的规范限制,把具体的交给实现人去做。每个项目或日常都这样想想,都做一些重构,一年下来,也有不少收获。2、业务部门做纯技术有困难,而且纯技术到最后,都是
2011-01-20 19:57:00 1427 2
原创 2010年度总结
年初我历经几多的心路历程,最终携妻子、女儿来杭州了,为的是追求我心中那一个梦想——通过接触到更多的技术牛人让我自己也成为一个牛人!转眼之间,来淘宝已经9个月了,又要过年了,闲暇之余回顾下自己取得的进步与不足实在是有几多的感慨! 我认为我取得的进步更多的是心态方面的、管理方面的!比如:积极主动做事情;在日常工作中,以争取团队成员的积极主动去担当为最高目标,将员工的个人目标与工作内容
2011-01-04 22:11:00 147 3
原创 Cassandra中Gossip具体实现方式
Cassandra集群没有中心节点,各个节点的地位完全相同,它们通过一种叫做gossip的协议维护集群的状态。 通过gossip,每个节点都能知道集群中包含哪些节点,以及这些节点的状态,这使得Cassandra集群中的任何一个节点都可以完成任意key的路由,任意一个节点不可用都不会造成灾难性的后果。
2010-09-02 20:17:00 15761 6
原创 Cassandra数据副本策略
LocalStrategy :只在本地节点中保持一个副本。RackUnawareStrategy:不考虑机柜因素,将Token按照从小到大的顺序,从第一个Token位置处依次取N个节点作为副本。RackAwareStrategy:考虑机柜因素,在primaryToken之外,先找一个处于不同数据中心的点,然后在不同机柜找。DatacenterShardStategy:这需要复制策略属性文件,在该文件中定义在每个数据中心的副本数量。在各数据中心副本数量的总和应等于Keyspace的副本数量。举例来
2010-08-23 22:50:00 4058 3
原创 Cassandra的分布式删除(DistributedDeletes)
因此,Cassandra所做的是那些分布式系统设计者所做的,都会遭遇一个不知道如何去解决的问题:定义一个附加限制,并且把它和我们要做的东西融合成一个。在这里,我们定义了一个常量,GCGraceSeconds,让每一个节点跟踪本地墓碑值的年龄。一旦墓碑值的年龄超过这个常量,它将进行Compation的时候被收集(看MemtableSSTable)。这意味着,如果你有一个节点宕机时间比GCGraceSeconds更长的话,你应该把它作为一个失败的节点,并按照在Operations中描述的那样取代它。默认的设置是
2010-08-21 12:10:00 3443
原创 Cassandra源代码分析(二)动态变更Keyspace和ColumnFamily定义
本节讲述的是Cassandra0.7版本的一些特性,即在Cassandra集群运行过程中动态修改Keyspace的数据模型。在Cassandr中有一个名称为System的Keyspace,它包含4个Columnspace,分别为LocationInfo、HintsColumnFamily、 Migrations、Schema,具体的定义参见类CFMetaData。Schema中存储keyspace定义信息,Migrations中记录了keyspace的变更信息。
2010-08-03 22:33:00 3778
原创 Cassandra源代码分析(一)Table和ColumnFamilyStore
Table是Cassandra中表示DB对象的顶级描述,这里的Table实际上是一个古老的名词,合理的意思应该是Keyspace,表示的是数据库级别的描述信息。在每一个放置了 column family 的节点上,具有相同的 cf-name 的 column-family 会被保存在一起,称为一个 column family store (CFS)
2010-07-28 07:51:00 4319 1
原创 Nosql数据库的查询那些事
Nosql的查询目前主要包括范围查询和前缀匹配的模糊查询。范围查询涉及的原理主要有分布式B+树算法。前缀模糊查询的算法实现则为分布式Trie来散列前缀。对于多项条件的and匹配查询则是利用布隆过滤器的方式来实现的。先做一个简单的介绍在这里了,后续我再把我的理解整理出来。
2010-05-30 12:54:00 2959 2
原创 我的梦想在何处落地?
这个周末快要结束了,而我却是大有感慨,大有不写点什么实在是心里憋得慌,所以大老远的火急从位于保淑北路文二路口的浙江省新华书店那骑自行车赶回文一西路益乐新村的蜗居,开始写这边心得了。这次的心路历程不得不从这个周末的两天所发生的事来说起了。。。。。。这个周六我卧在家看了一天新出版的《hadoop权威指南》,貌似很有心得,毕竟首次拿到Hadoop的中文版的书,比在网上搜集的林林翠翠的资料看起来要
2010-05-23 15:58:00 1579 3
原创 对Hadoop中一段将字节码数组转换为Integer的代码的思考
在Hadoop的类org.apache.hadoop.io.WritableComparator中有如下一段代码,完成将Integer值序列化后对应的字节码数组重新反序列化为Integer的功能。 /** Parse an integer from a byte array. */ public static int readInt(byte[] bytes, int start) {
2010-05-23 12:13:00 2187 1
原创 利用JavaAPI访问HDFS的文件
1、重读配置文件core-site.xml要利用Java客户端来存取HDFS上的文件,不得不说的是配置文件hadoop-0.20.2/conf/core-site.xml了,最初我就是在这里吃了大亏,所以我死活连不上HDFS,文件无法创建、读取。hadoop.tmp.dir>/home/zhangzk/hadoopA base for other temporary directori
2010-05-16 14:34:00 46041 14
转载 How To Write Map-Reduce OnHadoop
概述Hadoop Map-Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map-Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序,然后把结果输入给reduce任务。通常作业的
2010-05-09 21:55:00 2673 1
原创 SVN分支与合并
合并合并包含两点,首先两个版本库树比较,然后将区别应用到本地拷贝。 这个命令包括三个参数: 初始的版本树(通常叫做比较的左边), 最终的版本树(通常叫做比较的右边), 一个接收区别的目标拷贝(通常叫做合并的目标)。 一旦这三个参数指定以后,两个目录树将要做比较,比较结果将会作为本地修改应用到目标工作拷贝,当命令结束后,结果同你手工修改或者是使用svn add或svn delete没有什么区别,
2010-05-03 22:53:00 828 2
原创 ContextClassLoader的意义
Thread.currentThread().getContextClassLoader()的意义:父Classloader可以使用当前线程Thread.currentthread().getContextLoader()中指定的classloader中加载的类。颠覆了父ClassLoader不能使用子Classloader或者是其它没有直接父子关系的Classloader中加载的类这种情
2010-04-09 21:05:00 2658 3
原创 我在淘宝网的自我介绍
我的花名叫文茂,本名叫张兆坤,来自湖北麻城。 我最初开始工作的时候是做.net程序开发的,后来在05年的时候开始做J2EE的开发工作了,大大小小的项目做了不少,也几经沉浮。面向未来我也困惑过迷茫过,有好些期待也有太多的无奈。 曾经,我对Oracle数据库特别感兴趣,一心一意想考OCP认证,买了很多资料,下了很多的视频,一下班就在我的电脑上折腾,可是只维持了几个月的激情。由于我在公司的职责并不是DB
2010-03-29 20:17:00 8462 9
原创 我来到杭州了,现在淘宝上班
终于到了杭州,入职淘宝网了。正在进行新知识的学习,适应淘宝的文化与技术。高人很多,不知道的东西也太多,要多多努力才能跟上大部队啊!
2010-03-23 18:47:00 2242
原创 淘宝网深圳专场招聘会亲历记
大概两周以前淘宝网从杭州给我打电话,说是进行一下简短的技术面试,问了几个基本问题。Session的实现机制是什么?Servlet的生命周期是什么?适配器模式的两种实现方式以及其类结构图是什么?线程的等待与通知机制还有Sleep()与Wait()的差别?还有其它几个比较基础的问题,当时我的回答取得该人员的赞赏,说是后续会有人和我联系的! 在两周以后我收到了淘宝网发给我的参加
2010-01-31 21:11:00 2649
转载 InfoQ 的架构师修炼之道
架构师是一个神秘而又神圣的名词,作为软件开发领域的设计师,架构师承载着太多的责任和挑战。对于一个程序员或者工程师来说,架构师就像是一个目标,一条道路,抑或是一座山峰。如何能够成为一名合格的架构师?架构师应该具备何种素质?而架构师又是如何做到持续不断的成长和提高的呢?带着这些问题,我们请到了五位InfoQ中文站的编辑,同时也是各领域出色的架构师或者咨询师,来谈谈他们心中的“架构师修炼之道”。他们是:
2010-01-31 00:07:00 1971
转载 软件架构:决策与选择
架构师最重要的工作是思考。思考导致决策,或者选择。为决策而思考架构师思考的出发点是成就受益人的利益,目的就是为了最终做出决策。在开始的时候,往往会有一些明显的途径,也会有一些隐含的途径。架构师要根据所掌握的信息,结合自身的知识、经验,尽可能找出所有的途径,思考哪条途径是最合适的。在这个过程中,有一些途径会很快被排除。排除一条途径的依据,首先是软件的价值,其次是软件的假设和前提。良好的实践是记录这些
2010-01-30 23:48:00 1692
转载 关于技术架构师的一些看法
很多人谈架构师,其实有两种架构师,一种是业务架构,一种是技术架构。我的经验和教训局限于技术架构,所以本文特指技术架构师。毕业前一年,毕业后7年,大约8年的技术领域经验和教训,参加过大小项目若干,有被人传颂的成功经验,也有惨痛的失败教训。在以前一直作为技术尖子,在不同的领域逐步填充各方面的知识,最近一年开始做架构设计。以下是我的一些看法。技术架构师要有责任心比如说,过去经历过的一个大项目(数
2010-01-30 23:43:00 1668 1
转载 系统架构师是怎样炼成的?
成为架构设计师是广大开发者职业发展道路之一,架构师究竟是个什么样的职业?需要具备什么基本能力?如何才能成为一个优秀的架构设计师以及架构设计师需要关注哪些内容?针对有关问题,本期“专家看台”为您采访了(微软认证专家,系统分析员,希赛网专业顾问,中国计算机学会会员) 张友邦,他会就相关问题与大家分享他的看法。“在我工作的六年多时间里,除了第一年是纯粹编码以外,其余时间都在做和架构设计有关的工作
2010-01-30 23:33:00 1187
转载 架构师是这样炼成的——专访资深架构师林伟炎
随着软件行业的发展,软件人才也在不断地细分。以前,他们被统称为软件开发工程师。而现在,系统分析员、配置管理员、测试工程师,新兴的岗位名称不断出现。其中,软件架构师这一角色的重要开始日益凸显。 对于每一个软件开发人员,架构师都是一个令人向往的角色,它是能力与高薪的代名词。就连软件行业的传奇比尔盖茨在2000年卸任公司CEO时,也担任了微软公司的荣誉角色“首席软件架构师”,可见“架构师”这
2010-01-30 23:25:00 1698
转载 架构师接龙系列(200908-200911)
(本文来自《程序员》杂志0911期,更多精彩内容敬请关注0911期) 《程序员》杂志官方网站:http://www.programmer.com.cn/本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/programmer_editor/archive/2009/11/03/4761310.aspx 架构师接龙:黄冬VS邓毅 提问嘉宾:
2010-01-18 00:00:00 2693
转载 牺牲一致性来换取分布式架构的可伸缩性(转)
系统架构师角色关键的一方面就是衡量相互冲突的需求、决定解决方案,常常要牺牲一个方面来换取另一个方面。随着系统变得越来越大、越来越复杂,越来越多关于如何构建应用的传统智慧正在受到挑战。比如说,去年3月在伦敦召开的QCon会议上,Dan Pritchard谈论了eBay的架构。他的介绍随后得到了很多的报道,其中一个主要的结论就是eBay不使用事务,用数据一致性上的损失来换取系统整体伸缩性和性能上相当大
2010-01-17 22:27:00 1152
转载 可伸缩性最佳实践:来自eBay的经验(转)
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需
2010-01-17 22:22:00 877
转载 为什么要用非关系数据库?(转载)
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息
2010-01-13 22:06:00 1141 1
转载 Hbase分析报告(转载)
Hbase分析报告本文基于环境hadoop-0.16.4 和 hbase-0.1.3 编写 Hbase是一个分散式开源资料库,基于Hadoop分散式文件系统,模仿并提供了基于Google文件系统的Bigtable资料库的所有功能。 Hbaes的目标是处理非常庞大的表,可以用普通的电脑处理超过10亿行资料,并且有数百万列元素组成的资料表。 Hbase可以直接使用本地文
2010-01-13 20:40:00 3019
转载 构建高性能的SNS网站架构(转载)
一、满足极高读写性能需求的Key-Value数据库高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色,但出了出色的性能,他们还有自己独特的功能:1、RedisRedis是一个很新的项目,刚刚发布了1.0版本。Redis本质上是一个Key-Value类型的
2010-01-13 20:26:00 1878
转载 了解NoSQL的必读资料汇总(转载)
PHPChina讯:NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而 NoSQL 存储就是为了实现这个需求。Google 的B
2010-01-13 20:19:00 1173
转载 高性能数据库HyperTable(转载)
数据库领域近来吸引了不少眼球。IBM不久前投资于EnerpriseDB;EnerpriseDB有一个运行在Amazon EC2上的云版本。Amazon去年末发布了他们自己的云数据库。而Google的BigTable尽管并不开源,也得到了社区的广泛研究。同样是在这个 领域,两个开源项目——HBase和Hypertable利用开源Map/Reduce平台Hadoop提供了类似于BigTable的可伸缩
2010-01-13 20:17:00 2081 1
原创 Struts2源代码分析(二)类ContainerImpl的实现分析
要理解Struts2的源代码的一个核心是要理解它的对象容器的实现方式了。涉及的具体代码是接口com.opensymphony.xwork2.inject.Container.java,以及该接口的实现类com.opensymphony.xwork2.inject.ContainerImpl.java。在Struts2中容器的概念主要在于将使用了Inject注解的构造函数、方法和字段的依赖对象注入其
2010-01-07 20:06:00 3441 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人