草庐IT

分布式事务

全部标签

java - java中的哈希码桶分布

假设我需要在Hashset中存储1000个对象,我有1000个包含每个对象的桶(通过为每个对象生成唯一的哈希码值)还是有10个大约包含100个对象的桶更好?拥有独特桶的优势之一是我可以节省调用equals()方法的执行周期?为什么设置一定数量的桶并在其中尽可能均匀地分配对象很重要?理想的对象与桶的比例应该是多少? 最佳答案 Whyisitimportanttohavesetnumberofbucketsanddistributetheobjectsamoungthemasevenlyaspossible?HashSet应该能够平均在

java - Spring 中的事务原子性

SQL/Spring中的事务原子性是什么意思,什么不是?我正在考虑以下情况。如果我错了请纠正我:此代码不正确:@TransactionalpublicvoidvoteUp(longfooId){Foofoo=fooMapper.select(fooId);//SELECT*FROMfooWHEREfooId==#{fooId}foo.setVotes(foo.getVotes()+1);fooMapper.update(foo);//UPDATEfooSETvotes=#{votes}(...)WHEREfooId==#{fooId}}尽管它是事务性的,但如果在多台机器/多线程中同时调

java - Java 中的离散概率分布

我有一组整数,每个整数都有一个分配的概率,从早期的实验中得出,例如:0=0.51=0.22=0.3根据概率分布的规范,这些权重总和为1.0。我现在正在寻找一种有效的方法来对其中一个值进行采样,同时考虑给定的概率,例如(伪代码):Distributiondistribution=newDiscreteDistribution(newdouble[]{0.5,0.3,0.2});distribution.sample();根据给定的数字,这应该导致一半时间为0。但是,不要假设其中有任何模式或规律。我一直在使用ApacheCommonsMath对于我以前的实验,但它似乎没有为这种情况提供解决

java - 用于 Java 的开源分布式缓存

可以在Java中使用的最好的开源分布式缓存是什么?我以为是EHCache,但显然只有在使用商业产品TerracottaServerArray时才能在多个节点上进行扩展。我的目标是为有一定延迟的实时流数据构建缓存,我实际估计的数据大小在8gb量级,而生产速度要慢得多,在3mb量级每秒。因为有一个初始延迟,我希望我的缓存也被复制,因为当从0开始时我的缓存需要一个预热期,我非常想避免这一点。 最佳答案 Memcached值得研究。 关于java-用于Java的开源分布式缓存,我们在StackO

java - 使用概率分布生成范围内的随机整数

我有一个问题,我想使用概率分布生成一组介于1和5之间的随机整数值。Poisson和InverseGamma是两个分布,它们显示了我所找到的特征(多数为平均值,较少的较高数字)。我正在考虑使用ApacheCommonsMath但我不确定如何使用可用的分布生成我想要的数字。 最佳答案 根据您的问题描述,听起来您实际上想要一个从离散概率分布生成的样本,您可以使用EnumeratedIntegerDistribution以此目的。为你的每个整数选择合适的概率,也许像下面这样的东西会满足你的需要:int[]numsToGenerate=new

java - JPA事务隔离和实体锁的区别

我已经阅读了有关事务隔离级别的内容。它用于防止并行事务执行错误。这很明显。还有可用于实体的锁定模式。我了解它们的工作原理。但是我找不到需要锁定的原因?我已经使用过事务隔离级别。为什么我必须使用锁定?隔离级别和锁定做同样的工作吗? 最佳答案 事务隔离和JPA实体锁都是并发控制机制。transactionisolation应用于JDBC连接级别,范围是事务生命周期本身(您不能更改与当前正在运行的事务的事务隔离)。现代数据库允许您同时使用2PL(two-phaselocking)隔离级别和MVCC那些(SNAPSHOT_ISOLATION

java - 进程内缓存 vs 分布式缓存与可变/不可变对象(immutable对象)的一致性

我听我的同事说,在缓存immutable对象时,进程内缓存是更好的选择,因为一致性不是大问题(最终一致性)。而外部分布式缓存更适合您始终希望读取保持一致(强)的可变对象。这总是事实吗?我真的不明白可变性与一致性有何关系。有人可以帮助我理解这一点吗? 最佳答案 当您使用分布式缓存时,每个对象都在多个独立机器、多个缓存节点之间复制。如果您的对象是不可变的,复制就不是问题:因为对象永远不会改变,所以任何缓存实例都将提供完全相同的对象。一旦对象变得可变,就会出现一致性问题:当您向缓存实例请求对象时,您如何确定交付给您的对象是最新的?如果在一

java - 是否有针对 Java 中的 XA 事务文件访问的开源解决方案?

是否可以在Java中对文件系统进行XA事务访问?我想在事务边界内操作文件,并且我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource进行访问)。我不需要支持细粒度的读/写文件访问;将每个文件视为记录足以满足我的需要。有没有人知道已经有这样做的开源项目?我不想实现这个烂摊子只是为了发现它已经完成了......我听到一些谣言说JBossTranscations将增加对此的支持(参见示例thisdiscussion),但找不到关于此的官方声明。顺便说一下,如果您需要事务性文件访问但不需要事务参与两阶段提交,我建议您看一下ApacheCommonsTransacti

java - JPA2+Hibernate 3.6.0 中的 JTA 或 LOCAL 事务?

我们正在重新考虑我们的技术堆栈,以下是我们的选择(由于应用程序的复杂性等原因,我们离不开Spring和Hibernate)。我们还从J2EE1.4迁移到JavaEE5。技术栈JavaEE5JPA2.0(我知道JavaEE5只支持JPA1.0但我们想使用Hibernate作为JPA提供者)Hibernate3.6.0(我们已经有了许多具有自定义类型的hbm文件等所以我们不想迁移他们此时转到JPA。这表示我们希望jpa/hbm映射都有效在一起,因此Hibernate作为JPA提供者而不是使用App自带的默认服务器)现在的问题是我想坚持使用本地事务,但其他团队成员想使用JTA。在过去的9年里

java - 抛出 RuntimeException 会导致事务回滚,但 Spring Boot 应用程序中不会出现异常

在下面的代码中,抛出一个Exception不会回滚事务,但是抛出一个RuntimeException会。@ServicepublicclassHelloService{@AutowiredprotectedCustomerRepositoryrepository;@Transactionalpublicvoidrun()throwsException{repository.save(newCustomer("Jack","Bauer"));thrownewRuntimeException("Kabooom!!!");//Transactionisrolledback.Databasei