- 浏览: 66882 次
- 性别:
- 来自: 上海
最新评论
-
lirong1978:
好长的文章
海量数据处理汇总
文章列表
http://www.dbanotes.net/arch/facebook_scaling_out.html
大量的 MySQL + Memcached 服务器,布署简示:
California (主 Write/Read)............. Virginia (Read Only)
主数据中心在 California ,远程中心在 Virginia 。这两个中心网络延迟就有 70ms,MySQL 数据复制延迟 ...
- 2009-09-14 14:54
- 浏览 2636
- 评论(0)
在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于锁定状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。
在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中 ...
- 2009-08-03 16:27
- 浏览 1590
- 评论(0)
原文地址:
http://blog.csdn.net/DaiZiLiang/archive/2006/12/06/1432193.aspx
笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以
下几个方面:
一、数据量过大,数据中什么情况都可能存在 ...
- 2009-07-23 17:26
- 浏览 1711
- 评论(1)
package thread;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
impo ...
- 2009-06-03 17:23
- 浏览 1091
- 评论(0)
导读:
Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。
我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。
Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用, Platfr ...
- 2009-04-14 21:33
- 浏览 904
- 评论(0)
http://www.iteye.com/topic/37732?page=1
控制这个程序在同一主机上只能启动一个实例
/**
* 检测系统是否只启动了一个实例
*/
protected void checkSingleInstance() {
try {
srvSocket = new ServerSocket(srvPort); //启动一个ServerSocket,用以控制只启动一个实例
} catch (IOException ex) {
if(ex.getMessage() ...
- 2009-03-31 20:29
- 浏览 1929
- 评论(0)
http://www.blogjava.net/killme2008/archive/2008/01/14/149645.html
最简单的LRU算法实现,就是利用jdk的LinkedHashMap,覆写其中的removeEldestEntry(Map.Entry)方法即可,如下所示:
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.concurrent.locks.Lock;
import java.util.concu ...
- 2009-03-27 11:31
- 浏览 1557
- 评论(0)
http://www.java2000.net/p14873
Semaphore 信号量,就是一个允许实现设置好的令牌。也许有1个,也许有10个或更多。
谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待。
执行完毕,一定要归还(release)令牌,否则令牌会被很快 ...
- 2009-03-21 23:25
- 浏览 1848
- 评论(0)
http://www.javaeedev.com/blog/article.jspx?articleId=ff808081129558b50112bd2ad54b000f
和多数java服务一样,SUN对JNDI也只提供接口,使用JNDI只需要用到JNDI接口而不必关心具体实现:
private static Object jndiLookup() throws Exception {
InitialContext ctx = new InitialContext();
return ctx.lookup("java:comp/env/systemStartTime&q ...
- 2009-03-21 12:05
- 浏览 1232
- 评论(0)
通过把一个套接字通道(SocketChannel)注册到一个选择器(Selector)中,不时调用后者的选择(select)方法就能返回满足的选择键(SelectionKey),键中包含了SOCKET事件信息.
异步套接字对服务器程序来说更具吸引力.一般同步SOCKET服务器的实现都是采用线程池来处理客户请求的,基于请求超时时间和并发线程数目的限制,如果并发处理能力能够达到上千就已经是不错了.异步服务器的能力则至少是它的数倍(有人测试一个简单的ECHO服务程序,说可以达到上万个并发,不知道是否真的能达到).
SocketChannel的读写是通过一个类叫ByteBuffer(java.nio ...
- 2009-03-15 21:26
- 浏览 2144
- 评论(0)
http://www.iteye.com/topic/39694?page=1
class Details {
double getBalance();
double getFixed();
double getVariable();
double getSpendDown();
...
//各种getter以及其他相关的逻辑
}
class Details {
double getBalance();
double getFixed();
double getVariable();
...
- 2009-03-13 10:51
- 浏览 1698
- 评论(0)
http://www.iteye.com/topic/13179
线程运行栈信息的获取
一、问题的引入
我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下:
[运行时间] [当前类名] [方法名]
INFO: [用户信息]
具体例子如Tomcat启动信息:
Jul 9, 2004 11:22:41 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on port 8080
看起来这毫无神奇之处,不就是打印 ...
- 2009-03-11 20:35
- 浏览 801
- 评论(0)
http://www.iteye.com/topic/198175
一个最简单地数据库连接池实现:
public class ConnectionPool {
private static Vector pools;
private final int POOL_MAXSIZE = 25;
/**
* 获取数据库连接
* 如果当前池中有可用连接,则将池中最后一个返回;若没有,则创建一个新的返回
*/
public sy ...
- 2009-03-11 15:02
- 浏览 837
- 评论(0)
http://www.blogjava.net/BlueDavy/archive/2006/11/22/82909.html
需求就是:
调用Oracle EXP命令完成备份,并返回生成的备份文件名,这个备份文件会很快在其他的地方被使用。
采用Runtime.getRuntime().exec我们都知道,需要处理它的InputStream,以避免出现执行的命令输出的信息过多使得进程被堵死.
InputStreamReader isr = new InputStreamReader(process.getInputStream());
Buffered ...
- 2009-03-10 11:28
- 浏览 1547
- 评论(0)
多个volatile操作之间是有序的,compiler和处理器都不能进行乱序
volatile store之前的load/store操作不能乱序到volatile store之后执行
volatile load之后的load/store操作不能乱序到volatile load之前执行
- 2009-03-08 22:00
- 浏览 755
- 评论(0)