【问题标题】:What are the cheap and safe alternatives to storing information in file?将信息存储在文件中的便宜且安全的替代方法是什么?
【发布时间】:2020-11-30 18:36:00
【问题描述】:

我有一个在 AWS S3 上存储一些信息的 tsv 文件,但由于集群环境中的并发上传/下载,由于竞争条件,文件的最终状态并不总是按预期保持。

有哪些简单又便宜的替代品?

文件大小约为 150-200 KB。如果我们使用托管服务,那么使用数据库或缓存将不具有成本效益。

1.保持一致性并执行某种分布式锁定的任何方式。
2. 将信息存储在文件中的任何廉价且安全的替代方法也会非常有帮助。


谢谢你的帮助。

【问题讨论】:

    标签: database file caching race-condition acid


    【解决方案1】:

    您可以使用 S3 对象锁。借助 S3 对象锁定,您可以使用一次写入多次读取 (WORM) 模型存储对象。您可以使用它来防止对象在固定时间或无限期被删除或覆盖。对象锁定可帮助您满足需要 WORM 存储的法规要求,或简单地添加另一层保护以防止对象更改和删除。

    对象锁定提供了两种管理对象保留的方法:保留期限和合法保留。

    保留期指定对象保持锁定的固定时间段。在此期间,您的对象受 WORM 保护,不能被覆盖或删除。 合法保留提供与保留期相同的保护,但没有到期日期。相反,在您明确将其删除之前,法律保留仍然存在。合法保留独立于保留期。 要使用 S3 对象锁定,请遵循以下基本步骤:

    创建一个启用对象锁定的新存储桶。 (可选)为存储桶中的对象配置默认保留期。 将要锁定的对象放入存储桶中。 对要保护的对象应用保留期、合法保留或两者兼而有之。 https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html

    另外,您可以尝试使用 DynamoDB。 Amazon DynamoDB 是一种键值对和文档数据库,可在任何规模下提供个位数毫秒的性能。它是一个完全托管、多区域、多活动、持久的数据库,具有内置的安全性、备份和恢复以及适用于 Internet 规模应用程序的内存缓存。 DynamoDB 每天可以处理超过 10 万亿个请求,并且可以支持每秒超过 2000 万个请求的峰值。 https://aws.amazon.com/dynamodb/

    DynamoDB 还支持锁定。 DynamoDB 支持分布式锁所必需的机制,例如条件写入。但是,AWS SDK 不包含实际实现分布式锁所需的逻辑,因此这取决于您来实现。有几个例子,你可以在这里找到它:https://aws.amazon.com/blogs/database/building-distributed-locks-with-the-dynamodb-lock-client/ 在这里:https://formidable.com/blog/2020/distributed-locking/

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 2011-04-13
      • 2019-05-22
      • 2012-12-24
      • 2011-05-05
      • 1970-01-01
      相关资源
      最近更新 更多