代码改变世界

几句话说说跨IDC分布式数据库Calvin

2015-03-10 01:18 by Sun Yongyue, 817 阅读, 收藏, 编辑
正文内容加载中...

Spanner——Google的全球化分布式数据库

2012-09-20 19:14 by Sun Yongyue, 3296 阅读, 收藏, 编辑
摘要: Spanner论文出来后大家山呼万岁,但是它是否适合业务?可能只有自己能搞明白。本文是读spanner过程的一点小记录,不准备全文翻译,权当笔记。如有错漏,烦请指正,如有见解也欢迎讨论。section 1 介绍优点:高可用、可扩展、(中间态的?tmp)多版本、全分布式、同步复制、对外一致的分布式事务应用:F1高可用 vs 低延迟:大多数应用使用3-5个datacenter,以获得较低延迟,可抵抗1-2个datacenter的失效关注点:管理复制到数据中心间的数据。同时在底层分布式系统之上提供一些数据库功能。因为bigtable UI不够简单。megastore写吞吐低描述:从Bigtable类阅读全文

SuperPutty 1.3 special version

2012-08-01 14:08 by Sun Yongyue, 3868 阅读, 收藏, 编辑
摘要: Introduction=============SuperPutty (code.google.com/p/superputty) is a Windows GUI Application that allows the PuTTY SSH Client to be opened in Tabs. Additionally there is support for SCP to transfer files.SuperPutty is written in C# and runs on any Windows platform supporting the .NET Framework 2.阅读全文

libmemcached 0.39 故障转移无效

2012-02-25 21:47 by Sun Yongyue, 966 阅读, 收藏, 编辑
摘要: 晚上用错一个libmemcached库,原来用0.52的,改成0.39后故障转移一起无效,起初以为代码有问题,后来才发现版本关系也有影响,改回0.52后DONE。lrwxrwxrwx 1 sunyy sunyy 63 Dec 14 13:50 libmemcached-0.39 -> /home/sunyy/local//x86_64/libmemcached-0.39-bin-x86_64-gcc4.1.2阅读全文

淘宝的Tengine都改了什么

2012-02-13 15:41 by Sun Yongyue, 6221 阅读, 收藏, 编辑
摘要: Tengine是由淘宝Servers Platform Team基于Nginx修改的一个服务器,中午趁着大家都在睡觉,粗粗地拿了代码看下都修改了哪些东西。个人认为里边比较有用的修改是input filter和sysguard,由于只是粗看,没有留意细节,可能有错漏。以下是分代码目录的修改记录笔记:0. others1) 配置默认值的修改ON->OFF之类的2) bug/logic相关的修改,还细看就不细说了。1. core1) 增加configure的dump2) 增加一此log方式或方法3) 增加内存池管理realloc4) 增加字符串处理ngx_atoll,修改unescape_ur阅读全文

Nginx开发小记

2012-01-05 16:43 by Sun Yongyue, 3052 阅读, 收藏, 编辑
摘要: 关于Nginx开发,应属官网推荐的两篇文章最为经典,相当多的国内文章都是用这两篇文章作为蓝本,翻译修改。这里不重复,本来是想写个系列的,列好提纲发现来来去去都是那些基础知识,木有什么好说的。不如直接对着提纲简单说一说就行了,浅尝辄止。这里不讲什么细节的,另一篇开发细节指南在准备中,会有一些细节。一、Phase与状态机 Nginx的HTTP服务,跟众多其他的网络服务一样,就是一个状态机。状态机中的各个状态/阶段在Nginx中定义为各种各样的phase,细数一下达到了11个之多。各个phase与形形色色的钩子、异步机制协作,成就了nginx的高效、稳定与强大功能。 状态机本身并不是Nginx...阅读全文

tt2mysql —— 一个异构数据库同步方案

2011-11-13 22:32 by Sun Yongyue, 1889 阅读, 收藏, 编辑
摘要: 大多数数据库都自带了同步方案,但通常是同步到同一类型的数据库。在一些特定的情况下,我们可能希望把数据从一种数据库,同步到另一种数据库,以便进行数据分析、统计、挖掘等,或是完成实时监控、实时搜索等服务。 本文介绍的就是这样一个方案,把数据从NoSQL数据库ttserver同步到MySQL上。 数据的同步过程基本上可以分解成:获取、解析、识别、处理。 获取同步(replicating)过程基本上就是处理高性能网络交互、各层通信协议、基于安全考虑的身份验证等问题的过程。解析(parsing)过程主要处理具体数据结构,由分派器(dispatcher)分派给具体的识别器(recognizer)进行识别.阅读全文

nginx http子模块conf的初始化

2011-09-05 22:34 by Sun Yongyue, 753 阅读, 收藏, 编辑
摘要: nginx.conf文件中有http这个模块,里边可以加入各种子模块ngx_http_module_t ,这些子模块自定义conf的初始化过程如下??一、几个结构ngx_conf_t // 路人甲ngx_http_XXX_(main|srv|loc)_conf_t // 自定义的conf结构ngx_command_t // 各个Directivesngx_http_module_t// http中的子modulengx_module_t// 高层module二、一些函数http中子module初始化的过程:main -> ngx_init_cycle -> ngx_conf_par阅读全文

vim中session自动保存及加载

2011-06-18 13:38 by Sun Yongyue, 2617 阅读, 收藏, 编辑
摘要: auto save and load project session for vim阅读全文

Memcached遍历Key

2011-04-01 13:21 by Sun Yongyue, 1934 阅读, 收藏, 编辑
摘要: 前段时间XX升级之后出了点小问题,最后定位到是缓存数据格式变动造成的。当时就想要个工具去把memcached里的key拿出来看,之后虽然没有用上,但自己还是写了个,以备后用。 目前功能比较简单,只是遍历所有的key,稍加修改可以 1)取出指定格式(正则等)的key;2)显示value。交互可以更好一点:) 1 # -*- coding:utf-8 -*- 2 import telnetlib 3 import re 4 def send(tn, cmd): 5 tn.write(cmd + "\r\n") 6 return tn.read_until("END\r阅读全文

TT数据到MYSQL的同步方案

2010-12-14 16:55 by Sun Yongyue, 916 阅读, 收藏, 编辑
摘要: 几个月前开始做这个东西,中间因为其他事情被中断N次(>_<不喜欢认真做一件事情时被打断)。最近又接着做了下来,目前基础框架和代码都OK,部分命令已经实现,可以完成TT到MySQL的同步。今天发现凤凰网有一个人跟我做了类似的工作,虽然可能我们的目的不同具体实现也有差别,但是相信基本思路是一致的。该方案支持配置来实现不同业务,对数据可以进行筛选及也支持映射,多TT多MYSQL同步,进度控制,后端存储服务可选。和那位仁兄用PHP不同,我用的是C++/C#。另外他只实现了BigEndian的服务,我现在基础部分代码已经对BigEndian和LittleEndian都支持,呵呵。另外可能由于阅读全文

python的网络库

2010-12-07 21:08 by Sun Yongyue, 762 阅读, 收藏, 编辑
摘要: 最近新功能上线,帮忙加了几个监控脚本。上次用的perl,语法太随意了,看起来很是不整洁,自己写的都觉得不好,更不要说给别人看。好久没用python了,反正这次准备使用新的监控设计方案,刚好换一下。 用perl写的是第一次做监控脚本,什么都不知道,看着别人的逻辑来写。觉得不是很好,一个脚本只监控一个功能,太多的重复工作和体力劳动,布置、统计也不方便。这次把它们都集中到一起,并抽象出黑箱监控的一些参数,一套东东搞定。其实逻辑很简单,就像下图所示。 麻烦的地方在于,以前是用socket做通信,这次为了方便,直接用python的库去做request。前后用了urllib2,httplib,httpli阅读全文

Modified 2 color sort

2010-12-05 01:33 by Sun Yongyue, 3060 阅读, 收藏, 编辑
摘要: 不知道原来的问题是怎么样子,修改后大概题意就是说有一个由0和1组成的数据要做到先在奇数位放置0,偶数位放置1,多出来的部分再放到最后边。有一个限制条件是原地地交换,也就是原则上不能使用额外空间(当然O(1)的变量还是可以用的)。比如说输入{0,1,1,0,1,1,0}就变换成{0,1,0,1,0,1,1}好的,没有现成算法,这种问题我喜欢。其实还是可以从其他算法中借鉴一些思想,还记得Knuth给的一个快排吗?eidx = 0; // even indexoidx = 1; // odd indexwhile (eidx < len && oidx < len){ while (eidx < l阅读全文

找出有序整数数组中下标与值相同的所有元素

2010-12-04 23:04 by Sun Yongyue, 976 阅读, 收藏, 编辑
摘要: 首先这个问题绝对可以在O(n)的时间内求解,现在主要想一下能不能有更快的方法。1)divide-conquer,分解成子数组后处理2)二分查,子数组array[s,t]里边mid = (s+t)/2if t < array[mid]:  // no need to check the part after midelse if s > array[mid]: // no need to check the part before mid而,如果元素的值都不相同if mid < array[mid]: // no need to check the part after midelse if阅读全文

MySQL缓存使用注意事项

2010-12-03 08:11 by Sun Yongyue, 301 阅读, 收藏, 编辑
摘要: MySQL使用了查询缓存(query cache)之后,在官方提供的一个benchmark实验中可以提升了238%以上的查询性能,而另一个实验则显示MySQL缓存的开销大概为不使用缓存时的13%。当然这个数据使用的benchmark环境有点老,机器有点过时,不过还是有方向上的参考意义。有一篇文章在整理中《MySQL一些数据》,会比较详细地说明一些MySQL的状态和变量情况、作用和优化。当然也包含了...阅读全文