文章插图
- 早期介入,防患于未然 。
文章插图
- 通过P和ζ的二维控制实现隐藏过量的并行I/O 。
AppleS会通过P优化和ζ优化保证整个I/O隐藏过程的公平、高效和稳定 。
文章插图
- 应用性和高度兼容性 。
文章插图
让我们看一下早期介入的实现细节,AppleS是通过干预I/O请求从网络链接传入数据库的过程来实现早期介入的 。
文章插图
该过程可分为六步:
1.通过网络驱动传入Socket缓存 。
2.数据库发起系统调用 。
3.I/O请求进入数据库 。
4.工作现存发起存储I/O请求 。
5.查询结果返回 。
6.I/O请求转回 。
其中AppleS通过策略性暂缓过量I/O请求的系统调用及步骤二和三,来防止过量I/O请求进入系统数据库 。
文章插图
AppleS是通过P控制和ζ控制来实现过量用户并发I/O隐藏的,前者控制并发用户数量,而后者调节单个用户的连续访问数 。上图给了一个AppleS的调度案例,其中P和ζ设定为2和10,该案例中有4个并发用户,其中用户1和3权重为0.4,而用户2和4权重为0.1 。因此在一轮AppleS调度中,允许的发送的请求总数为10 。而四个用户的用户I/O 定额也就是连续访问数,基于权重分别为4,1,4,1,换言之,在任何时刻,同时被数据库可看见的并发用户人数限定为2,也就是P=2 。同时每个用户可连续发送的请求数也被其用户I/O 定额所限定 。
通过这种方式,只要P和ζ设定匹配数据和存储子系统的处理能力,AppleS就可以准确地隐藏过量的并行I/O 。
文章插图
以上实验给出了P控制的效果,优化P设定匹配点,可以避免过量的用户并发I/O导致的锁竞争低效的争抢行为,以及高队列效应 。从而最小化I/O请求延时,进而获得高吞吐率、很低的用户并发I/O不公平性、以及低水平的请求延时波动 。
由于AppleS通过从数据库外部截获数据库发出的系统调用,来帮助其进行用户并发I/O的调度,它本质上将数据库和底层存储子系统视为一个黑盒子,这使得AppleS操作可以从物理层面与数据库的操作和底层的OS 合态I/O操作隔离开来 。从而获得较高的易用性和兼容性,事实上AppleS可以通过迅捷的配置,快速适配一款特定的数据库 。
此外AppleS还可以兼容多个版本的主流linux内核,不同的存储I/O调度机制,以及资源管理工具,比如Cgroup 。
推荐阅读
- 女生|94年女生开货车拉砖 一天搬砖8000块:努力样子引网友点赞 大家讨论点“跑偏”
- “烧仙草”是什么东西? 仙草是什么
- 黑鲨游戏手机,小米旗下的“荣耀”系列 黑鲨手机是哪个公司的
- 腾讯|腾讯发布“智能高速”:开上帝视角 夜晚开车如白天般明亮
- 招聘|“三支一扶”公开招聘,预计3.95万个岗位可选择,大专生也能报考
- 黄澜|市人力资源服务中心“牵线搭桥”上半年送岗位3.4万
- |“新来的同事,这是什么装扮?”有点可爱
- 股市里的“爆仓”是什么意思? 爆仓是什么意思
- 适合摆地摊的6种小商品 摆地摊卖什么好
- 紫檀|红木家具中的“劳斯莱斯”“法拉利”原来是......
