1

假设我想将哈希集对象存储到 AWS S3 上的存储桶中。我可以轻松地频繁更新该对象(向哈希集添加新字符串),还是必须先将哈希集从存储桶中拉出,然后才能对其进行更改?

4

1 回答 1

0

S3 是一个键->(对象+元数据)存储。最近(2020 年 12 月),S3 在更新、删除、列出和获取方面获得了强一致性。只有存储桶具有最终一致性约束。这意味着您应该能够轻松地将序列化对象存储在 S3 上,并使用基本的 CRUD 操作来读取、更新、删除和列出存储的对象。

所以,是的,理论上你将能够在 S3 上存储一个哈希集。您可以将集合的单个值哈希映射到 s3 键后缀并将值直接存储在 S3 中。您不必将整个哈希集加载到内存中,因为您可以将大部分操作直接映射到 S3。

  1. HashSet::Put -> S3::PutObject。O(1)
  2. HashSet::isPresent -> S3::GetObjectMetaData。O(1)
  3. HashSet::Remove -> S3::DeleteObject。O(1)
  4. HashSet::ListAllObjects -> S3::ListObjects。上)

您也可以实现联合、交叉操作。不过,我不确定它与通常的实现相比效率如何。

于 2021-05-26T19:28:12.677 回答