`
vvggsky
  • 浏览: 65276 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
http://www.dbanotes.net/arch/facebook_scaling_out.html 大量的 MySQL + Memcached 服务器,布署简示: California (主 Write/Read)............. Virginia (Read Only) 主数据中心在 California ,远程中心在 Virginia 。这两个中心网络延迟就有 70ms,MySQL 数据复制延迟 ...
在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于锁定状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。 在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中 ...
原文地址: http://blog.csdn.net/DaiZiLiang/archive/2006/12/06/1432193.aspx 笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以 下几个方面: 一、数据量过大,数据中什么情况都可能存在 ...
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 ...
导读:   Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。   我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。   Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用, Platfr ...
http://www.iteye.com/topic/37732?page=1 控制这个程序在同一主机上只能启动一个实例 /** * 检测系统是否只启动了一个实例 */ protected void checkSingleInstance() { try { srvSocket = new ServerSocket(srvPort); //启动一个ServerSocket,用以控制只启动一个实例 } catch (IOException ex) { if(ex.getMessage() ...
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 ...
http://www.java2000.net/p14873 Semaphore 信号量,就是一个允许实现设置好的令牌。也许有1个,也许有10个或更多。 谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待。 执行完毕,一定要归还(release)令牌,否则令牌会被很快 ...
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 ...
通过把一个套接字通道(SocketChannel)注册到一个选择器(Selector)中,不时调用后者的选择(select)方法就能返回满足的选择键(SelectionKey),键中包含了SOCKET事件信息. 异步套接字对服务器程序来说更具吸引力.一般同步SOCKET服务器的实现都是采用线程池来处理客户请求的,基于请求超时时间和并发线程数目的限制,如果并发处理能力能够达到上千就已经是不错了.异步服务器的能力则至少是它的数倍(有人测试一个简单的ECHO服务程序,说可以达到上万个并发,不知道是否真的能达到). SocketChannel的读写是通过一个类叫ByteBuffer(java.nio ...
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(); ...
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 看起来这毫无神奇之处,不就是打印 ...
http://www.iteye.com/topic/198175 一个最简单地数据库连接池实现: public class ConnectionPool { private static Vector pools; private final int POOL_MAXSIZE = 25; /** * 获取数据库连接 * 如果当前池中有可用连接,则将池中最后一个返回;若没有,则创建一个新的返回 */ public sy ...
http://www.blogjava.net/BlueDavy/archive/2006/11/22/82909.html 需求就是: 调用Oracle EXP命令完成备份,并返回生成的备份文件名,这个备份文件会很快在其他的地方被使用。 采用Runtime.getRuntime().exec我们都知道,需要处理它的InputStream,以避免出现执行的命令输出的信息过多使得进程被堵死. InputStreamReader isr = new InputStreamReader(process.getInputStream()); Buffered ...
多个volatile操作之间是有序的,compiler和处理器都不能进行乱序 volatile store之前的load/store操作不能乱序到volatile store之后执行 volatile load之后的load/store操作不能乱序到volatile load之前执行
Global site tag (gtag.js) - Google Analytics