2023-09-07 monetdb-mvc的实现与并发控制-思考

摘要:

monetdb用mvc模块实现了并发控制中对于事务的调度管理, mvc可以看作一次执行的完整的抽象.

并发控制中一个比较需要注意的地方就是调度管理以及锁的使用和管理, 是的, 事务对于资源的使用的串行会使用到锁, 但是申请锁和释放锁却不能由事务本身来进行, 而是调度事务的模块来对锁进行管理.

本文对mvc模块的设计做一些思考.

并发控制所涉及的模块:

  1. 事务的实现, 具体为trans模块
  2. 当前执行的数据存储管理, 具体为sqlstore
    1. 锁的控制和使用就在这个模块
    2. 从数据的控制方面就不难理解, 锁管理的是数据, 而不是行为
  3. 相关元信息模块, 其实就是schema和table的信息, 由sql_schema和sql_table

monetdb中的mvc模块:

  1. 生命周期和monetdbe_database相同
    1. monetdbe_database为操作monetdbe的必须的句柄
    2. 这里要严格将所谓会话和monetdbe_database区分开来, 严格上来说应该每个会话一个monetdbe_database, 但是不能直白的划等号
    3. 创建monetdbe_database时, 进行mvc的init
  2. mvc中包含了执行所需的一切, 也就是下层模块由mvc模块管理
  3. mvc中的逻辑可以看作是调度的行为

你可能感兴趣的:(monetdb,mvc,数据库,monetdb)