本发明涉及实时数据库技术,更具体地说,涉及一种实时数据库读取及写入方法。
背景技术:实时数据库具有测点数量多,数据存储量大,写入速度高,查询请求频繁的特点,是工业监控系统中用来存放过程历史数据的基础数据库。在现有的实时数据库中,内存数据仅支持并发读取操作,即多点读取,但是却不支持并发读写操作,在同时存在读写请求的情况,无法同时执行,限制了实时数据库对内存数据的并发访问能力,降低了整体的效率。
技术实现要素:本发明针对现有的实时数据库无法支持并发读写的缺陷,提供一种实时数据库的写入及读取方法以解决上述缺陷。本发明的一个方面,提供一种实时数据库写入方法,包括以下步骤:查找写入数据的目标测点;在目标测点下查找写入数据的目标索引块;复制该目标索引块,生成目标索引块复制体,索引块复制体指向目标数据块;将写入数据添加到目标数据块的末尾;更新目标索引块复制体信息;对实时数据库加入写锁,屏蔽实时数据库的读取操作;修改目标索引块的上一个索引块,使其索引至目标索引块复制体。本发明的实时数据库写入方法,还包括释放写锁的步骤。本发明的实时数据库写入方法,还包括回收目标索引块的步骤。本发明的实时数据库写入方法,其中更新目标索引块复制体信息的步骤包括:更新目标索引块复制体中的目标数据块的数据长度。本发明的实时数据库写入方法,其中修改目标索引块的上一个索引块的步骤包括:修改上一数据块内的下一索引块编号为目标索引块复制体。本发明还提供一种实时数据库读取方法,包括以下步骤:查找读取数据的目标测点;在目标测点下查找读取数据的目标索引块;对实时数据库加入读锁,屏蔽实时数据库的写入操作;复制该目标索引块,生成目标索引块复制体,索引块复制体指向目标数据块;读取索引块复制体指向的目标数据块。本发明的实时数据库读取方法,还包括:在读取目标数据块完成后,释放读锁。本发明的实时数据库读取方法,还包括:在读取目标数据块完成后,回收索引块复制体。实施本发明的实时数据库读取及写入方法,所有的读写操作均是通过复制的索引块进行,而不是直接对原有的索引块进行直接操作,由于所有操作都按照复制索引块的方式,保证每次操作都是访问索引块的复制体,避免直接操作索引块本身,从而达到所有操作相互独立的效果,操作完成后采用事务方式提交操作结...