我应该如何选择数据通信的后端存储服务?
选择(比方说) DynamoDB而不是Postgres是首选的问题,还是每个选项都有不同的权衡?如果是的话,他们是什么?
发布于 2013-07-29 13:20:15
存储服务需求
数据体的存储服务一般应满足以下三项要求:
datoms使用存储服务来存储排序的、压缩的数据块,类似于传统数据库系统使用文件系统的方式,上面的要求基本上是底层存储服务和数据体之间的API。因此,存储服务中的选择取决于对这三种需求的支持程度。
写入可伸缩性
由于只有一个组件正在为底层存储服务写东西,所以Datomic通常不会给底层存储服务带来很大的写压力。此外,数据组使用后台索引作业将新颖性集成到存储中,一旦积累了足够的新颖性(默认为~32 be,但可以配置),从而进一步减少了常量的写入负载。Datomic立即写入的唯一内容是事务日志。
读取可伸缩性
Datomic使用多层缓存,即memcached和对等缓存,因此在理想情况下,即当工作集适合内存时,系统也不会产生太多的读取压力。
系统负载
如果您的系统不需要巨大的写入可伸缩性,并且应用程序数据往往适合内存,那么选择特定的存储服务是无关的,当然,除了它们的操作功能(备份、管理工具等)之外。和数据经济学毫无关系。
另一方面,如果您的系统确实需要巨大的写入可伸缩性,或者您有大量的对等点,每个对等点处理的数据比它们的内存中的数据更多(迫使从存储中获取许多数据段),那么您将需要一个可以水平扩展的存储系统,例如DynamoDB。正如其中一个注释中提到的那样,如果您需要任意的写入可伸缩性,那么数据组无论如何都不是合适的系统。
https://stackoverflow.com/questions/17915528
复制相似问题