Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
产品经理
GitHub开源免费源代码
RUST语言
go语言文章排行榜
DevOps文章排行榜
认知偏差与谬论
数据科学
数据工程
幽默模因
更多话题
寻求高效本地nosql方案
10-06-09
adolf506
我们有这样一个需求场景,对数据的处理比较麻烦,像通用的mysql/oralce数据库等没法适用,具体主要需求场景如下:
1、每秒能处理的数据项数量庞大,如2万个
2、对查询响应时间要求苛刻,如在1亿条记录中查询任意一个数据项符合要求的1000条记录耗时不超过5秒
3、断电等意外情况下,最多允许丢失最近一小时内的数据
4、数据项的值插入频率快,如每秒一次
5、数据项的值只有新增,没有更新操作
不知道大家有什么好的思路没,我们正在摸索中。欢迎有经验的朋友指点一下。
banq
2010-06-09 14:27
你这个系统首先肯定需要分布式,第二步,按照分布式
CAP定理
进行设计:
断电不能丢失太多,意味着容错性要求高。
查询响应时间要求高,对可用性要求比较高。
需求中没有提出:插入的数据是立即出现在查询结果中,还是允许最多延迟多长时间出现,所以,可以初步认为对一致性要求不高。
这样,你就寻找注重AP的NoSQL数据库:
从CAP分类NOSQL
chengyi6901
2010-06-09 16:15
oracle的内存数据库符合要求吗?
adolf506
2010-06-10 09:21
其实刚开始研究决定用 内存数据库H2+orecle,中间通过Sequoia做负载均衡,但这个解决了查询问题。
但插入问题一直感觉很难解决,bang说的插入延迟时间,时间不是问题,但保证数据的完整性与一致性比较难啊
IceQi
2010-06-12 11:27
lz遇到了完整、一致性的问题,那么就需要考虑整个者业务过程中到底在什么地方需要完整、一致?通常这样的需求并不是贯穿整个数据过程的,毕竟任何系统都需要一步步的处理数据。
分阶段的进行保证,同时在关键位置上进行同步,这也是很多大型系统的策略。比如Facebook。。。。。。。。
jametong
2010-06-21 14:54
如果数据不需要保证完全可用..
可以考虑调整Oracle的参数Commit_write到batch,nowait, 如果是MySQL也有类似的级别..
我自己在台式机上进行测试, Intel I7-860 + SATA 7200rpm 500GB 的磁盘上就可以实现每秒插入5000条(每条记录较小)以上的数据. 如果磁盘的吞吐量再高点, 并发大点, 每秒处理3-5w条记录也不是大问题.
[该贴被jametong于2010-06-21 15:02修改过]
wzkl
2011-04-08 17:46
1.不知道业务,可以采用Map.Reduce
2.是否可以考虑Hbase+Hive+Hadoop
3.采用HDFS分布式存储方案
4.采用HBase
5.采用HBase
猜你喜欢
本站原创
《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看