代码改变世界

The case for learned index structures

2019-04-16 00:02 by Sun Yongyue, 1319 阅读, 1 推荐, 收藏, 编辑
摘要:《the case for learned index structures》中介绍了使用机器学习对索引系统进行优化的新思路以及优化的效果。除了思路以外,优化时使用的工程方案也值得学习。 阅读全文

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

2015-03-10 01:18 by Sun Yongyue, 1949 阅读, 0 推荐, 收藏, 编辑
摘要:CalvinFS拿了FAST 15最佳论文;找到了失联十三年的小伙伴;年终/年初整理资料,发现做团委工作的 King 师兄对Calvin有兴趣;最近其他团队对分布式事务和存储问题/兴趣较多……几件事激发了我写这本文的动机,要知道上一篇是2012年的(虽然一直有做个人学习、工作笔记)。Yale的Cal... 阅读全文

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

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

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

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

nginx http子模块conf的初始化

2011-09-05 22:34 by Sun Yongyue, 1394 阅读, 0 推荐, 收藏, 编辑
摘要: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, 4146 阅读, 0 推荐, 收藏, 编辑
摘要:auto save and load project session for vim 阅读全文

Memcached遍历Key

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

python的网络库

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

Modified 2 color sort

2010-12-05 01:33 by Sun Yongyue, 3221 阅读, 0 推荐, 收藏, 编辑
摘要:不知道原来的问题是怎么样子,修改后大概题意就是说有一个由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, 1528 阅读, 1 推荐, 收藏, 编辑
摘要:首先这个问题绝对可以在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 阅读全文