Java 使用S3作为web应用程序的主数据库

Java 使用S3作为web应用程序的主数据库,java,database,amazon-s3,caching,Java,Database,Amazon S3,Caching,除了使用S3(Amazon、Wasabi或S3兼容)对象存储作为主数据库之外,还有没有其他努力?例如,存储JSON数据和其他实体 S3不提供原子事务或批处理事务,因此,为了防止密钥复制或密钥被应用程序的其他实例意外覆盖(例如),afaik需要对密钥进行分布式缓存(例如,使用EHCache或类似的东西)。这是我可以看到的主要缺点之一 类似地,如果您需要让您的应用程序具有“全部或全部”事务,例如存储两个对象或根本不存储任何对象,这是不可能的,除非(至少解决了问题的一部分)具有分布式锁定机制,例如应用

除了使用S3(Amazon、Wasabi或S3兼容)对象存储作为主数据库之外,还有没有其他努力?例如,存储JSON数据和其他实体

S3不提供原子事务或批处理事务,因此,为了防止密钥复制或密钥被应用程序的其他实例意外覆盖(例如),afaik需要对密钥进行分布式缓存(例如,使用EHCache或类似的东西)。这是我可以看到的主要缺点之一

类似地,如果您需要让您的应用程序具有“全部或全部”事务,例如存储两个对象或根本不存储任何对象,这是不可能的,除非(至少解决了问题的一部分)具有分布式锁定机制,例如应用程序的实例,在实际保存到S3时,可以在一段时间内为密钥存储一个独占锁

当使用S3作为主数据库时,如何实现这样一种机制来模拟事务?

您可以实现一个事务日志,但效率不高

S3的问题在于它提供了一致性,但除此之外,您不能真正依赖于事物的一致性