首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于快速读取和快速写入的高性能数据库。无更新或删除

用于快速读取和快速写入的高性能数据库。无更新或删除
EN

Stack Overflow用户
提问于 2014-11-12 18:58:21
回答 3查看 41.4K关注 0票数 11

我正在寻找存储数据的数据库/机制,在那里我可以以高性能写入和读取数据。

此存储用于存储跨多个系统的日志记录等重要信息。Since it's critical data which will be logged, read performance should be pretty fast as these data will be used to show history. Since we never do update on them/delete on them/or do any kinda joins, I am looking for right solution.,我们可能会在很长一段时间内对数据进行归档,但这是可以处理的。

我试着查看不同的来源来理解不同的NoSql数据库,专家的意见总是更好:)

代码语言:javascript
复制
Must Have:
1. Fast Read without fail
2. Fast Write without fail
3. Random access Performance
4. Replication kinda feature, one goes down, immediately another should be up and working
5. Concurrent write/read data

Good to Have:
1. Search content like analysing the data for auditing with/without Indexes

Don't required:
1. Transactions are not required at all
2. Update never happens
3. Delete never happens
4. Joins are not required

已提交:http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

EN

回答 3

Stack Overflow用户

发布于 2014-11-14 00:21:48

Disclosure:Kevin Porter是自2013年5月起在Aerospike,Inc.任职的高级软件工程师。(ref)

一定要考虑Aerospike;在需要进行high throughput读写的广告技术领域,Aerospike占据主导地位。Aerospike经常被吹捧为“拥有Redis的速度和Cassandra的可扩展性”。有关搜索/查询的信息,请参阅Aerospike的secondary index文档。

有关更多信息,请参阅下面的讨论/文章:

  1. Aerospike vs Cassandra
  2. Aerospike vs Redis and Mongo
  3. Aerospike Benchmarks

最后,使用One million TPS on EC2 Instructions验证您自己的性能。

票数 19
EN

Stack Overflow用户

发布于 2014-11-13 02:39:00

让我成为Cassandra的赞助商。

免责声明:我不是说卡桑德拉比其他人更好,因为我甚至对mongo/redis/任何东西都不了解,我甚至不想进入这种东西。

我之所以推荐Cassandra是因为你的需求与Cassandra提供的完全匹配,而你的“不需要列表”是一组要么在Cassandra中不被支持(实例加入)要么被认为是反模式(删除和在某些情况下更新)的特性。

从你的“必须拥有”列表中,一点一点地

  1. Fast读取无故障:支持。您可以选择每个读取操作的一致性级别,决定检索最新信息的重要性以及无故障写入性能的重要性:与speed
  2. Fast 1
  3. Random access 相同:进入Cassandra世界时,您必须考虑许多参数才能获得随机访问性能,但我想到的最重要的是数据模型--如果您创建了一个水平扩展的数据模型(give a look here),并且避免了热点,那么您就可以获得所需的性能。如果您以一种好的方式对您的DB建模,那么您应该为每个操作使用O(1),因为在这个Cassandra中,数据的结构是queried
  4. Replication:的,这比您想象的还要好。如果一个节点宕机,集群不会发生任何变化,所有(*)都能正常工作。Cassandra没有发现单点故障。我可以告诉你,使用较早的Cassandra版本,我的正常运行时间超过了3个years
  5. Concurrent写/读数据:Cassandra使用lww策略(最后一次写入-成功)来处理同一个键上的并发写入。该系统支持多读写,并且使用较新的协议还支持异步操作。

Cassandra还提供了许多其他有趣的功能:我更喜欢线性水平缩放,但也有这样一个事实,即你可以知道每一块数据被更新的瞬间(lww的时间戳),计数器功能等等。

(*) -如果你不使用一致性级别All,imho,永远不应该在这样的系统中使用它。

票数 6
EN

Stack Overflow用户

发布于 2014-11-19 01:32:02

这里还有一些关于如何使用Aerospike跨越内存中的磁盘(DRAM、SSM和磁盘存储)的链接:

http://www.aerospike.com/hybrid-memory/

http://www.aerospike.com/docs/architecture/storage.html

我认为在将特定的数据库与您的特定用例相匹配方面,每个人都是正确的。例如,对于键值数据,Aerospike是最优的。其他选择可能更好。

打个比方,我永远记得,几十年前,我的一个姐姐借了我的电脑,用Microsoft Excel写了她的学期论文。一行接一行是电子表格中的不同行。它看起来很难看,但是,呃,好吧。她完成了这项任务。她咒骂并咒骂编辑这篇文章有多难。没有开玩笑!

为正确的任务选择正确的NoSQL数据库将使您的工作变得轻而易举,或者如果您决定为手头的任务选择错误的基本工具,则可能会导致您诅咒蓝色条纹。

当然,每个供应商都会为他们的产品辩护。我认为社区最好回答这个问题。下面是另一个Stack Overflow线程,回答了一个类似的问题:

Has anyone worked with Aerospike? How does it compare to MongoDB?

顺便说一句,对于您要解决的问题,您有什么更具体的见解吗?

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

https://stackoverflow.com/questions/26885297

复制
相关文章

相似问题

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