1 iteye_14085

尚未进行身份认证

暂无相关描述

等级
TA的排名 250w+

[mysql driver]query timeout实现

之前一直对jdbc的querytimeout有疑惑,看了下mysql的实现,大概了解了。关于jdbc的各种超时时间关系见这个文章http://www.importnew.com/2466.html,这里简单来看一下mysql的querytimeout实现,也是比较简单。querytimeout就是在发起请求前,启动一个定时任务,触发之后抛出异常。核心代码再执行sql过程中pro...

2013-08-29 16:38:05

[Jboss数据源二]连接获取

从连接的视角来看类图1.WrappedConnection直接实现了Connection接口,对外的包装类2.BaseWrapperManagedConnection,包装了底层的物理连接,实现了连接获取,销毁等方法,psCache也是这里实现3.BaseConnectionEventListener,和BaseWrapperManagedConnection互相引用,数据源内...

2013-08-27 16:26:05

[Jboss数据源一]初始化

先来看看jboss数据源的整体类图。 1.入口类LocalTxDataSource,负责对外参数设置和初始化框架2.获取数据库连接的入口类WrapperDataSource,其实现了DataSource接口3.ManagedConnectionFactory接口用来获取真实连接和创建WrapperDataSource4.LocalManagedConnectionFacto...

2013-08-13 15:10:52

天气数据源

之前在做一个天气数据相关的东东,统计了一些天气的数据源一.中央气象局api http://m.weather.com.cn/data/101010100.html城市code http://gxz1989611.iteye.com/blog/1622625 2586个二.yahooapi http://developer.yahoo.com/weather/ ...

2013-05-06 11:04:53

[ZooKeeper]连接中断,watch恢复,心跳和客户端超时

前一篇文章分析了server端主动超时session的情况,接下来看一下client和server网络暂时中断的情况。1.和server主动关闭连接一样,client抛出EndOfStreamException异常,此时客户端状态还是CONNECTED2.SendThread处理异常,清理连接,将当前所有请求置为失败,错误码是CONNECTIONLOSS3.发送Disconnecte...

2013-04-08 23:32:37

[ZooKeeper]Client Session失效

前面一篇文章提到zookeeperserver端主动发现session超时并清理session信息,关闭连接,接下来看看client端如何试图恢复session的。关于client端代码分析见前文http://iwinit.iteye.com/blog/1754611。由于session被清理,此时server端已经没有session信息了。而由于连接被关闭,client会抛出异常if...

2013-04-08 13:37:03

[ZooKeeper]分布式Session超时

前面分析知道session超时由leader负责,假设某个session长时间没心跳超时,SessionTrackImpl入口 if(set!=null){for(SessionImpls:set.sessions){setSessionClosing(s.sessionId);...

2013-04-07 20:04:00

[ZooKeeper]分布式Session创建

前面几篇zookeeper的文章简单分析了执行流程,接下来打算从横向来分析一下zk的一些特性,先从session开始。这一篇http://iwinit.iteye.com/blog/1754611分析了单机情况下session建立,在集群环境下建立session不太一样,是一个proposal的过程,先假设集群由leader,followerA,followerB组成,我们的client去连f...

2013-04-07 18:11:51

[metaq]Broker

Broker是metaq的核心组件,负责消息的物理存储,分区指定等。例子配置文件[system]#broker编号,集群唯一brokerId=0#这个broker指定的分区数numPartitions=2#nioportserverPort=8123#异步刷盘策略,为0表示同步刷盘unflushThreshold=0#同上,刷盘间隔unflushIn...

2013-03-26 17:38:17

[HBase]abort引发的死锁

今天在HBase群里碰到一个客户端死锁问题,堆栈如下Javastackinformationforthethreadslistedabove:==================================================="KVQueueService-Handler-2-EventThread":atorg.apache.h...

2013-03-26 14:10:09

[storm]消息事务算法的一个理解

https://github.com/nathanmarz/storm/wiki/Guaranteeing-message-processing这篇文章介绍了storm如何处理消息事务,提到了用一个ackvalue代表一个tuple的生命周期。其算法是“Itissimplythexorofalltupleidsthathavebeencreatedand/or...

2013-03-25 20:28:14

[metaq]Producer

Procuder相对consumer来说比较简单,根据topic从zk拿broker列表,注意这里只拿master类型的broker,slave型的broker和master拥有同样的brokerid,主要为了HA用。roubd-robin取一个partition,发送消息。 1.MetaMessageSessionFactory初始化zookeeper连接,创建MessageProd...

2013-03-25 20:10:30

[storm]环境安装问题

集群安装参考https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-clusterexample工程 https://github.com/nathanmarz/storm-starter问题:1.python2.5找不到,默认安装了2.7,源代码安装2.5解决2.storm-starter工程编译找不到jar,t...

2013-03-22 18:48:38

[metaq]Consumer

Metaq是一个类是kafka的消息系统,开源地址https://github.com/killme2008/Metamorphosis。基于Pull的消息系统,consumer端保持了很多逻辑,比如当前拉取消息的offset,loadbalance等,使用zookeeper作为coordination。简单类图核心类ZKLoadRebalanceListener,负责集群感知,...

2013-03-22 16:01:18

[HBase]Get

Get主要流程:1.拼装Scanner2.调用scanner的next方法取记录3.返回result scanner入口是RegionScanner,代表扫描一个region,其实现RegionScannerImpl有一个属性KeyValueHeap,这个KeyValueHeap又包装了多个StoreScanner。每个StoreScanner对应一个columnfami...

2013-03-19 15:42:37

[HBase]KeyValue and HFile create

HBaseput数据时会先将数据写入内存,其内存结构是一个ConcurrentSkipListMap,其Comparator是KVComparator。keyvalue对象结构KVComparator的KeyValue对象比较过程1.使用KeyComparator比较rowkey,结果是rowkey字节序从小到大2.如果rowkey一样,则按columnfamily比较...

2013-03-13 14:00:12

[HBase]记一个state异常

昨天联调的时候发现一个问题,请求发送后,页面上一直不返回数据,好像一直在waiting。用stack看了下,第一个线程在等待hbaseRPC请求返回数据"http-bio-8080-exec-5"daemonprio=10tid=0x00002aaab3661000nid=0x2bb6inObject.wait()[0x0000000045258000]java....

2013-03-13 11:31:39

[HBase]Flush

Flush过程,对应MemStoreFlusher1.是否需要做globalflush,有则取当前rs最大的region进行flush if(isAboveLowWaterMark()){.... //获取memstore最大的region进行flushif(!flushOneForGlobalPressure())...

2013-03-11 11:24:52

[HBase]Write Path

HBase的批量put操作主要步骤1.同个region的put视为同一批操作2.对批量操作按rowkey进行字节排序Collections.sort(actionsForRegion); 3.检查regionserver的全局内存是否超过阀值,如超过则唤醒flush线程进行flush操作 publicvoidreclaimMemStoreMemory(){ ...

2013-03-06 17:40:28

[HBase]Region assignment

 接上文,我们创建表t1,列族c1,hbase.root目录为/new。当创建空表时,系统会自动生成一个空region,我们以这个region分配过程看下Region是如何在HMaster和Regionserver(以下简称rs)中创建的。大致过程如下:1.HMaster指定分配计划,一个region只会分配给一个rs,多个rs均匀分配2.多个rs并发执行assiagnment操...

2013-02-28 17:05:57
勋章 我的勋章
    暂无奖章