自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 virsh IO错误调试步骤

Open-Stack 集群大了以后,内存出错,磁盘出错的事情出现的次数也会增加,下面就是一个例子。 运维在重启一台Hypervisor (HV) 后,碰到 input, output 错误:root@production-m1:~# virsh-su: /usr/bin/virsh: Input/output errorroot@production-m1:~#第一步: 检查 li

2015-02-02 10:03:21 1326

原创 MongoDB Network 排错笔记

那天Snow很Xfan在查这个问题,我也一起看了看,收集了一些命令,以后再碰到类似的问题应该可以节省不少时间。 1.       I want to check what system call from mongo cost most oftime[jianxu1@phx7b02c-1d65 ~]$ sudostrace -f-c -p 16931    make sure add –f

2012-11-16 12:22:36 963

原创 Input Endpoint 和 Internal Endpoint的区别和作用

     我们可以在service definition文件中为每个Role定义 Input Endpoint 和 Internal Endpoint, 一开始我的理解就是 Input 就是在Azure 的Load Balancer上建立一个外部端口到内部端口的映射,本质上Azure的LB是一个LB+NAT。 而Internal Endpoint就不会在LB上设计NAT,所以外部应用是没有办法访问到Internel Endpoint的。      其实,出了我上面说到的区别以外,这两者的区别还在Azure

2011-05-26 14:50:00 1461

原创 BFS求树的直径

<br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx   JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx  自己先做一遍。<br /> <br /> <br />题目:<br /> <br />/*<br />第11题<br />求二叉树中节点的最大距离...<br />如果

2011-02-25 22:20:00 4804 2

原创 二元查找树转变成排序的双向链表

<br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx   JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx  自己先做一遍。<br /> <br />题目:<br /> <br />1.  把二元查找树转变成排序的双向链表<br /> 题目:<br />输入一棵二元查找树,将该

2011-02-22 17:36:00 1616 3

原创 腾讯- 数字排列

<br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。<br /> <br />题目:<br /> <br />第6题<br />------------------------------------<br /

2011-02-22 09:57:00 715

原创 求子数组的最大和

声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入

2011-02-21 16:06:00 609

原创 从N个数中选最小的K个数

<br /> <br /> <br /> <br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。<br /> <br />题目:<br /><br />5.查找最小的k个元素<br />题目:输入

2011-02-17 17:49:00 2325

原创 走楼梯问题

<br /> <br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。<br /> <br /><br />27. 跳台阶问题<br />题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。<br />求总

2011-02-17 14:36:00 4805 2

原创 如何检查Application送往Oracle DB的Query

<br />昨天,有一个Bug耗掉了我近一天的时间,写这篇学习笔记不是说那个Bug的,而是在解决的过程中,从shenglin那里(shenglin是COC的Senior Oracle DBA)学到了一些基本命令,命令都不复杂,不过我觉得对我挺有用的,至少以后我再碰到类似的问题,至少可以自己先试试而不是老要去麻烦DBA。 <br />现象:<br />应用程序往数据库送了一跳insert语句。应用程序log文件中记录了这条SQL执行成功了:<br />insert into tableX(fi

2011-01-07 18:13:00 666

原创 找出索引键值出错的数据ID

<br />这个礼拜轮到我做production support。今天碰到的一个问题是:X Pool的搜索节点crash! <br /> <br /> <br />通过分析core file和access log,我们定位到killing query。发现当输入关键字符合特定pattern的时候,search node就会crash。<br /> <br />根本原因是data issue。即:处理代码认为根本不可能出现某类数据,但是不幸出现了,导致代码执行异常。处理production issue

2011-01-07 18:11:00 769

原创 Rebuild MySQL Slave Server

Posted on九月 7, 2008byarrowpig1979<br />刚锻炼回来,在听‘爱似狂潮’。刚写完了C++的Signal Handler的封装。下周一我们Search Backend Offsite,而且下周轮到我Shaddow On Call了,周末要把项目的事情先做掉,整理以前的Site Issue的email,免得到时被TDO鄙视。中午和Peter出去散步,Peter是SFE的PD Manager,是一个对工作很有激情的一个人,这一点我跟他很像。Peter说了两点品质,第一

2011-01-07 18:08:00 1012

原创 MYSQL中的CREATE TEMPORARY TABLE

Posted on八月 19, 2008byarrowpig1979<br />记录一下今天的一个BUG FIXING。早上收到一个BUG,说有一个到模块A的调用B,多执行几次以后就会出错。错误信息显示SQL ERROR。因为CDC SBE就我最近改过模块A的代码,就把BUG塞给我了。<br />Trouble Shooting的过程:先检查error log, 没有发现明显问题。于是我把debug log打开后重起模块A,然后手动执行那个调用B,于是我从debug log中拿到了调用B所对应的函数

2011-01-07 18:07:00 8212

原创 首次Oracle SQL Tuning经历

<br />这篇文章跟我一样的菜鸟可以看看。事情的缘由在上一篇Blog:如何判断程序处于I/O等待里面已经介绍过了。这件事情我也得到一个教训,QA环境和Production环境还是很不同的,特别是DB 操作,QA环境数据库数据量比较小,SQL执行计划在Production上可能得出完全不同的结果,而我的遭遇就是一条SQL在Production上一跑就再也回不来了,最后只好让DBA kill掉那个任务。<br />原来的SQL是这样的:一共牵涉5张表,表名和 每张表的索引情况如下:TableIndex

2011-01-07 18:06:00 726

原创 Oracle 10g Express的Getting Started Hands On

到Oracle 官方网站下载Express的安装包,然后安装。安装好以后,一个名为XE的instance就已经就位了。 安装好了以后呢,在Start->All Programs->Oracle Database 10g Express Edition->Goto Database HomePage,创建自己的用户名和密码。 修改数据库的默认配置:Increase parameter "processes"。假设管理员sys的密码也是sys sqlplus sys/sys@XE as sy

2011-01-07 18:05:00 596

原创 数据库学习笔记–Application Design and Development(2)

<br />Two-Layer Web Architecture<br />在双层Web架构中,服务端应用程序是作为web server的一部分运行的。哪怎么实现的呢,一种流行的Java实现方法就是把Java代码加载到web server内部,我们知道做什么事情都要有个规矩,写程序也是一样的,程序员可以根据业务需求用Java实现不同的应用业务逻辑,包括和数据库的交互,那web server和java应用代码之间怎么交互呢,这个’规矩’就是Java servlet specification。比如

2011-01-07 18:04:00 543

原创 数据库学习笔记–Application Design and Development(1)

<br />Web Fundamentals<br />今天的鱼我烧失败了,幸好还看了点书,这是数据库系统概念的第8章,看了就写下来吧。属于扫盲级别的。现在的数据库系统,其实很少有用户直接写SQL访问数据库的,通常的做法都是通过界面间接访问的,终端用户根本不需要数据库的知识,而且现在大多数的界面都是Web界面,用户通过HTTP访问。在这个过程中有两个方面,客户端和服务器端。以eBay来说,客户端就是用户的浏览器,服务器端就是eBay的Web Server啦,用户用浏览器通过HTTP协议访问eBay站点,

2011-01-07 18:03:00 596

原创 数据库设计–Combination of Schemas

<br />我们考虑一个“多对一”的关系表,往往牵涉3个方面,实体表A,实体表B和关系表AB,这里A–>B是many-to-one的关系。如果条件加强一些,A是完全参与在AB关系表中(Totally),怎么理解Totally呢,就是A实体表中的每个实体(entity,其实就是表记录啦,也就是A表中的每一行),都在AB关系表中有对应的项! <br />好了,简单表述一下,如果: 表示A和B关系的表AB是A–>B的many-to-one 关系 A是Totally Participate关系表AB<br

2011-01-07 18:02:00 590

原创 数据库学习笔记–Database Design(1)

<br />需求分析:<br />今天天气很好,早上去交了电费,中午和晚上都煮了馄饨。昨天把《数据库系统概念》这本书从公司又扛了回来。今天看了点,就是第6章–Database Design and the E-R Model。这本书是在我们寝室胖子的建议下买的,3年了,都没有怎么看。今天在凸窗上晒被子,就躺在那里看了一点点。由于阳光晒屁股,看着看着就睡着了。 <br />我一直觉得什么是理解了呢,就是能用自己的话把学到的东西按照自己的理解说出来,并且要让别人听懂。数据库系统概念的阐述方式有点学究,列

2011-01-07 17:59:00 760

原创 如何在Terminal下访问Oracle数据库

<br />1. Terminal下Oracle的客户端叫sqlplus。为了能让sqlplus运行,需要配置环境变量PATH和LD_LIBRARY_PATH.<br />假设ORACLE客户端的安装路径是:/home/oracle/products/current <br />export ORABLE_HOME=/home/oracle/products/current <br />export PATH=PATH:$ORACLE_HOME/bin <br />export LD_LIBRARY_P

2011-01-07 17:58:00 1546

原创 部署PHP

<br />昨天下午我自己试着部署了一下apache+php。自己做一遍总会碰到各式的问题的,这边记录一下。这是我们组的实习生开发的一个小工具,需要serve query,需要发http request到别的节点获取信息,需要访问oracle数据库。 <br />需要安装的模块:apache http server。 php。 php pecl_http 扩展用于支持向别的http server发送http request并获取结果。 php oci8 扩展,用于访问oracle数据库。<b

2011-01-07 17:54:00 1528

原创 内存分配(4)–LOKI的小物件分配器

<br /> 今天我们来看看Loki的内存分配.有一本书叫做<Mordern C++ Design>,个人认为是一本非常不错的书,值得一读。Loki的内存分配目的很明确,loki的设计者认为当前的C运行库的内存分配函数(malloc/realloc/free)并没有针对小内存分配做过优化,导致在有大量小内存频繁分配释放的环境下性能很差,所以他要解决这个问题,这一点倒是和C++ STL很相似,只不过loki的设计者更露骨,他在给分配器起名字的时候也充分强调了loki的内存分配是针对小物件做了大量工作的

2011-01-07 17:52:00 1437 1

原创 内存分配(2)–embedded pointer

到现在看来,简单的空闲链表的主要开销就是一个next指针域,在32位系统上是4个字节。可是如果我们的CMyObject本来就很小,只有4个字节,那额外开销可就是100%阿,如果系统中用到几万,十几万,甚至上百万个CMyObject,就不容小视了!<br />我们仔细来分析一下刚才的例子,什么时候会用到next指针呢?<br />1. 第一次分配对象,建立整个freeStore的链表的时候,初始化各个实例的next指针<br />2. 每次给申请者一个实例时,要修改freeStore =

2011-01-07 17:51:00 1567

原创 内存分配(3)–SGI STL的内存分配器

Posted on六月 30, 2007byarrowpig1979我在这里枉自揣测一下SGI版本的STL在内存分配时的意图吧,SGI的内存分配器一共有两级,二级分配器用于分配小于等于128字节的内存块,如果申请的内存区块大于128字节,就自动使用一级分配器分配。所以说真正问系统要内存资源的动作全部通过一级分配器,一级分配器是malloc的一个封装,并且强调了在系统内存资源耗尽的时候的处理。记得在Effective C++里面有对内存耗尽时的讨论。那为什么要设计一个二级分配器呢,我想设计者主要有以下几个

2011-01-07 17:51:00 1063 2

原创 内存分配(1) — 空闲链表

Posted on六月 29, 2007byarrowpig1979内存分配是所有成功的库都要费大量心力去做好的事情,除非是对performance很高的需求,至少我现在在工作中很少需要自己来写内存分配策略。我始终觉得一些经典的库,像STL,Loki,Boost是最好的教材。读书也要讲究方法,读STL这样的库,我现在会逼着自己多问几个为什么,为什么作者要这样设计呢,如果换作我自己,我会怎样设计呢,有什么地方没有考虑周全呢。今天我试图来说说内存分配,希望大家多发表意见。交流才能进步嘛-:)我们经常会写 CMy

2011-01-07 17:50:00 2000

原创 Resolving Recurrence

<br />(1) – Substitution Method<br /> <br />整个recurrence就是研究一个数学表达式:T(n) = aT(n/b)+f(n)  意思是先有一个问题T(n), 解决思路为把T(n)切分成a个小问题, 每个小问题的代价是T(n/b), 然后把a个T(n/b)的结果合并起来的代价是f(n);依次类推,直到T(k)的粒度小到其复杂度是一个常数。很像是递归吧~~递归只是一种实现方式,这里介绍的是一种思路和评估这种思路复杂度的方法。<br />经典的评估Re

2011-01-07 17:48:00 1071

原创 OSG — 事件处理模型

纵览多数面向对象的库,在事件处理上都希望把事件源和事件处理分开。在说OSG的事件处理之前我想先看一个通用的事件处理模式,Reactor模式。<br />Reactor的是用于事件驱动的应用程序中的,将一个或多个客户提交的请求分发给相应的事件处理器处理。这里有两个设计需求:<br />Q1.客户提交的请求时不能阻塞客户代码,我们可以待会处理你的请求,但是不能看到你的请求时理都不理你。<br />解决: 设计一个Synchronously Event Demultiplexer.使用不阻塞客

2011-01-07 17:45:00 3155

原创 OpenSceneGraph(OSG) — 概述

<br />3D引擎,相信大家都不会陌生,OpenGL,DirectX,可是我们常常听到各个游戏公司还有自己写自己的3D引擎,因为OpenGL太底层了,用OpenGL的好处是利用图形卡的硬件加速功能(当然没有硬件支持,OpenGL也可以软件模拟),但是每个应用都有他的特殊性,把常用的一些渲染模块用面向对象的语言来封装OpenGL指令,能大大加快开发速度,在开发Insight的时候有机会看了NI Germany开发的针对测试测量数据渲染的3D 引擎,想到设计这样的引擎有什么共性呢。Neil跟我提到了一个O

2011-01-07 17:44:00 1780

原创 OSG — 内存管理策略

OSG和OpenGL的主要区别之一是OSG提供了组织空间场景的功能。OSG把空间场景和场景中的所有物体都组织在一棵树下。根节点代表整个场景,由根节点出发可以遍历场景中的所有物体。这个实现很简单了,如果我是这棵场景树的设计者,首先想到的就是,定义这个的节点类:<br />class gNode{<br />public:<br />    virtual ~gNode(); <br />    void addChild(gNode* pChild);<br />private:<

2011-01-07 17:44:00 1899 2

原创 C++异常处理的三个境界

2005年5月份,我转正后1个月,组里组织我们到青岛旅游,那个时候我正在看Exceptional C++这本书,有一个章节一直看不懂,就打印了带到青岛去了,嘿嘿,旅游还是有助于激发灵感的,在旅馆里我终于看懂了,回来以后总结了一个PPT。这个PPT很有特点,因为我做了一个Q版。时光飞逝阿,转眼2年多过了,房价又涨了好多,本来可以买两室两厅的钱只够一室一厅了。特重写C++异常处理献给我们可爱的房地产开发商. Exception-Safety Issues and Techniques<br />预练武功,先

2011-01-07 17:41:00 1040

原创 Typename in C++ Template

<br />今天调一个程序,里面用到了vector,在GDB里面看vector里面的东西一点也不直接,如果碰到vector<vector<int> >,要想看看里面的内容就更不爽了。也可能是我不知道有什么好办法,如果谁知道,麻烦告诉我一下。 <br />没有办法,只要弄个Dump函数来看: <br />template <class T><br />void DumpArrayArray(vector<vector<T> >& arr)<br />{<br />    cout<< "D

2011-01-07 17:40:00 542

原创 const char* const 问题

<br />这是很经典的问题,很多C语言的初级面试都会碰到。今天在这里重提是因为我以前一直没有真正理解,我是死记得: <br />const char* p: p指向的内容是常量,但是p是常量指针<br />char* const p: p指向的内容是变量,但是p是指针常量<br />因为我没有真正理解,所以稍微一变化我就傻了:<br />template <class T><br />void getStrT(const T& val)   {…}   //<br />void getSt

2011-01-07 17:39:00 859

原创 Timer的C++实现

<br /> <br /> <br />要求:<br /><br />在HTTP服务器上实现一个不需要精确定时的Timer,该Timer本质上是一堆时间事件的管理类,每个时间事件都绑定一个事件回调函数,可以scedule在某个时间点开始运行,运行一次或者以固定时间间隔反复执行。Timer的使用者可以以代码方式加载或者撤销指定的时间事件。 <br />设计这个Timer的原因,因为一个HTTP服务器上加载了诸多服务,我们需要定时收集,统计系统MEMORY,CPU, LOCK,QPS, LATENC

2011-01-07 17:38:00 5369

原创 -Weffc++

读书的时候,读Effective C++,当时还打趣的说,世界上的C++程序员分为两种,看过Effective C++的,和没有看过的。最近才注意到,gcc的 -Weffc++编译选项能警告我们,如果代码没有遵循Effective C++的编码规范。 最近我们就发现一个: struct uncopyable {        uncopyable() {} private:        uncopyable(uncopyable const&); }; struct A

2011-01-07 17:34:00 1997 1

原创 TCP Echo Server(select)

<br />到现在,我Unix,数据库的扫盲基本完成了,就差网络这一块了。从今天开始网络扫盲。上周五开始看HTTPD的实现,我们的httpd是AA(AA是我们SBE的元老之一)开发的,只要是AA开发的东西,学习一遍都很有收获。因为AA是一位非常优秀的架构师,而且自己写过很多代码。<br />上周五开林和徐辰已经跟我讲过一篇大概的流程了,可我直接看代码还是有点吃力。于是我下载了<Unix Network Programming– Volume1: The Sockets Networking API>,

2011-01-07 17:24:00 1296

原创 Perl学习笔记–Matching Principles

<br />Perl就像一把瑞士军刀,临战时用起来很方便。特别在文本处理的时候,比如在大型系统中追踪问题常常以来于系统日志,我们有很多日志,access_log或者err_log或者deploy_log。今天我一边看剧场版的名侦探柯南,一边看了一下Perl的正则表达式匹配的文档,写点笔记,也算这个周末没有完全堕落啊。<br />先看一个小例子:<br />"abcde"=~/(abd|abc)(df|d|de)/;意思是匹配的部分有两部分(two groups)组成,第一部分(group)有两种可能(a

2011-01-07 17:22:00 635

原创 Perl学习笔记–Building a RegExp

<br />今天看了一个设计文档,是关于怎么设计一个数据库表来模拟配置环境的,觉得设计的挺好的,估计能和数据库原理那本书对上。看了一天,头有点大,回家前写篇Perl学习笔记吧,就当翻译作业好了。Todd在公司Wiki上建了一个Page,里面有他写的一些很实用的脚本,以后再学。<br /> <br />目的:匹配数字(Numeric),可以是整型,可以是浮点,可以是科学计数,有可能带正负号。<br />我先摘录一下整体思路,这个思路不限于匹配数字,这是一个构建正则 表达式的通用思路:详细的表述需求(Spe

2011-01-07 17:21:00 542

原创 Perl学习笔记 — 书到用时方恨少

Posted on四月 11, 2008byarrowpig1979<br />现在是晚上10点,我还在单位里面,为什么会这么晚呢,因为自己太弱了!!4月10号凌晨一台机器Machine Restart,祸不单行,重启以后由于NTP服务也down 掉了,搞得系统时间比正确时间快了1个小时。由于我们在这台机器上面部署的Application运行的时候都依赖于系统时间,搞得应用进程跳过当前时间,不停的试图处理将来的数据。为了恢复这个问题,需要找到系统时间出错前应用进程的所有任务的时间戳,然后从那些时间戳

2011-01-07 17:19:00 513

原创 Perl学习笔记 — Find Rare Item[解答篇]

Posted on九月 28, 2008byarrowpig1979<br />记得很久很久以前发了一个帖子,出了一道题目,当时我花了好几十行代码才完成的工作,Todd用2行代码就完成了,今天来总结一下。题目的需求是找出一个Category里面最特别的物品。我们的做法是把一个Category里面所有的物品的标题都打印出来: <br />算法描述:统计所有的单词的出现频率。比如watch:30次,ring:20次,book:15次,blue:6次 给每一件物品打分,score=SUM(Freq. of

2011-01-07 17:17:00 787

原创 Perlrun 学习笔记[简介]

<br />通常我们运行perl的方式是写一个perl脚本,然后运行(比如perl perlscriptfilename.pl)。但是很多情况下,我们希望更加快捷的方式,把perl脚本写在命令行里面直接运行。这种做法在我们的日常工作中常常碰到。举一个实际的例子,在production的机器上只安装了vi,vi有一个缺陷,如果文件中有的行特别长,vi就不能正常工作。现在我们要修改一个配置,把arrowpig=smart改成arrowpig=fool<br />perl -pi -e ‘s/arrowpig

2011-01-07 17:14:00 824

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除