关系型数据库进阶之客户端管理

在上一篇文章中我们介绍了数据库的总体架构,今天我们将和大家来一起分析一下其核心组件中的重要组成部分:客户端管理。

client manager in databases

客户端管理,顾名思义它是用来处理和客户端之间的信息交互的。客户端可以是一个web的server或者一个终端的用户/应用。客户端可以通过各种不同的方式来访问数据库,比如JDBC, ODBC, OLE-DB等等。

当连接数据库的时候,会执行下面这些步骤:

  • 客户端管理首先检查你的权限和认证,看你是否有相应的访问数据库的权限。这些权限都是通过DBA来设置的。
  • 然后,它会检查看是否有可用的进程(或者线程)来管理你的query
  • 再检查看相应的数据库是否处于很重的负载情况下。
  • 得到相应的资源,这里会有一个timeout,假如一定时间还没有得到资源,则会timeout,并且关闭相应的连接以及返回一个可读的错误信息。
  • 发送query到相应的query manager,你的query就被执行了
  • Query 的过程并不是说全部返回,可能是一部分一部分返回的,所以它会把部分的返回值保存在一个buffer中,并且开始把它们分步发送回客户端。
  • 假如有什么问题,它会断开连接,然后给出一个清晰的错误解释,并释放相关的资源

这就是整个数据库的客户端管理流程,其实还是蛮简单的,下一篇我们将会具体介绍更为核心的Query Manager部分。

参考文章:http://coding-geek.com/how-databases-work/

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *