自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

过滤字符的性能调优?挤一挤还是有的

/*  *author: ahuaxuan(张荣华)  *date: 2010-05-28  */  起因       前一段时间和其他系统集成, 另外一个系统对某个参数有一个限制,需要将字符串中的特殊字符过滤掉, 由于需要过滤的字符是对方定义的, 所以对方直接把他们系统...

2010-05-29 05:54:05 173

内存充裕下的OOM (二), StringBuilder和均摊分析

/*  *author: ahuaxuan  *date: 2010-05-14  */介绍: 在前面的一篇文章中http://ahuaxuan.iteye.com/blog/662629, ahuaxuan遇到了一个在内存相对充裕的情况下发生OOM的场景,具体的文章见: 然后时隔不久,该问题再次出现,但是出现在不同的场景下,现象有非常雷同之处.但是这次更离谱:...

2010-05-19 01:37:15 333

内存充裕下的OOM (一) 令人惊叹的rootcause

/*@author: ahuaxuan@date: 2010-4-30/在内存充裕的情况下的OOM 理解本文的前提是理解JVM的内存模型:包括perm, old, young(eden, from(s0), to(s1)), 然后理解young中的垃圾搜集算法(拷贝算法,尤其是eden, from(s0), to(s1)它们分别扮演什...

2010-05-10 04:05:18 253

从问题看本质: 研究TCP close_wait的内幕

/* * @author: ahuaxuan * @date: 2010-4-30 */ 最近遇到的一个关于socket.close的问题,在某个应用服务器出现的状况(执行netstat -np | grep tcp): tcp        0      0 10.224.122.16:50158         10.224.112.58:8788          C...

2010-05-01 14:11:45 140

RPC or noRPC,这是个问题

/**   * author:ahuaxuan   * date:2010-04-21   */修改,避免引起混淆,特别说明本文中的非RPC方式其本质也是RPC,只是非RPC由服务器端定义好序列化规则和协议,然后让调用者自己去实现,而本文中的RPC指服务提供者提供Jar,客户端可以直接调用接口.不需要考虑到网络,协议,序列化算法. 很多公司都会遇到应用集成的一些问题,其中一...

2010-04-01 08:31:34 219

深入浅出cassandra 4 数据一致性问题概述

/**    *author:ahuaxuan(张荣华)   *date: 2010-2-28   */在上一篇文章,ahuaxuan和大家简单的熟悉了cassandra的集群环境的部署,接下来要做的就是搞清除这种部署模型的的理论依据.理论依据一,数据一致性和W R N首先简单解释一下数据一致性(这个问题是老生常谈的问题,任何一本应用开发的书上都有它的描述)所谓的一致性...

2010-03-20 10:00:42 231

原创 深入浅出cassandra 3 例子背后的模型

/**   * author: ahuaxuan(张荣华)   * date 2010-2-25   */深入浅出cassandra 3 例子背后的模型在上一篇文章中,ahuaxuan和大家一起写了一个cassandra的insert和get的例子。从这个例子中我们也得知了操作cassandra的最基本流程,除此之...

2010-02-25 19:51:42 204

原创 深入浅出cassandra 2 第一个可以运行的例子

 /**   * author: ahuaxuan(张荣华)   * date 2010-2-25   */深入浅出cassandra 2 第一个可以运行的例子在上一篇文章中,我们成功的建立了一个可以cassandra的实例,同时也让它成功的运行起来,下面的工作就是让我们来简单的操作一下这个号称分布式的号称第二代的数据库系统。 本文主要关注两个部分,1. 怎...

2010-02-25 19:49:09 120

深入浅出cassandra 1 安装

 /**   * author: ahuaxuan(张荣华)   * date 2010-2-25   */深入浅出cassandra 1 安装cassandra是什么,套用官方介绍,cassandra是高可扩展性的第二代分布式数据库。背后的理论依据是amazon的dynamo和google的bigtable. 所以要完全的,深入的理解cassandra,那我们...

2010-02-25 19:47:16 93

深入浅出jcr之16 该死的RMI,我们需要HTTP+简单RPC协议

        从这篇文章开始,ahuaxuan不再详细描述jackrabbit中的实现原理,而是把注意力放在jackrabbit中做的不好的地方,不敢说是批判,但是有些技术上的决策错误还是值得拿出来讨论讨论的。其中一个就是jackrabbit的客户端和jackrabbit server的通信方式--RMI。围绕这个问题我们可以展开一系列的讨论。本文分为几个部分1 为什么要抛弃RM...

2009-12-12 13:22:21 132

工作流引擎在视频网站架构中的应用

如果对工作流引擎没有了解过的同学可以先看前一篇文章:土制状态机在工作流引擎中的应用[url]http://ahuaxuan.iteye.com/blog/505124[/url]/** * @author: ahuaxuan(张荣华) * @date: 2009-11-23 */[size=medium] 在一个视频网站中,用户从上传一个视频,一直到...

2009-11-23 22:35:15 99

土制状态机在工作流引擎中的应用

/** * @author : ahuaxuan * @date 2009-10-27 */很早之前(应该是一年以前),ahuaxuan在用dfa实现文字过滤一文中使用确定有限自动机实现了词典的高速查询。其实在当时那段时间里,由于对状态机有了一定的研究,ahuaxuan也触类旁通的理解了工作流引擎的核心体制。于是当时就用python写了一个小巧的工作流引擎的示例,在这之前...

2009-10-27 19:20:56 128

原创 诫子书+朱子家训

诫子书:夫君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。夫学须静也,才须学也。非学无以广才,非志无以成学。韬慢则不能励精,险躁则不能治性。年与时驰,意与岁去,遂成枯落,多不接世。悲守穷庐,将复何及?    朱子家训:黎明即起,洒扫庭除,要内外整洁。既昏便息,关锁门户,必亲自检...

2009-10-23 14:04:02 517

深入浅出jackrabbit之十五 文档提取优化2.docx

/** *author:ahuaxuan *2009-10-22*/ 在上一篇文章中,我们讲到为什么要优化jackrabbit中的文档提取,同时也分析了进程模型和线程模型在分布式文档提取中的优劣。 在本文中,ahuaxuan将会介绍分布式文档提取的架构模型,以及它在整个非结构化数据库中的地位。 第二部分ahuaxuan将介绍几个用来提取文本的工具,然后将这些工具用在...

2009-10-22 18:38:24 127

深入浅出jackrabbit之十四 分布式文档提取

/** *author:ahuaxuan *2009-09-24*/前言:本来针对jackrabbit这一系列的文章其实都是有顺序的,比如先讲索引的创建,然后讲索引的查询,等等,但是无奈总是有些横生的枝节,这些横生的枝节又让ahuaxuan有了一些新的想法。所以只能将这篇文章写到后面来了。 切入正题,今天这篇文章其实是对前面文本提取的一个补充。前面讲到文本提取的...

2009-09-24 12:20:03 205

深入浅出jackrabbit之十三 查询之AST和QT

简介:在前面的文章中,ahuaxuan已经指出jackrabbit查询的主体流程,主体流程只能帮助大家稍微了解一下jackrabbit的query module,要深入理解还得深入探索主体流程中的每一步。在这篇文章中ahuaxuan将着重描述AST的生成和QT(querynode tree)的生成。回顾上一篇文章,我们可以知道jackrabbit中的查询手段之一:xpath。下面我们还...

2009-09-10 10:12:52 181

深入浅出jcr之十二 key-value存储系统

作者:ahuaxuan 在写文章方面,惰性心理无时无刻不折磨着我,文章的标题已经列在那里很长时间,可是我就是不愿意打开,不愿意把心中所想描绘出来。类似的情况可能也折磨着很多的其他同学。虽然jackrabbit是一个小众的框架,看的人和想看的人非常的少,但是其中确实包含了很多值得我们学习和研究的技术和实现,当然也有很多不足,需要我们去改进。所以我强迫自己继续写下去。 ...

2009-08-26 09:31:06 149

深入浅出jcr之十一 jackrabbit改进要点

作者,ahuaxuan在看过前面的一系列文章之后,对于jackrabbit,我们脑海里应已经有了一幅比较清晰的图。接下来我们要思考的是如何提高搜索模块的性能。其中涉及到如何正确的使用lucene,如何让搜索模块专注的做它应该做的事情。我们先谈谈第一个话题:专注。 为什么先要谈专注呢?因为它最重要了,一个功能要能够高效的完成任务,那么它应该只做自己擅长的事情。否则就会引来别人怀疑...

2009-08-18 18:22:05 238

深入浅出jcr之十 redolog 和 recovery.docx

作者:ahuaxuan在前面的文章中,我们对jackrabbit做索引的流程有了较为深刻的认识,这个过程中包含了很多的特性,比如多线程作内存索引啊,文件系统的目录算法啊,文本提取的策略等等,在本文中,ahuaxuan将会继续描述jackrabbit在索引过程中的另一个特性。Redolog是jackrabbit中保证数据一致性的又一个特色。 本文将会阐述以下几点内容:1. ...

2009-08-18 18:14:34 96

信p2p者,得永生(一)

开篇    此文章的题目来自于当下的两哥之争,本意有调侃之意,但是用在本文,却无此意,我以十分真诚并且后知后觉的态度认定,p2p是未来的主要计算模型。尤其是在视频音频领域,但是将来,p2p一定会拓展到普通的计算上。    要解释清楚这个问题,我们得从当下最流行的音频视频p2p软件聊起。先来说说较为简单的一个音频p2p软件,酷狗。    酷狗的原型应该是来自于一个国外的公司,名字我已忘记...

2009-08-11 10:44:55 116

深入浅出 jackrabbit 九 索引合并(下)

在上文中,ahuaxuan讲到了索引创建的主体流程,但是索引合并其实还有一个较为重要的细节ahuaxuan没有详细阐述。本文中,ahuaxuan将会详细阐述这个问题         本文分成两部分内容         1  考虑应用拓机时的数据正确性问题。         2  jackrabbit是如何解决这些问题的。          而这个细节将会直接影响我们对query...

2009-07-22 14:16:34 111

深入浅出 jackrabbit 八 索引合并(上)

我们从文本提取的逻辑中走出来,回到主体流程。在前面的文章中,我们可以看到一次索引创建的操作,可能会产生多个persistentindex对象,而这些对象其实代表着一个索引目录。随着创建索引的次数越来越多,那么索引目录也在增多,但是索引目录中的数据却不是很多,所以我们需要把多个目录合并,其实也就是索引的合并。 执行这个操作的类是IndexMerger,看其定义...

2009-07-21 17:32:58 117

深入浅出 jackrabbit 七 文本提取(下)

接上文,说到文本提取,在上一篇文章中,我们是管中窥豹,并没有把握住整体的流程,那么这篇文章就是用来弥补上一篇文章的不足的。         我们已经明确的知道,有一个队列,它的名字叫indexingqueue,它中存放的是待提取的document,下面我们就来看看它的生产者是谁: 1.       生产者我们在前面的文章中提到过,VolatileIndex(内存数据)的pendin...

2009-07-21 17:29:27 123

深入浅出 jackrabbit 六 文本提取(上)

用lucene作过索引的同学一定对文本提取不会陌生,但凡有binary需要作索引的地方,那就离不开文本的提取,而jackrabbit是可以存储二进制数据的,而这些二进制数据中包含的文本也是需要被搜索到的,所以jackrabbit里建索引的过程中自然离不开文本提取。那么看到本文的标题,有经验的同学一定会问,前面都已经讲过索引的提交了,为什么到现在才讲文本提取呢。要回答这个问题,我们必须来回顾...

2009-07-21 17:27:01 154

深入浅出 jackrabbit 之五 索引提交(下)

接上文,在上面一篇文章中,我们谈到了update中的Delete和Add下面我们来谈谈第三个大问题,就是flush的逻辑3 什么是flush大家可能已经沉浸于AddNode逻辑而不能自拔了,清醒一点,我们再次回到MultiIndex#update看看,有这么一段代码:if (flush) {                flush();            }不...

2009-07-14 17:53:15 80

深入浅出 jackrabbit 之四 索引提交(上)

在上上篇文章中,我们了解了创建索引的一般流程,在上篇文章中,我们也已经明确的知道,一个node的哪些信息是需要加入到索引中去的,也就是jackrabbit是如何来创建document的。那么接下来我们就是要了解jackrabbit是如何把这些document加入到索引文件中去的。接下来我们需要回顾一下索引概览中的最后几句话:那么代码的主要逻辑在哪里呢?在DeleteNode和AddNo...

2009-07-14 09:10:45 149

深入浅出 jackrabbit 3 创建 document

/***作者:ahuaxuan 张荣华*日期:2009-07-01**/ 在上一篇文章中,ahuaxuan描述了jackrabbit中创建index的主体流程,同时也曾提到,在创建流程中有一个方法非常重要,它影响着整个query体系,这个方法便是createDocument。在本文中,ahuaxuan将和大家一起来探讨如何根据一个node来创建对应的document。 ...

2009-07-01 13:03:16 143

深入浅出 jackrabbit 2 索引概览

任何一个数据库都离不开一个技术----索引技术,jackrabbit作为内容仓库的开源实现亦不能例外,从前面的文章中我们已经清楚的知道jackrabbit使用lucene来进行索引任务和查询任务。而查询正是基于索引,所以在本文中,ahuaxuan将和大家一起来学习jackrabbit中建立索引的方法。 事实上,jackrabbit中建立索引的流程是比较冗长和复杂的,如同query一样,在本...

2009-06-30 08:51:17 235

深入浅出 jackrabbit 十 查询概览

/** *author: ahuaxuan *date: 2009-06-20 */查询进阶在第一篇文章的例子中,我们看到jackrabbit中存放数据的流程还是比较清晰的,而且我们也基本确定了其中数据的存储方式,一颗m叉树。正如db一样,insert都是[color=red]看上去[/color]相对简单的,select相对总是没有这么简单的,如同关系数据库一样,ja...

2009-06-20 10:29:54 405

原创 改变体质,一起碱性

有关癌症--看完再寄给别人-功德无量三十多年前有一位服务于公卖局台北啤酒厂的张先生,参加该啤酒厂选派技术人员到国外深造的考试,以优异的成绩及格。但在出国前经某公立医院体检发现,罹患有像孩拳头大小的肺部肿瘤,因而不能出国。 张先生失望之余,一直怀疑诊断有误;于是再到另一家医院检查,结果还是证实原来的诊断并无错误。当时年轻力壮的张先生得到这样的绝症,在人生绝望之余,多次打电话给当时任职台东县政...

2009-06-19 10:19:26 76

深入浅出 jackrabbit 1

/** * author:ahuaxuan(张荣华) * date:2009-05-19 */ Jcr : Java Content Repository --- java 内容仓库。话说很久以前,江湖上出了一个叫作jcr的兵器,这个东西呢确实有那么一点点的用处,于是他们就在小众的圈子里开始流行,于是各门各派都开发出来属于自己的jcr,但是后来发现,问题...

2009-05-19 18:31:22 253

OpenFlashChart2之恶心文档

N久没有做界面相关的项目了,最近一个核心项目中正好有用到几个图形报表的界面,原本一直使用jfreechar,但是这种服务器生成图片,然后浏览器再请求图片,并显示,这种做法一是加大服务器压力,而是加大网络传输的带宽,降低了用户体验,比较好的方式是服务器提供元数据,客户端根据元数据生成对应的图形报表。显然,后一种模式既能有效利用客户机的资源,也减少了带宽,降低了服务器压力。提高了用户体验,唯一的不足是...

2009-03-28 23:16:05 122

使用netbeans来开发django应用

周六,朋友介绍我使用netbeans来开发django应用,于是抱着尝试一下的心理,试了一下netbeans6.5。下面简略的记录下我的小小感受。第一步,首先是下载python版本的netbeans6.5,由于我使用的是ubuntu8.04,所以下载地址为:第二步,安装netbeans,这个没有什么好说的。安装完成之后,启动netbeans会看到工程里面的中文都变成了方框。goog...

2009-03-22 12:03:53 161

论缓存之第二<近与快>

[size=small]/** *作者:ahuaxuan *日期:2009-03-13 */近水楼台先得月,向阳花木易为春--------苏麟缓存的作用在第一论[url]http://www.iteye.com/topic/345693[/url]中已有部分阐述,下面ahuaxuan和大家一起来学习一下缓存得另外一个重要的规则,近和快.在我们打开浏览器,决定...

2009-03-13 14:51:17 82

论缓存之第一<道>

/** * 作者:ahuaxuan * 日期:2009-03-08 */[size=medium]看一粒沙中的世界, 一朵野花中的天堂。 把无限握于掌中, 把永恒握于瞬间。——威廉• 布莱克开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我们在...

2009-03-09 10:52:45 110

使用DFA实现文字过滤

/** * author:ahuaxuan(张荣华) * date:2009-02-21 */Dfa和文字过滤文字过滤是一般大型网站必不可少的一个功能,而且很多文字类网站更是需要。那么如何设计一个高效的文字过滤系统就是非常重要的了。文字过滤需求简要描述:判断集合A中哪些子集属于集合B,拿javaeye来说,如果用户发表一篇文章(集合A),我们需要判断这...

2009-02-21 23:25:44 173

闲来无聊,用python抓取天气信息,简单就是美啊

/*** 作者:张荣华* 日期:2009-02-26**/ 晚上闲来无聊,于是用python写了一个抓取天气信息的脚本,您要是不想去网站上看天气,每天开机的时候运行一下脚本就完事了同学们请看[code="python"]#encoding:UTF-8'''@author: ahuaxuan (张荣华)@date: 2009-02-06'''i...

2009-02-06 11:39:57 212

Master-Slave,Spring,Hibernate,故事曲折离奇,情结跌宕起伏

/***作者:张荣华*日期:2008-02-05**/ 前言,这篇文章写于08年12月份,现在发布出来望同行点评------------------------------------------------------------本文将要阐述或者讨论的是spring+hibernate和mysql的master-slave模式之间的一些不得不说的故事....

2009-02-05 13:49:56 147

弃成见,反省,并重新认识struts.i18n.encoding

[size=medium]之前和大家讨论了struts2.0中struts.i18n.encoding参数的作用,但是由于自己的不严谨的态度使自己得出了片面得结论,在此表示道歉.当然我们程序员的目的只有一个,就是寻找真相.所以下面我会和大家一起来重新理解struts.i18n.encoding参数的含义.下面我从一个例子来重新审视这个参数的作用.首先我们来做一个实验,看看改参数是否用在了请...

2008-12-24 15:42:34 102

在top监视窗口显示Django当前正在执行的请求URL

在top监视窗口显示Django当前正在执行的请求URL之前robbin大哥贴出了一个显示rails进程正在处理url的小技巧(robbin大哥的原文见:[url]http://www.iteye.com/topic/283992[/url]),真的是非常非常的有用,也非常非常的眩,太酷了,看了那个贴之后,就想这么酷的功能,这么好的东西,django里没有的话也太可惜了。于...

2008-12-03 23:06:10 89

空空如也

空空如也

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

TA关注的人

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