首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储后端是如何影响数据体的?

存储后端是如何影响数据体的?
EN

Stack Overflow用户
提问于 2013-07-29 03:14:52
回答 1查看 2.2K关注 0票数 36

我应该如何选择数据通信的后端存储服务?

选择(比方说) DynamoDB而不是Postgres是首选的问题,还是每个选项都有不同的权衡?如果是的话,他们是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 13:20:15

存储服务需求

数据体的存储服务一般应满足以下三项要求:

  1. 实现键值存储语义:使用索引键值的有效读/写访问
  2. 支持一致性读取。读你自己的文章。理想情况下,无争用/无锁读取。
  3. 支持条件放置。例如乐观锁定+快照隔离。

datoms使用存储服务来存储排序的、压缩的数据块,类似于传统数据库系统使用文件系统的方式,上面的要求基本上是底层存储服务和数据体之间的API。因此,存储服务中的选择取决于对这三种需求的支持程度。

写入可伸缩性

由于只有一个组件正在为底层存储服务写东西,所以Datomic通常不会给底层存储服务带来很大的写压力。此外,数据组使用后台索引作业将新颖性集成到存储中,一旦积累了足够的新颖性(默认为~32 be,但可以配置),从而进一步减少了常量的写入负载。Datomic立即写入的唯一内容是事务日志。

读取可伸缩性

Datomic使用多层缓存,即memcached和对等缓存,因此在理想情况下,即当工作集适合内存时,系统也不会产生太多的读取压力。

系统负载

如果您的系统不需要巨大的写入可伸缩性,并且应用程序数据往往适合内存,那么选择特定的存储服务是无关的,当然,除了它们的操作功能(备份、管理工具等)之外。和数据经济学毫无关系。

另一方面,如果您的系统确实需要巨大的写入可伸缩性,或者您有大量的对等点,每个对等点处理的数据比它们的内存中的数据更多(迫使从存储中获取许多数据段),那么您将需要一个可以水平扩展的存储系统,例如DynamoDB。正如其中一个注释中提到的那样,如果您需要任意的写入可伸缩性,那么数据组无论如何都不是合适的系统。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17915528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档