小编ray*_*ter的帖子

关于Paxos和Paxos Made Simple的文章的澄清

我读了一篇名为"Paxos简单"的论文,但仍有一些混淆:

  1. "paxos算法的实例"是指什么?每个实例都表明外部客户端有输入/命令吗?并且每个实例的paxos算法将并行执行???

  2. 如果只有一个能够发出提案的"杰出"提议者,那么paxos算法与2阶段提交算法的区别是什么?

  3. 我们在哪里可以在实际项目中应用paxos算法?

这篇论文似乎给出了更清晰的描述:http: //research.microsoft.com/pubs/64634/web-dsn-submission.pdf

还有什么想法?

implementation paxos

6
推荐指数
1
解决办法
5118
查看次数

如何在Java中"优雅地"生成String?

我想生成一个字符串,如sql命令:

   "INSERT INTO xxx VALUES(XXX, XXX, XXX)"
Run Code Online (Sandbox Code Playgroud)

目前我使用StringBuilder和一些String常量像"INSERT INTO"来连接表名和插入值的输入字符串参数.

但是,除了性能问题之外,这种简单的连接看起来并不优雅.有没有其他方法这样做?

在我看来,JDBC的预处理语句是这种"命令模板"的一个很好的例子:

PreparedStatement pstmt=connection.createPreparedStatement("INSERT INTO ? VALUES(?,?,?)");
Run Code Online (Sandbox Code Playgroud)

然后你可以设置表名和插入值.

pstmt.setString(1,"tableA");
pstmt.setInt(2, 100);
...
Run Code Online (Sandbox Code Playgroud)

但是,我不能使用预备语句,因为我想要的只是String ...

有人给我一些提示使用java.util.Regex或JavaCC来生成String.但据我所知,无论选择什么代码优势问题,Java String必须由类似的东西生成StringBuilder,对吧???

java string templates

3
推荐指数
1
解决办法
1151
查看次数

StringTemplate比纯字符串连接慢吗?

StringTemplate insert = new StringTemplate("insert $table$ values($value;separator=\",\"$)");
int testSize = 10000;
for(int i=0;i<testSize;i++) {           
    insert.setAttribute("table", "aTable");
    String[] vs = {"1", "1", "'aaa'", "'bbb'"};
    for(int j = 0;j < vs.length;j++){   
        insert.setAttribute("value", vs[j]);    
    }
    insert.toString();  
    insert.reset(); 
}   
Run Code Online (Sandbox Code Playgroud)

上面会比普通的StringBuilder慢大约5倍....

int testSize = 10000;
StringBuilder sb= new StringBuilder(100);
for(int i=0; i<testSize; i++) {
    sb.append("INSERT ").append("aTable (");
    String[] v = {"1", "1", "'aaa'", "'bbb'"};
    for(int j=0; j<v.length; j++) { 
        if(j > 0) {
        sb.append(",");
        }
        sb.append(v[j]);    
    }
    sb.append(")");
    sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

关于如何提高StringTemplate效率的任何想法或建议?谢谢!StringTemplate似乎在每个令牌上调用toString(),对吗?

java performance stringtemplate

0
推荐指数
1
解决办法
684
查看次数