【技术实现步骤摘要】
一种多进程安全访问sqlite的方法
本专利技术涉及数据库
,尤其是一种多进程安全访问sqlite的方法。
技术介绍
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLite的锁机制是粗粒度的,它允许多个读,但是一次只允许一个写。写锁会在写期间排他地锁定数据库,其他人在此期间不能访问数据库。目前多进程访问sqlite的方法,可以采用文件锁的方式,创建一个全局的文件锁,每个进程创建 ...
【技术保护点】
1.一种多进程安全访问sqlite的方法,其特征在于包括以下步骤:A、对数据库的访问分为读线程、写线程和文件线程;B、步骤A中所述进程在访问数据库之前,查询数据库锁的状态,若数据库被锁住,则准备访问数据库的线程处于等待状态,等锁被释放后,准备访问数据库的线程获取锁的控制权对数据库进行操作;C、上述线程采用先到先得的原则进行锁的获取,线程对数据库的操作完成后,释放锁,其它线程此时获取锁状态然后对数据库进行操作。
【技术特征摘要】
1.一种多进程安全访问sqlite的方法,其特征在于包括以下步骤:A、对数据库的访问分为读线程、写线程和文件线程;B、步骤A中所述进程在访问数据库之前,查询数据库锁的状态,若数据库被锁住,则准备访问数据库的线程处于等待状态,等锁被释放后,准备访问数据库的线程获取锁的控制权对数据库进行操作;C、上述线程采用先到先得的原则进行锁的获取,线程对数据库的操作完成后,释放锁,其它线程此时获取锁状态然后对数据库进行操作。2.根据权利要求1所述的多进程安全访问sqlite的方法,其特征在于:在每次数据库操作语句前添加一个随机码,服务器返回结果时也带上这个随机码,若随机码对应,则认为返回值是此次的数据库读取结果。3.根据权利要求1所述的多进程安全访问sqlite的方法,其特征在于:客户端每个有数据库访问的线程,均建立一个独立的socket来和服务端通信。4.根据权利要求1所述的多进程安全访问sqlite的方法,其特征在于:所述写线程包括以下步骤:W1、客户端发送sql命令;W2、将sql命令写入接收进程;W3、接收进程将命令放入数据队列,数据队列用于存储sql命令和客户端的地址;W4、处理进程从数据队列读取命令,根据不同的操作划分命令;W5、根据不同的命令对数据库进行插入操作或删除修改操作。5.根据权利要求4所述的多进程安全访问sqlite的...
【专利技术属性】
技术研发人员:王小东,熊传宇,
申请(专利权)人:北京天地和兴科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。