CN111966717B - 一种降低数据库崩溃概率的数据访问方法及系统 - Google Patents
一种降低数据库崩溃概率的数据访问方法及系统 Download PDFInfo
- Publication number
- CN111966717B CN111966717B CN202010922057.2A CN202010922057A CN111966717B CN 111966717 B CN111966717 B CN 111966717B CN 202010922057 A CN202010922057 A CN 202010922057A CN 111966717 B CN111966717 B CN 111966717B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- database
- application cache
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000002085 persistent effect Effects 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims description 30
- 238000013500 data storage Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000013524 data verification Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 7
- 230000002688 persistence Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种降低数据库崩溃概率的数据访问方法及系统,该方法包括如下步骤:将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;将状态数值类型进行标记并存储在应用缓存中;在持久化访问时,拦截数据访问的接口调用;将持久化对象类中标记的状态数值类型进行解析分离;将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问。对持久化对象的数据进行区分访问,将原本的单线程访问数据库扩展为双线程,分别从应用缓存以及数据库双向获取持久化对象数据,依据访问模式的设定,控制访问线程的活动范围,增强数据访问的灵活性。
Description
技术领域
本发明涉及数据库管理技术领域,具体涉及一种降低数据库崩溃概率的数据访问方法及系统。
背景技术
绝大部分应用程序,在运行过程中都需要有数据输入作为处理的原点,有时为了维持系统的运行,数据有时需要记录在应用程序中,数据库应运而生。数据持久化在各式各样的数据库中,如mysql、mogodb等等,数据库类型也是多种多样,文件数据库、内存数据库等等,各有各的优势。
代码访问数据库,都会存在一定的访问时间消耗,或是存在各种各样数据不一致的固有问题,在我们实际项目中就遇到,为了提升系统的整体运行效率以及系统响应速度方面,应用了程序内部缓存结合mysql数据库两种数据存储方式,一个负责保证数据读写效率,一个负责持久化。
然而,在任务高并发的情况下,持久化访问由于事务界定的问题,存在各种各样的并发访问导致数据被强制刷新的情况,以及在长时间运行过程中,系统需要周期性更新数据信息,但此时服务器因不可抗力因素发生断电或是异常关闭,可能会导致写入中的数据未完成而引发的数据库崩溃问题,但是为了在保持当前项目架构中间件组织架构不变的前提下,降低数据覆盖以及数据库崩溃的风险,是提升系统运行稳定性的关键。需要对崩溃数据库进行恢复这就影响了数据库的使用,如何降低数据库崩溃的概率是需要亟待解决的问题。
发明内容
为了在保持当前项目架构中间件组织架构不变的前提下,降低数据覆盖以及数据库崩溃的风险,是提升系统运行稳定性的关键。需要对崩溃数据库进行恢复这就影响了数据库的使用,如何降低数据库崩溃的概率是需要亟待解决的问题,鉴于此,本发明提供一种降低数据库崩溃概率的数据访问方法及系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种降低数据库崩溃概率的数据访问方法,包括如下步骤:
将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
将状态数值类型进行标记并存储在应用缓存中;
在持久化访问时,拦截数据访问的接口调用;
将持久化对象类中标记的状态数值类型进行解析分离;
将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问。
通过定义持久化对象类的属性种类为状态数值类型和基础数据类型,在保持现有持久化层不变的情况下,扩展数据持久化层的架构方式,允许开发者在数据持久化统一接口中纳入多种类型数据源,在保持数据持久化对象不变的情况下,在调用此对象类型的数据接口时,完成从应用缓存以及数据库同时进行访问操作的过程,将持续变动数据与传统数据库进行存储分离,从而达到降低数据库IO操作的目的,进而降低在服务器崩溃时,数据库被损坏的风险。
进一步的,基础数据类型包括持久化对象的静态信息;其中,静态信息包括名称、ID、备注信息;
状态数值类型包括运行过程中不断进行更新的数据信息。
进一步的,该方法还包括:
定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。由于同一组应用数据根据类型的不同分为状态数值类型和基础数据类型进行分开存储分开访问,访问完成后返回的数据需要进行统一返回这就需要同喜组数据存储时的ID是相同的设置,方便对数据进行访问。
进一步的,将持久化对象类中标记的状态数值类型进行解析分离的步骤包括:
解析持久化对象类中标记为状态数值类型的数据;
将这类数据进行重新分组;
复制数据对象ID并复制出新的数据承载对象。状态数值类型,其主要特性是在基础数据完备的情况下,其值信息允许不存在或为默认值,并且会随运行一直进行更新;进行数据标注后,在进行持久化数据接口调用时,会解析持久化类中标记为状态数值类型的数据,将这类数据进行重新分组,并复制对象ID,复制出新的数据承载对象。
进一步的,将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问的步骤包括:
将分离后的数据对象根据接口中配置的数据访问模式及对象ID从应用缓存或是数据库中进行数据操作;
对数据进行操作后,将返回结果填充至统一的数据承载对象,再由接口统一返回。
进一步的,将基础数据类型数据存储在数据库中,将状态数值类型数据存储入在应用缓存中的步骤包括:
将状态数值类型数据存储在应用缓存时,记录存储时间;
每进行一次数据访问,将数据的存储时间更新为当前访问的时间。方便查找设定时间段内未被访问的数据。
进一步的,该方法还包括:
设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。以节省内存空间。以达到缓存内数值具有实时性以及有效性的效果。
另一方面,本发明技术方案提供一种降低数据库崩溃概率的数据访问系统,包括分类存储模块、标记模块、调用处理模块、持久化对象类解析模块、访问处理模块;
分类存储模块,用于将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
标记模块,用于将状态数值类型进行标记并存储在应用缓存中;
调用处理模块,用于在持久化数据访问时,拦截数据访问的接口调用;
持久化对象类解析模块,用于将持久化对象类中标记的状态数值类型进行解析分离;
访问处理模块,用于将分离出的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问。
在应用中,依据数据访问特性,将持久化对象类的属性归类为状态数值类以及基础数据类,在基础数据类访问方式不变的情况下,将状态数值类进行标记并使用应用缓存进行存储,同时,在持久化数据访问时拦截数据访问请求,经过持久化对象类解析模块,将对象的状态数值类属性进行分拣,分别对两种数据进行数据访问,将返回结果填充至返回数据载体,再进行统一返回,来达到降低状态数值类数据更新而触发的数据库IO,避免在不可抗力发生时,服务器崩溃导致的IO被异常中断,数据库表结构被损坏的风险,同时又可兼容原有业务流程中的数据访问要求,降低变动带来的代码维护量,既提升了系统稳定性又提升了开发的易维护性。
进一步的,该系统还包括存储结构定义模块;
存储结构定义模块,用于定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。依据基础数据类持久化标识为唯一标识,应用缓存中定义数据存储结构以数组的结构维护持久化对象的缓存数据;
进一步的,标记模块包括标记单元、存储单元和存储时间更新单元;
标记单元,用于将状态数值类型进行标记;
存储单元,用于将状态数值类型数据存储在应用缓存时,记录存储时间;
存储时间更新单元,用于每进行一次数据访问,将数据的存储时间更新为当前访问的时间;
该系统还包括应用缓存处理模块,所述的应用缓存处理模块包括设置单元和数据处理单元;
设置单元,用于设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
数据处理单元,用于若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。
从以上技术方案可以看出,本发明具有以下优点:通过对持久化对象数据内属性类型进行区分定义,状态数值类以及基础数据类,依据其不同的访问特性——状态数值类需要依据特定流程进行频繁更新,基础数据类则相对比较稳定,非信息变更类操作外,几乎不会进行更新的特性,为状态数值类采用应用缓存进行存储,对基础数据类则保留原有的存储方式存储在数据库中,以避免在应用长期运行时,偶发的不可抗力引起的服务器断电等故障,导致写入数据库时IO异常,从而引发数据库结构被损坏的问题,同时通过拦截通用的数据访问Dao层接口调用,解析持久化数据对象,依据标记以及访问模式,对持久化对象的数据进行区分访问,将原本的单线程访问数据库扩展为双线程,分别从应用缓存以及数据库双向获取持久化对象数据,依据访问模式的设定,控制访问线程的活动范围,增强数据访问的灵活性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。下面对本发明中出现的关键术语进行解释。
如图1所示,本发明实施例提供一种降低数据库崩溃概率的数据访问方法,包括如下步骤:
S1:将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
S2:将状态数值类型进行标记并存储在应用缓存中;
S3:在持久化访问时,拦截数据访问的接口调用;
S4:将持久化对象类中标记的状态数值类型进行解析分离;
S5:将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问。其中数据库驱动项目中使用的是ORM框架中提供的访问驱动,而应用缓存则需要开发者自己定义,其中缓存数据驱动中为了保障应用内数据访问需求,状态数值类型包括数值类型和状态类型,数值类型主要考虑到读写的原子性,状态类型数据则考虑到并发更新以及查询事务策略等。
通过定义持久化对象类的属性种类为状态数值类型和基础数据类型,在保持现有持久化层不变的情况下,扩展数据持久化层的架构方式,允许开发者在数据持久化统一接口中纳入多种类型数据源,在保持数据持久化对象不变的情况下,在调用此对象类型的数据接口时,完成从应用缓存以及数据库同时进行访问操作的过程,将持续变动数据与传统数据库进行存储分离,从而达到降低数据库IO操作的目的,进而降低在服务器崩溃时,数据库被损坏的风险。
依据标记以及访问模式,对持久化对象的数据进行区分访问,将原本的单线程访问数据库扩展为双线程,分别从应用缓存以及数据库双向获取持久化对象数据,依据访问模式的设定,控制访问线程的活动范围,增强数据访问的灵活性。
需要说明的是,基础数据类型包括持久化对象的静态信息;其中,静态信息包括名称、ID、备注信息;
状态数值类型包括运行过程中不断进行更新的数据信息。
在有些实施例中,该方法还包括:
定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。由于同一组应用数据根据类型的不同分为状态数值类型和基础数据类型进行分开存储分开访问,访问完成后返回的数据需要进行统一返回这就需要同基础数据存储时的ID是相同的设置,方便对数据进行访问。
在有些实施例中,将持久化对象类中标记的状态数值类型进行解析分离的步骤包括:
S41:解析持久化对象类中标记为状态数值类型的数据;
S42:将这类数据进行重新分组;
S43:复制数据对象ID并复制出新的数据承载对象。状态数值类型,其主要特性是在基础数据完备的情况下,其值信息允许不存在或为默认值,并且会随运行一直进行更新;进行数据标注后,在进行持久化数据接口调用时,会解析持久化类中标记为状态数值类型的数据,将这类数据进行重新分组,并复制对象ID,复制出新的数据承载对象。
在有些实施例中,将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问的步骤包括:
将分离后的数据对象根据接口中配置的数据访问模式及对象ID从应用缓存或是数据库中进行数据操作;
对数据进行操作后,将返回结果填充至统一的数据承载对象,再由接口统一返回。
每个持久化POJO类数据操作实例对应2个数据处理线程,其中一个负责与数据库进行交互用于访问基础数据类型,执行正常的数据操作访问操作,另一个则负责根据持久化POJO属性解析出的缓存配置,访问应用缓存相应的数据,进行数据操作或是查询;同时线程将对接口中的数据载体,利用java反射,对操作返回结果进行填充,保证数据完整性;同时,接受通过接口进行配置启用,存在‘仅缓存’,‘仅基础数据‘’基础数据缓存加速’三种访问模式,其效果如字面所示含义,默认使用’基础数据缓存加速’模式,依据基础数据唯一标识,维护持久化对象的应用缓存数据,既应用缓存与数据库同时访问操作。
在有些实施例中,将基础数据类型数据存储在数据库中,将状态数值类型数据存储入在应用缓存中的步骤包括:
将状态数值类型数据存储在应用缓存时,记录存储时间;
每进行一次数据访问,将数据的存储时间更新为当前访问的时间。方便查找设定时间段内未被访问的数据。
在有些实施例中,该方法还包括:
设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。以节省内存空间。以达到缓存内数值具有实时性以及有效性的效果。在初始化时会激活一个数据校验线程,对于周期性检测应用缓存数据的访问频繁度,依据判定规则进行数据清理(规则根据项目需求进行自定义);在这里,若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。额外的,依据定义,应用缓存数据内主要存在数值状态类型的数据具体包括数值类型以及状态类型数据,在应用初始化时,数值类型默认填充0,状态类型数据不可为空,故需要根据需求在初始化时进行默认数据填充,而在后续运行时,由于外部机制更新,通过以上规则设定,以达到缓存内数值具有实时性以及有效性的效果。
如图2所示,本发明实施例提供一种降低数据库崩溃概率的数据访问系统,包括分类存储模块、标记模块、调用处理模块、持久化对象类解析模块、访问处理模块;
分类存储模块,用于将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
标记模块,用于将状态数值类型进行标记并存储在应用缓存中;
调用处理模块,用于在持久化数据访问时,拦截数据访问的接口调用;
持久化对象类解析模块,用于将持久化对象类中标记的状态数值类型进行解析分离;
访问处理模块,用于将分离出的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问。
依据持久化数据特性,将数据分为基础数据类型和状态数值类型,其中状态数值类型定义为,在应用生命周期内,持续根据外部才做进行更新的数据,基础数据类型则为非特定情况,不会进行频繁更新的数据,针对状态数值类型进行标记,并在数据持久化访问Dao层进行拦截解析,使用持久化对象类解析模块将请求中状态数值类型的数据进行筛检,根据接口中配置的数据访问模式,访问处理模块从应用健存或是数据库中进行数据操作,对数据进行操作后,将返回结果填充至统一的数据载体对象,再由接口返回,从而实现降低数据库写入的同时,兼容原有数据业务的目的。来达到降低状态数值类数据更新而触发的数据库IO,避免在不可抗力发生时,服务器崩溃导致的IO被异常中断,数据库表结构被损坏的风险,同时又可兼容原有业务流程中的数据访问要求,降低变动带来的代码维护量,既提升了系统稳定性又提升了开发的易维护性。
持久化对象类解析模块,在拦截数据持久化访问Dao层请求时,获取持久化POJO对象的类信息,解析对象中标记为状态数值类型的属性名称等信息,并记录至其内设应用缓存,保留标记信息,在进行后续访问时,降低解析数据带来的延时。
访问处理模块,设置数据处理线程组,分为应用缓存访问线程以及数据库访问线程,数据库访问线程保留应用中原有的对接数据库的操作流程,应用缓存访问线程则引用应用缓存连接实例,依据持久化对象类解析模块的解析结果,对状态数值类数据进行更新或是查询,最后将执行结果通过java反射机制载入数据载体后由Dao层接口返回,额外的,两个线程可通过额外的访问模式配置激活运行,模式分别为仅缓存、仅数据库以及双向访问三种,分别对应只激活缓存访问线程、只激活数据库访问线程以及同时激活。
在有些实施例中,该系统还包括存储结构定义模块;
存储结构定义模块,用于定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。依据基础数据类持久化标识为唯一标识,应用缓存中定义数据存储结构以数组的结构维护持久化对象的缓存数据;
在有些实施例中,标记模块包括标记单元、存储单元和存储时间更新单元;
标记单元,用于将状态数值类型进行标记;
存储单元,用于将状态数值类型数据存储在应用缓存时,记录存储时间;
存储时间更新单元,用于每进行一次数据访问,将数据的存储时间更新为当前访问的时间;
该系统还包括应用缓存处理模块,所述的应用缓存处理模块包括设置单元和数据处理单元;
设置单元,用于设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
数据处理单元,用于若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。
应用缓存用于记录状态数值类数据信息,采用持久化数据对象的唯一ID作为数据检索标识,数据结构采用数组方式进行存储和管理,在系统初始化同时进行初始化,初始化值分别为,数值类为0,状态类则需配置默认值,在初始化之后会激活缓存校验线程,周期性检测数据访问频率,根据设定规则进行缓存清理,此外,对数据处理线程组暴露缓存数据访问接口。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种降低数据库崩溃概率的数据访问方法,其特征在于,包括如下步骤:
将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
将状态数值类型进行标记并存储在应用缓存中;
在持久化访问时,拦截数据访问的接口调用;
将持久化对象类中标记的状态数值类型进行解析分离;
将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存同时进行数据的访问。
2.根据权利要求1所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,基础数据类型包括持久化对象的静态信息;其中,静态信息包括名称、ID、备注信息;
状态数值类型包括运行过程中不断进行更新的数据信息。
3.根据权利要求2所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,该方法还包括:
定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。
4.根据权利要求3所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,将持久化对象类中标记的状态数值类型进行解析分离的步骤包括:
解析持久化对象类中标记为状态数值类型的数据;
将这类数据进行重新分组;
复制数据对象ID并复制出新的数据承载对象。
5.根据权利要求4所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,将分离后的数据对象分别通过数据访问驱动接入数据库以及应用缓存进行数据的访问的步骤包括:
将分离后的数据对象根据接口中配置的数据访问模式及对象ID从应用缓存或是数据库中进行数据操作;
对数据进行操作后,将返回结果填充至统一的数据承载对象,再由接口统一返回。
6.根据权利要求1所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,将基础数据类型数据存储在数据库中,将状态数值类型数据存储入在应用缓存中的步骤包括:
将状态数值类型数据存储在应用缓存时,记录存储时间;
每进行一次数据访问,将数据的存储时间更新为当前访问的时间。
7.根据权利要求6所述的一种降低数据库崩溃概率的数据访问方法,其特征在于,该方法还包括:
设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。
8.一种降低数据库崩溃概率的数据访问系统,其特征在于,包括分类存储模块、标记模块、调用处理模块、持久化对象类解析模块、访问处理模块;
分类存储模块,用于将持久化对象类的属性分为基础数据类型和状态数值类型,并将基础数据类型的数据存储在数据库中;
标记模块,用于将状态数值类型进行标记并存储在应用缓存中;
调用处理模块,用于在持久化数据访问时,拦截数据访问的接口调用;
持久化对象类解析模块,用于将持久化对象类中标记的状态数值类型进行解析分离;
访问处理模块,用于将分离出的数据对象分别通过数据访问驱动接入数据库以及应用缓存同时进行数据的访问。
9.根据权利要求8所述的一种降低数据库崩溃概率的数据访问系统,其特征在于,该系统还包括存储结构定义模块;
存储结构定义模块,用于定义应用缓存的数据存储结构保持应用缓存内数据对象ID与数据库保持一致。
10.根据权利要求8所述的一种降低数据库崩溃概率的数据访问系统,其特征在于,标记模块包括标记单元、存储单元和存储时间更新单元;
标记单元,用于将状态数值类型进行标记;
存储单元,用于将状态数值类型数据存储在应用缓存时,记录存储时间;
存储时间更新单元,用于每进行一次数据访问,将数据的存储时间更新为当前访问的时间;
该系统还包括应用缓存处理模块,所述的应用缓存处理模块包括设置单元和数据处理单元;
设置单元,用于设置数据校验线程对应用缓存进行扫描获取数据的存储时间;
数据处理单元,用于若当前时间与获取的存储时间的差值大于设定的时间阈值,将该存储时间对应的数据予以清除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922057.2A CN111966717B (zh) | 2020-09-04 | 2020-09-04 | 一种降低数据库崩溃概率的数据访问方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922057.2A CN111966717B (zh) | 2020-09-04 | 2020-09-04 | 一种降低数据库崩溃概率的数据访问方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966717A CN111966717A (zh) | 2020-11-20 |
CN111966717B true CN111966717B (zh) | 2022-06-14 |
Family
ID=73392181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010922057.2A Active CN111966717B (zh) | 2020-09-04 | 2020-09-04 | 一种降低数据库崩溃概率的数据访问方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966717B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490672B (zh) * | 2022-04-06 | 2022-06-21 | 成都九洲电子信息系统股份有限公司 | 一种表格数据输入处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
CN109918359A (zh) * | 2019-01-18 | 2019-06-21 | 华南理工大学 | 基于swarm的数据库服务持久化方法及系统 |
-
2020
- 2020-09-04 CN CN202010922057.2A patent/CN111966717B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
CN109918359A (zh) * | 2019-01-18 | 2019-06-21 | 华南理工大学 | 基于swarm的数据库服务持久化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111966717A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US9547685B2 (en) | Halloween protection in a multi-version database system | |
US7904493B2 (en) | Method and system for object age detection in garbage collection heaps | |
EP2797013B1 (en) | Database update execution according to power management schemes | |
US7512765B2 (en) | System and method for auditing memory | |
US20060271557A1 (en) | Database Caching and Invalidation Based on Detected Database Updates | |
US8768896B2 (en) | Setting information database management | |
KR20140041546A (ko) | 데이터 보강 제안 기법 | |
KR101713362B1 (ko) | 분산된 지속 인스턴스들을 위한 락 해결 방법 | |
US9390111B2 (en) | Database insert with deferred materialization | |
CN111966717B (zh) | 一种降低数据库崩溃概率的数据访问方法及系统 | |
KR20040027270A (ko) | 데이터베이스 시스템 모니터링 방법 | |
CN113515317A (zh) | 数据恢复的方法、装置 | |
WO2023249673A1 (en) | Version control interface supporting time travel access of a data lake | |
US20210406247A1 (en) | Module expiration management | |
EP3783502A1 (en) | System for persisting application program data objects | |
CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN113849475A (zh) | 一种基于ELK的统一管理k8s环境中应用日志的方法 | |
CN112364071A (zh) | 货值数据分析方法及系统 | |
Borodin et al. | Database index debug techniques: A case study | |
Jensen et al. | Multitemporal conditional schema evolution | |
US20100257152A1 (en) | Enhanced identification of relevant database indices | |
CN115328878B (zh) | 日志数据存储系统、方法、设备及介质 | |
US20240256398A1 (en) | Redo avoidance during database recovery | |
CN118838974A (zh) | 一种模板化的业务缓存处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |