【技术实现步骤摘要】
数据库句柄处理方法、装置和计算机设备
本专利技术涉及计算机
,特别是涉及一种数据库句柄处理方法、装置和计算机设备。
技术介绍
随着计算机技术的发展,通过数据库存储文件数据广泛应用于移动终端、PC(personalcomputer,个人计算机)客户端。在使用过程中经常面临多线程并发的挑战,多线程并发发生时,一个线程访问资源时,其他线程需要线性串行地等待其释放资源。当线程并发数超过两个时,较后执行的线程,往往会被互斥锁阻塞很长时间。传统的数据库句柄处理方法,在数据库打开时获得一个句柄,该句柄作为不同线程的共享资源,一个数据库只对应一个句柄,当多个线程对数据库操作时,很容易在线程访问句柄时产生阻塞,多线程互斥的概率很高,当互斥发生时,线程会频繁进行状态切换,大量消耗CPU线程切换的资源,导致性能下降,
技术实现思路
基于此,有必要针对上述技术问题,提供一种数据库句柄处理方法、装置和计算机设备,能减少阻塞的发生,减少内存资源的消耗,提高数据库线程并发的性能。一种数据库句柄处理方法,所述方法包括:获取数据库操作请求,判断所述数据库操作请求对应的操作是否为事务操作,如果是, ...
【技术保护点】
一种数据库句柄处理方法,所述方法包括:获取数据库操作请求,判断所述数据库操作请求对应的操作是否为事务操作,如果是,则获取所述事务操作对应的事务绑定的第一句柄,返回所述第一句柄;如果不是事务操作,则判断所述数据库操作请求对应的当前线程中是否存在未完成句柄,如果是,则返回所述未完成句柄;如果不存在未完成句柄,则从句柄池中通过句柄分发获取第二句柄,返回所述第二句柄。
【技术特征摘要】
1.一种数据库句柄处理方法,所述方法包括:获取数据库操作请求,判断所述数据库操作请求对应的操作是否为事务操作,如果是,则获取所述事务操作对应的事务绑定的第一句柄,返回所述第一句柄;如果不是事务操作,则判断所述数据库操作请求对应的当前线程中是否存在未完成句柄,如果是,则返回所述未完成句柄;如果不存在未完成句柄,则从句柄池中通过句柄分发获取第二句柄,返回所述第二句柄。2.根据权利要求1所述的方法,其特征在于,所述数据库操作请求对应的操作为事务的开始操作,所述方法还包括:从所述句柄池中通过句柄分发获取第一句柄,将所述第一句柄与所述事务绑定。3.根据权利要求2所述的方法,其特征在于,所述数据库操作请求对应的操作为所述事务的结束操作,所述方法还包括:当所述结束操作执行完毕,将所述第一句柄回收进入所述句柄池。4.根据权利要求1所述的方法,其特征在于,所述数据库操作请求对应的操作是递归操作,所述方法还包括:当所述递归操作对应的操作结束次数与操作开始次数相等时,将所述递归操作对应的句柄回收进入所述句柄池。5.根据权利要求1所述的方法,其特征在于,所述数据库操作请求对应的操作是普通数据库操作,所述方法还包括:当所述普通数据库操作结束时,将所述普通数据库操作对应的句柄回收进入所述句柄池。6.根据权利要求1所述的方法,其特征在于,所述普通数据库操作和/或递归操作对应的句柄保存在线程变量中,所述线程变量在各个线程都存在独立的内存。7.根据权利要求1至6任一项所述的方法,其特征在于,所述句柄池中的句柄组成队列,所述队列包括头部和尾部,通过原子化的操作实现句柄的分发和回收。8.根据权利要求2所述的方法,其特征在于,将所述第一句柄回收进入所述句柄池的步骤包括:生成新句柄,将所述新句柄的next指针指向为空;在队列的尾部指针指向的尾部句柄的next指针指向为空的条件下将所述尾部句柄的next指针指向所述新句柄;将队列的尾部指针指向所述新句柄。9.根据权利要求1所述的方法,其特征在于,所述数据库操作请求包括多个并发的写操作请求,所述方法还包括:第一线程向数据库发送锁请求,获取锁成功,将数据库锁定;第二线程向数据库发送锁请求,获取锁失败,将第二线程期望的锁状态插入锁状态队列,所述第二线程进入等待状态;第一线程完成写操作,将数据库解锁,判断数据库当前状态是否满足所述第二线程期望的锁状态,如果满足,则唤醒所述第二线程进行写操作重试。10.根据权利要求9所述的方法,其特征在于,所述将第二线程期望的锁状态插入所述锁状态队列的步骤包括:当所述第二线程是主线程时,将所述锁状态插入至所述锁状态队列的头部。11.一种数据库句柄处理装置,其特征在于,所述装置包括:第一判断模块,用于获取数据库操作请求,判断所述数据库操作请求对应的操作是否为事务操作,如果是,则进入第一句柄返回模块,否则进入第二判断模块;第一句柄返回模块,用于获取所述事务操作对应的事务绑定的第一句柄,返回所述第一句柄;第二判断模块,用于判断所述数据库操作请求对应的当前线程中是否存在未完成句柄,如果是,则返回所述未完成句柄,否则进入第二句柄返回模块;第二句柄返...
【专利技术属性】
技术研发人员:张三华,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。