暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
巨杉内核笔记 会话(Session).pdf
280
4页
0次
2021-02-22
40墨值下载
| Session
SequoiaDB 杉数据库是一款金融级分布式关系型数据库坚持从零开始打造分布式开源数
据库引擎。“内核笔记系列”旨在分享交 SequoiaDB 杉数据库引擎的设计思路和代
解析,帮助社区用户深入理 SequoiaDB 的实现原理,共建开源开放的数据库技术生态。
01 基本概念
会话连接两个混淆概念会话(Session) 信双从开通信信结
间的一个上下文(Context)这个上下文是一段位于服务器端的内存记录了本次连接的客户
端机器,通过哪个应用程序和哪个用户登录等信息。而连接是指从客户端到数据库实例的
条物理路径。连接可以在网络上建立,也可以在本机通 IPC 机制建立。通常会在客户端进
程与一个专用服务器或一个调度器之间建立连接。
02 SequoiaDB 中的会话设计
分布式数据 SequoiaDB 集群通常由数据节点、协调节点和编目节点组成,集群内的
同节点间存在多种类型的连接。因此 SequoiaDB 存在多种会话,且不同的会话对应不
的服务。会话的主要任务是处理通信的对端发来的请求。
集群中典型的会话结构如下图。
协调节点监听客户端发起的连接请求,连接建立后创建一 coord session即协调节点会话,
之后便由这个会话处理对应的客户端发起的所有请求coord session 在接收到客户端发来的
处理请求后,会结合编目信息进行分析,确认需要下发到哪些节点去执行,能会发送给编
目节点、一个或多个数据节点数据节点在接收到协调节点发来的消息时会创建一个 shard
session 来处理请求,执行指定的操作,并返回数据。
03 通信平面
SequoiaDB 群内的节点间存在多个通信通道,不同类型的节点提供不同的服务为了保
这些服务各自能够正常工作,SequoiaDB 的节点提供了多个通信平面。单来说,一个通信
平面对应一个服务端口,同的端口提供不同类型的服务这也是为什么在安装 SequoiaDB
时,要求预留一定范围内的端口号的原因。
SequoiaDB 中当前提供了如下几个通信平面:
local 平面(local service): 使用节点配置文件中指定的基础服务端口 svcname
repl 平面(repl service): 使用端口 svcname+1
shard 平面(shard service): 使用端口号 svcname+2
cat 平面(cat service): 使用端口 svcname+3
rest 平面(rest service): 使用端口 svcname+4
om 平面(om service): 使用端口 svcname+5
04 本地会话
本地会话在直连节(即配置 svcname)时创建。连的含义相对宽泛指的是连接任意节
的本地服务端口。客户端连接到协调节点时,会在协调节点上创建本地会话。当本地端口
的监听接收到新的连接请求时,会创建一个新的会话(内存结)一个服务线程(执行单元)
并将它们绑定(attach)起来。后续客户端将会直接与这个新的服务线程进行交互。
代码导读
SequoiaDB 中各类型的会话继承关系如下图所示。
,本/话、,都
_ISession下面将会组网对其个关键的进行介绍要是会话/毁的
机、会话的结构、操作等。
本地会话对应数据结构是类 _pmdLocalSession,线程的主函数是 _pmdLocalSession::run()
会话线程启动后,就在这个函数里循环接收及处理消息,直到会话需要结束时退出该循环。
processor
_pmdCoordProcessor对于目节点数据点,绑定的 _pmdDataProcessor。对协调
节点,会调用 _pmdCoordProcessor 口进行消理,在无别请求类,则
会再次调用 _pmdDataProcessor 的接口进行处理。
of 4
40墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜