Hyper如何同时支持OLAP和OLTP业务

背景

在OLAP环境下,数据的更新操作一般是通过定时调用ETL程序来定期将数据导入到内存仓库里面。这样带来的问题就是数据不是实时的,不够”新鲜“。

Hyper如何维持数据的新鲜

Hyper是一个同时支持OLTP和OLAP型的全内存数据库。

Hyper的设计目标:

  • 能够在1s之内处理成百上千次的OLTP型的事务操作,达到像VoltDB或者TimesTen一样的处理效率。
  • OLAP能够处理up-to-data的数据,达到像MonetDB或者是TREX一样的速率。

如果将OLAP和OLTP的操作在任务队列里面排队执行会出现什么问题:长时间的OLAP操作会阻塞OLTP操作的进行。而OLTP是短事务时间,需要能够具有实时处理的特点。
将OLAP和OLTP类型混合在一起处理,将不会满足OLTP实时性。Hyper的做法是依赖了目前系统中的COW技术(copy-on-write)。
如果一个父进程被fork,那么子进程并不会立即拷贝夫进程的物理内存,只有当父进程中的某个页面作了改变以后。子进程才真正将这部分的内存作拷贝。而且拷贝的单位是’以页面为单位’。如下图所示:
这里写图片描述
没有改变的页面的物理空间是不会被真正的拷贝的。
如果父进程被fork了多次,那么实际的内存情况如下:

这样的话,如果需要处理OLAP的任务,需要在两个OLTP事务时间fork出一个子进程来处理OLAP的任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值