15-721 chapter12 查询计划

文章探讨了在服务端支持多并发服务的查询模型,包括进程池和线程模型的优缺点,强调了内存布局和分配对性能的影响。提到Linux的numactl进行内存优化,以及SQLOS(SQLServerOperatingSystem)为数据库服务提供的用户态任务调度。此外,还讨论了处理超载的方法和分布式系统中的本地分片策略。
摘要由CSDN通过智能技术生成

查询模型

查询模型就是定义如何支持服务端多个并发服务,这里我们引入了worker的抽象概念,可以是线程也可以是进程,就是支持客户端请求并且返回结果的。

 进程模型

进程池模型

不利于cache,并且进程之间的通信依赖于tcp,shared memory啥的,比较重。 

线程模型

内存和cpu布局

一种是每个cpu通过systembus来访问内存的,这和cpu和内存区域的相对位置不影响速度。

 更加现代的是下面这种

如果不是访问local的memory的话,要和别的cpu进行inter connected,然后copy到本地。这可能比本地的要慢50%。所以我们可以在要访问内存最近的cpu核上跑worker。可以用linux move pages, numactl

 内存分配

是lazy的,就是先扩展进程的数据段,然后要用的时候,才到物理页,触发page fault.

 

第二个如果group放置的话,比os乱搞可以快大概30%。并且会随着核心的上升而越来越明显。 

计划模型

hyper

可以找到空闲的cpu,然后steal,内存,缓存到本地。 

 hana 

watchdog记录和更新的是全局信息 

SQLOS

就是在内核态的os上建一个用户态的os,提供任务调度,IO调度,高级版的事务锁啥的。 

超载

解决

Summary

track内存分布,就像分布式系统中的本地分片。

最后,向不良人6大结局致敬。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值