暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oushudb-进程架构

原创 宗恩 2023-02-03
235


主要内容为OushuDB的进程架构。



OushuDB有不同的角色(Master节点,Standby节点、N个Segment节点),这幅图就展示了所有节点OushuDB的常驻进程。我们可以看到Master节点的一系列的进程,他们负责同时进行任务分解并且dispatcher。当进程进一步执行时,会动态的生成新的QD(Query Dispatcher)和QE(Query Executor)的进程,我们将在后面进行详细的介绍。


下面我们将讲解每个进程具体的功能,首先,我们来看前四个进程。这四个进程在Master节点和Segment节点都有,他们有相似的功能。


首先先看PostMaster进程,他监听用户请求的守护进程,为每个客户端fork连接出单独的postgres服务,当postgres进程出错时尝试修复;当Segment节点的postgres挂掉时候会认为节点已经down掉了。


Logger进程负责收集各个进程的输出并将其写入pg_log,这里包括成功log和出错的log。


Stats collector进程会统计收集数据的信息,会生成描述数据库、表等统计信息的.stat文件。


Writer进程是定期将共享内存的数据写到磁盘上的进程。


再看下面一对进程Master resource manager和Segment resource manager。Master resource manager负责管理、分配、回收资源,定期查询、接收、处理Segment的心跳信息,从而获取整个集群可用的节点;Segment resource manager是查询本节点的状态,包括查询临时文件是否可读写,发送Segment的心跳信息。


下面的进程是Master节点上独有的,首先我们来看DFS metadata cache,由于OushuDB是存储和计算分离的,数据存储在HDFS或magma上,DFS metadata cache读取并缓存block location信息,从而计算数据的存储,也就是存储数据的这些block是如何分布的,因此在生成查询计划时,可以确定去某些节点访问某些数据的速度,从而进一步保证本地读。


Checkpoint负责周期性做checkpoint或响应常规的checkpoint请求。


Sequence是产生序列,也我们通常说的自增长列。


下面两个进程是保证Master的节点和Standby节点元数据信息进行同步的。Wal send server进程负责把write ahead log发给Standby Master,而Sync agent负责和Master上wal send server通信的进程,处理Master 和standby 节点状态。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论