上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 刘浩2009.09~2012.03 北京邮电大学 计算机科学与技术 硕士2005.09~2009.07 北京邮电大学 通信工程 本科工作经历2014.07~至今 阿里巴巴 支付宝-共享平台事业群-基础数据部-OceanBaseOceanBase开发花名:羡林2013.10~2014... 阅读全文
posted @ 2013-05-24 00:25 刘浩de技术博客 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: Tair在其intro wiki 上介绍了其现有的桶分布策略: 程序提供了两种生成分配表的策略, 一种叫做负载均衡优先, 一种叫做位置安全优先。 负载均衡优先 当采用负载优先策略的时候, config server会尽量的把桶均匀的分布到各个data server上. 所谓尽量是指在不违背下面的原则的条件下尽量负载均衡. 1 每个桶必须有COPY_COUNT份数据 2 一个桶的各份数据不能在同一台主机上; 位置安全优先 位置安全优先原则是说, 在不违背上面两个原则的条件下, 还要满足位置安全条件, 然后再考虑负载均衡. 位置信息的获取是通过 _pos_mask(参见安装部署文档中... 阅读全文
posted @ 2013-04-26 19:09 刘浩de技术博客 阅读(1807) 评论(0) 推荐(0) 编辑
摘要: 这两天线上的一个服务出现了内存问题,表现在使用top查看进程的RES会间断性的突然上升,而且从不下降。仔细review了线上的代码,没有发现内存泄漏,怀疑和glibc的内存分配机制有关,glibc并没有及时将内存释放给操作系统。可以自行使用如下的测试代码进行下验证,会发现使用默认的glibc和google提供的tc_malloc,map吃掉的内存在离开自己的scope后并没有吐给操作系统,使用jemalloc没有如上问题。线上的代码已经重新用jemalloc编译推动上线了,还处在观察阶段。#include <malloc.h>#include <map>#include 阅读全文
posted @ 2013-04-24 13:55 刘浩de技术博客 阅读(2084) 评论(3) 推荐(2) 编辑
摘要: Tair是淘宝自主开发的一个分布式 key/value 存储系统。Tair 分为持久化和非持久化两种使用方式. 非持久化的 Tair 可以看成是一个分布式缓存. 持久化的 Tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, Tair 可以配置数据的备份数目, Tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务.项目主页参见:淘宝Tair. 受NoSQLFan上的一遍文章Redis监控技巧 一文的启发,本文系统的总结下我们在生产环境使用Tair时进行的各类监控和统计,希望对开源社区有所回馈。 Tair最直接.. 阅读全文
posted @ 2013-04-11 20:30 刘浩de技术博客 阅读(5201) 评论(4) 推荐(3) 编辑
摘要: 使用RabbitMQ半年有余,每天跑的数据量数亿这个量级吧,期间做了些工作,也处理了些问题,稍加总结。我们使用的场景主要是用于模块件的数据中转和分发,客户端以C++为主,php和python为辅。工作:基于rabbitmq-c开发了c/c++客户端,主要实现了连接管理、统一配置管理、负载均衡、QPS限制等功能,同时为支持队列迁移,提供了消息本地缓存功能,通过信号开关;为解决特定场景下内存暴涨的问题,额外提供了thrift形式的访问接口,在thrift层增加了统计、配额管理等功能,同时提供队列抽象层及多队列机制,支持后续不中断服务的扩容;开发了配套的工具脚本,一键创建vhost\exchange 阅读全文
posted @ 2012-12-14 20:27 刘浩de技术博客 阅读(19998) 评论(2) 推荐(3) 编辑
摘要: LevelDB的Put操作,是一个顺序写log,然后插入memtable(数据结构是skiplist)的过程,调用关系如下图所示:LevelDB的Get操作,会优先查找memtable,如果memtable查找不到,逐层在sstable中查找。下图是在memtable不存在,但在sstable中可以找到key的调用关系图:程序代码如下: 1 #include "third_party/leveldb/db.h" 2 3 int main(void) { 4 leveldb::DB* db; 5 leveldb::Options options; 6 7 optio... 阅读全文
posted @ 2012-12-07 19:53 刘浩de技术博客 阅读(3188) 评论(1) 推荐(0) 编辑
摘要: 几天前淘宝量子恒道在博客上分析了HBase的Cache机制,本篇文章,结合LevelDB 1.7.0版本的源码,分析下LevelDB的Cache机制。概述 LevelDB是Google开源的持久化KV单机存储引擎,据称是HBase的鼻祖Bigtable的重要组件tablet的开源实现。针对存储面对的普遍随机IO问题,LevelDB采用merge-dump的方式,将逻辑场景的随机写请求转换成顺序写log和写memtable的操作,由后台线程根据策略将memtable持久化成分层的sstable。针对读请求,LevelDB会首先查找内存中的memtable和imm(不可变的memtable)... 阅读全文
posted @ 2012-11-29 22:34 刘浩de技术博客 阅读(12415) 评论(1) 推荐(3) 编辑
摘要: 今天老大在组内进行了一次case分析,做笔记并进行相应补充如下。遇到问题时的处理思路评估故障重要性,紧急程度,适当的报告,如果需要,可寻求帮助;及时处理故障,“糙、快、猛”,见效快,消除影响-治标;故障善后要治本,聪明靠谱的人不会让故障发生第二次;合理安排工作哦,保证处理问题的节奏感-好的反馈机制有利于解决问题;故障是日常工作积累的集中反馈;行胜于言,自己得到的数据分析比听到的重要;如何判断系统的瓶颈或故障点日常工作:监控是否到位,日志是否准确全面(提高故障定位率和定位速度);必要的技术手段:cpu, disk io(iops or throughput), network(初步诊断);熟悉自 阅读全文
posted @ 2012-11-13 22:20 刘浩de技术博客 阅读(8601) 评论(2) 推荐(0) 编辑
摘要: 淘宝那岩曾经在淘宝核心系统团队博客上介绍过Tair ldb的实现,本文将尝试着介绍rdb(redis存储引擎)的实现。Tair是淘宝开源的分布式KV缓存系统,内部将功能模块化,抽离出底层存储细节,可以接入不同的存储引擎。redis是一个开源的、高效的key-value存储,提供了strings、hashs、lists、sets、sorted sets等多种高级数据结构。redis作为Tair的存储引擎接入,称为rdb。本文参考的源码为Tair rdb实现最新的release版(这里),对照的redis实现为2.4.10版。Tair首先是一个分布式的框架,有一系列策略满足CAP(数据备份,迁移复 阅读全文
posted @ 2012-10-12 23:42 刘浩de技术博客 阅读(10453) 评论(0) 推荐(0) 编辑
摘要: 假如有如下保存url的文件all_urls:http://www.baidu.comhttp://www.sina.comhttp://www.baidu.comhttp://www.sohu.comhttp://www.baidu.comhttp://www.sina.com想统计不同url出现的次数,并按照从大到小的顺序排列,只需一行简单的shell脚本就可以了:cat all_urls|sort|uniq -c |sort -k1 -nr|awk '{print $2}'结果如下:http://www.baidu.comhttp://www.sina.comhttp:// 阅读全文
posted @ 2012-09-20 17:49 刘浩de技术博客 阅读(821) 评论(2) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页