shutdown hook in java programming language

八月 13th, 2011 484 次阅读 0 条评论
今天加入了JavaCoding 创建的“高级java讨论群” JavaCoding发了这样一条 ”大部分Java程序员在做独立程序的时候, 不做Shutdown Hook. 导致一些程序再关闭后, 出现数据处理不正确的情况, 我遇见很多次了.“ (点击这里)

发现原来加shutdown hook是这么的重要

虚拟机(VM)关闭时,它会调用线程的start()方法

如果在你的程序关闭时,需要做一些清除工作、释放资源等等,那么这时shutdown hook会非常有用 (..More)
分类: Java 标签: JVM  shutdown hook 

[调优] 压力测试软件 Siege 的正确用法

八月 2nd, 2011 496 次阅读 0 条评论
近来想研究一下常见的压力测试软件,对比一下,是选择其中哪一个最合适使用,从压力测试的准确性和功能二方面对比。近来就开始放狗来查相关的资料。

在使用 Siege 时,参加网上的文件,包括 东东 的,发现大家好象对 Siege 有错误的认识。大家使用 Siege 打出的压力,每秒的处理数量和真实的处理数据分别大太。。。还有人解释讲,默认 Apache 设置之关有关,所以不能打到很高的压力,只能打出每秒处理 200 多个请求。

我刚开始测试时,也发现这个问题。。。很奇怪。因为我拿了几种压力测试软件来对比,别的压力测试软件,可以打到 6k/s 的量,发现只有这个 Siege 打的最慢,才 200/s.这个当然不正常.就认真看了看 Siege 的参数。 (..More)
分类: Other 标签: siege  压力测试 

海量数据面试题整理 二

七月 22nd, 2011 436 次阅读 0 条评论
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。
s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。
s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为)。这样处理后,所有可能相同的url都在对应的小文件()中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。
s 求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。 (..More)
分类: 算法 标签: 面试  海量数据 

海量数据面试题整理

七月 22nd, 2011 907 次阅读 0 条评论
1、海量日志数据,提取出某日访问百度次数最多的那个IP。
  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。
  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。 (..More)
分类: 算法 标签: 海量数据  面试 

HBase与BigTable的比较

七月 3rd, 2011 492 次阅读 0 条评论
HBase是Google的BigTable架构的一个开源实现。但是我个人觉得,要做到充分了解下面两点还是有点困难的:

一 HBase涵盖了BigTable规范的哪些部分?

二 HBase与BigTable仍然有哪些区别?

下面我将对这两个系统做些比较。

在做比较之前,我要指出一个事实:HBase是非常接近BigTable论文描述的东西。撇开一些细微的不同,比如HBase 0.20使用ZooKeeper做它的分布式协调服务,HBase已经基本实现了BigTable所有的功能,所以我下面的篇幅重点落在它们细微的区别上,当然也可以说是HBase小组正在努力改进的地方上。 (..More)
分类: NoSQL 标签: NoSQL  BigTable  HBase 

几张数据库族谱

六月 21st, 2011 526 次阅读 0 条评论
The 451 Group 是一家独立的技术与产业分析公司,致力于为IT产业的供应商,服务提供商及投资者提供新技术的分析服务。下面是最近451group几篇文章的配图,文章主要就当下NoSQL、以及刚刚提出的newSQL概念进行了阐述和分析,最后归结在下面几张图上,内容很丰富。
下面是一个NoSQL族谱
然后是NoSQL、newSQL概念下的一些产品划分
下面是从关系型和非关系型两种类型上划分 (..More)
分类: NoSQL 标签: NewSQL  NoSQL 

NoSQL的NewSQL与超越

六月 21st, 2011 783 次阅读 1 条评论
451集团上周公布的详细说明在信息管理领域的发展设置选项报告的结论。在这个过程中,他们还澄清了他们的“NewSQL“的含义。
“NewSQL“是我们为各种新的可扩展性/高性能的SQL数据库供应商的缩写。 [... NewSQL厂商]有共同的新的关系数据库产品,旨在使关系模型的分布式体系结构的好处,或改善了关系数据库的性能水平的范围内,可扩展性服务的发展已不再是一个必要性。 (..More)
分类: NoSQL 标签: NewSQL  NoSQL 

The NewSQL Movement

六月 21st, 2011 568 次阅读 0 条评论
This post is part of our ReadWriteCloud channel, which is dedicated to covering virtualization and cloud computing.

The channel is sponsored by Intel and VMware.

Read the white paper about how Intel Xeon processors help organizations get unprecedented levels of performance. (..More)
分类: NoSQL 标签: NewSQL  NoSQL 

Paxos算法(维基百科)

六月 19th, 2011 345 次阅读 0 条评论
Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。因此从20世纪80年代起对于一致性算法的研究就没有停止过。节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。Paxos 算法就是一种基于消息传递模型的一致性算法。 (..More)
分类: 算法 分布式 标签: Paxos  分布式 

Ten things I didn’t know about MongoDB

六月 11th, 2011 490 次阅读 0 条评论
1.MongoDB有一个大的全局锁,这使得一个MongoDB Daemon只能同时进行一个写操作,即使是对不同collection的操作,也只得排队。

2.MongoDB并没有一个基于统计的查询优化器,对查询并发的执行多个不同的计划,在最快的那个返回后就终止其它任务,并将这个最快的计划指导查询。当然不是每次查询都执行多个不同计划,这个会隔一段时间执行一次。

3.Mongos只有在你使用Sharding时才需要,在不用Sharding时,实际上是客户端来实现负载均衡的。

4.MongoDB不仅仅只有Replica Sets,还有传统的Master-Slave模式。(实际上你想配置成Master-Master也完全可以)

5.MongoDB的同步机器支持“slave-delay”参数,这个参数指定Slave机器延迟Master多长时间。这个参数用来做准备非常合适。 (..More)
分类: NoSQL 标签: NoSQL  MongoDB 

Micolog HighSyntax Plugin与iNove不兼容问题

六月 11th, 2011 510 次阅读 0 条评论
HighSyntax是Micolog版本自带的代码高亮插件,而且效果也很不错。

在iNove模板上发布代码时,总是不能显示高亮。

关于这个问题,网上有解决办法,http://www.dzqy.tk/2011/02/micolog-highsyntax-inove.html

按网上的方法,首先在head标签和footer标签的开始和结束处对应添加 {%mf head%} 、 {%endmf%} 与 {%mf footer%} 、 {%endmf%} 后,上传布置。添加代码后,发现只有灰色背景,并没有实现真正的高亮。切换到默认主题,发现竟然可以高亮显示。

于是判断是iNove主题本身的原因。比较默认主题与iNove主题的base.html后发现,原来两个主题间又一个差别。 (..More)
分类: 日记 标签: iNove  HighSyntax 

列式数据库的简单分析

六月 11th, 2011 1626 次阅读 0 条评论
这些天看数据仓库的内容,发现一个新内容——列式存储。曾经有想过把数据库行列转置作成索引,不过没有深想,没想到列式数据库已经开始发展起来了。

首先看下WIKI上对列式数据库的解释:

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量的数据处理,常用于联机事务型数据处理。

数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储 (..More)
分类: 数据库 标签: DW  列式存储  行式存储 

NoSQL知识框图

六月 7th, 2011 1197 次阅读 1 条评论
NoSQL知识框图

(..More)
分类: NoSQL 标签: NoSQL 

《MySQL技术内幕:InnoDB存储引擎》有感

三月 20th, 2011 632 次阅读 4 条评论
在这之前,我买过有关Oracle的一本书《Oracle 9i & 10g编程艺术》。但是对于我而言,理解这本书有点困难。所以看了这本书的一部分后,就没有再看。

基于现实原因,现在用MySQL的越来越多,一直以来想好好研究下。图书馆的书又不怎么给力,便买了这本书《MySQL技术内幕:InnoDB存储引擎》。现在有种习惯,买书之前必上豆瓣上看下评价,觉得还不错的话,就会果断下手。

前面讲了一大堆,现在来说说这本书。本书作者是姜承尧,从书中可知他是读过MySQL源码的人。引用本书中的一句话“本书完整地讲解了InnoDB存储引擎中最重要的一些内容,即InnoDB的体系结构和工作原理,并结合InnoDB的源代码讲解了它的实现机制。” (..More)
分类: 数据库 读书 标签: MySQL  技术内幕  InnoDB 

Redis源码中关于C头文件的学习

三月 8th, 2011 970 次阅读 4 条评论
刚刚在看Redis的源码,其中有很多C的头文件,以前从来没用过。故找了篇文章,了解了解。
先摘录如下:
aio.h 异步I/O
assert.h 验证程序断言
complex 复数类
complex.h 复数处理
cpio.h cpio归档值
ctype.h 字符类型
dirent.h 目录项,opendir(),closedir(),readdir(),readdir64() (..More)
分类: Linux NoSQL 标签: C  Linux  头文件  Redis  源码