数据存储方法、装置、服务器和存储介质制造方法及图纸

技术编号:29788391 阅读:23 留言:0更新日期:2021-08-24 18:06
本发明专利技术实施例提供一种数据存储方法、装置、服务器和存储介质,该方法包括:向内存中写入第一数据;若内存中已写入的第一数据达到预设数据量,则生成第一记录信息,第一记录信息中包括预设数据量的第一数据在内存中对应的第一标识信息及数据库中已存储的第二数据在数据库中对应的第二标识信息。将预设数据量的第一数据复制到数据库,生成第二记录信息,第二记录信息中包括第二标识信息以及与预设数据量的第一数据对应的第三标识信息,第三标识信息是预设数据量的第一数据在数据库中对应的标识信息。根据第一记录信息和第二记录信息进行数据读写事务的处理。采用该方案,能保证存储数据的过程不影响数据读写事务的正常运行。

【技术实现步骤摘要】
数据存储方法、装置、服务器和存储介质
本专利技术涉及数据处理
,尤其涉及一种数据存储方法、装置、服务器和存储介质。
技术介绍
在向磁盘写入数据之前,可以先将数据写入到内存中。当内存中的数据积累到一定量之后,会触发将内存中的数据转移到磁盘中,此操作可以称为数据转移(DeltaMerge)。在DeltaMerge的过程中,被转移的数据暂时会处于既不属于内存也不属于磁盘的存储空间中。此时,如果接收到数据读写事务,会发生无法查询到被转移的数据的情况,因此DeltaMerge的过程会影响数据读写事务的正常运行。
技术实现思路
本专利技术实施例提供一种数据存储方法、装置、设备和存储介质,以保证向数据库存储数据的过程不影响数据读写事务的正常运行。第一方面,本专利技术实施例提供一种数据存储方法,所述方法包括:向内存中写入第一数据,所述第一数据是待存储到数据库中的数据;若所述内存中已写入的第一数据达到预设数据量,则生成第一记录信息,所述第一记录信息中包括第一标识信息和第二标识信息,所述第一标识信息是所述预设数据量的第一数据在所述内存中对应的标识信息,所述第二标识信息是所述数据库中已存储的第二数据在所述数据库中对应的标识信息;将所述预设数据量的第一数据复制到所述数据库;生成第二记录信息,所述第二记录信息中包括所述第二标识信息以及与所述预设数据量的第一数据对应的第三标识信息,所述第三标识信息是所述预设数据量的第一数据在所述数据库中对应的标识信息;根据所述第一记录信息和所述第二记录信息,进行数据读写事务的处理。第二方面,本专利技术实施例提供一种数据存储装置,所述装置包括:写入模块,用于向内存中写入第一数据,所述第一数据是待存储到数据库中的数据;生成模块,用于当所述内存中已写入的第一数据达到预设数据量时,生成第一记录信息,所述第一记录信息中包括第一标识信息和第二标识信息,所述第一标识信息是所述预设数据量的第一数据在所述内存中对应的标识信息,所述第二标识信息是所述数据库中已存储的第二数据在所述数据库中对应的标识信息;复制模块,用于将所述预设数据量的第一数据复制到所述数据库;所述生成模块,用于生成第二记录信息,所述第二记录信息中包括所述第二标识信息以及与所述预设数据量的第一数据对应的第三标识信息,所述第三标识信息是所述预设数据量的第一数据在所述数据库中对应的标识信息;处理模块,用于根据所述第一记录信息和所述第二记录信息,进行数据读写事务的处理。第三方面,本专利技术实施例提供一种服务器,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行本专利技术实施例第一方面所述的数据存储方法。第四方面,本专利技术实施例提供一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被服务器的处理器执行时,使所述处理器执行本专利技术实施例第一方面所述的数据存储方法。通过本专利技术实施例提供的方法,在将内存中的数据存储到数据库的过程中,当内存中的数据达到预设数据量时,以该预设数据量为单位,采用复制的方式,将内存中预设数据量的数据复制到数据库中,使得一份数据还保留在内存中,仅对另一份数据进行转移,这样还是能够在内存中查询到当前被转移的数据的,避免了在数据转移过程中无法查询到被转移的数据的问题。在本专利技术实施例提供的方法中还可以通过第一记录信息和第二记录信息记录数据转移过程中以及数据转移完成后内存及数据库中存储的数据标识信息(反映了数据的存储位置),从而,当某数据读写事务被触发时,可以基于该数据读写事务的触发时间,利用相应的记录信息执行数据读写事务,以便完成事务提交。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种数据存储方法的流程图;图2为本专利技术实施例提供的一种生成记录信息的示意图;图3为本专利技术实施例提供的一种数据复制方法的流程图;图4本专利技术实施例提供的一种存储格式转换的示意图;图5本专利技术实施例提供的一种数据存储方法的示意图;图6为本专利技术实施例提供的一种数据存储装置的结构示意图;图7为本专利技术实施例提供的一种服务器的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。先对本文中涉及到的一个概念进行说明:数据读写事务,也可以简称为事务,是为了实现特定的服务功能而访问数据库的最小逻辑工作单位,由一个操作序列构成。只有这个操作序列包含的全部操作都成功完成,才能使得数据库从一种状态转换为另一种状态。如果这个操作序列中的任意一个操作发生错误,那么就需要回滚之前已经完成的操作。也就是说,同一个事务中的所有操作,要么全都正确执行,要么全都不要执行。本专利技术实施例提供的事务处理方法可以由服务器来执行,该服务器作为数据库的硬件载体,具体地,可以在该服务器中部署一种应用程序、启动某个进程来执行该事务处理方法。本专利技术实施例提供的数据存储方法可以应用于向数据库中存储数据的场景。在需要向数据库中存储数据时,数据不是直接被存储到数据库中的,而是首先会被写入到内存中,每当内存中写入的数据达到一定量时,会触发将一定量的数据从内存中转移到数据库中的数据转移操作。相关技术中如果触发了数据转移操作,且在数据转移的过程中接收到了数据读写事务,则被转移的这部分数据是无法读取的,这样会造成数据的缺失,就不能成功执行数据读写事务,概括而言,数据存储的过程会对数据读写事务的执行过程造成干扰。本专利技术实施例提供的数据存储方法可以避免这一问题,使得数据存储的过程对数据读写事务的执行过程不造成干扰。下面结合以下一些本文档来自技高网...

【技术保护点】
1.一种数据存储方法,所述方法包括:/n向内存中写入第一数据,所述第一数据是待存储到数据库中的数据;/n若所述内存中已写入的第一数据达到预设数据量,则生成第一记录信息,所述第一记录信息中包括第一标识信息和第二标识信息,所述第一标识信息是所述预设数据量的第一数据在所述内存中对应的标识信息,所述第二标识信息是所述数据库中已存储的第二数据在所述数据库中对应的标识信息;/n将所述预设数据量的第一数据复制到所述数据库;/n生成第二记录信息,所述第二记录信息中包括所述第二标识信息以及与所述预设数据量的第一数据对应的第三标识信息,所述第三标识信息是所述预设数据量的第一数据在所述数据库中对应的标识信息;/n根据所述第一记录信息和所述第二记录信息,进行数据读写事务的处理。/n

【技术特征摘要】
1.一种数据存储方法,所述方法包括:
向内存中写入第一数据,所述第一数据是待存储到数据库中的数据;
若所述内存中已写入的第一数据达到预设数据量,则生成第一记录信息,所述第一记录信息中包括第一标识信息和第二标识信息,所述第一标识信息是所述预设数据量的第一数据在所述内存中对应的标识信息,所述第二标识信息是所述数据库中已存储的第二数据在所述数据库中对应的标识信息;
将所述预设数据量的第一数据复制到所述数据库;
生成第二记录信息,所述第二记录信息中包括所述第二标识信息以及与所述预设数据量的第一数据对应的第三标识信息,所述第三标识信息是所述预设数据量的第一数据在所述数据库中对应的标识信息;
根据所述第一记录信息和所述第二记录信息,进行数据读写事务的处理。


2.根据权利要求1所述的方法,所述将所述预设数据量的第一数据复制到所述数据库,包括:
对所述预设数据量的第一数据进行存储格式转换;
将经过存储格式转换的数据复制到所述数据库中。


3.根据权利要求2所述的方法,所述预设数据量的第一数据包括多行数据,每行数据包括分别与多个属性对应的属性值,所述对所述预设数据量的第一数据进行存储格式转换,包括:
将所述多行数据中对应于相同属性的属性值进行组合,得到多个数据块;
所述将经过存储格式转换的数据复制到所述数据库中,包括:
确定所述多个数据块在所述数据库中分别对应的存储位置,所述多个数据块对应的存储位置位于同一行;
将所述多个数据块分别存储到各自对应的存储位置上。


4.根据权利要求3所述的方法,所述方法还包括:
获取所述多个数据块各自对应的数据统计信息;
将所述多个数据块各自对应的数据统计信息对应地存储到所述多个数据块各自对应的存储位置上。


5.根据权利要求4所述的方法,所述方法还包括:
响应于与所述多个数据块对应的数据读写事务,根据所述数据统计信息滤除不满足所述数据读写事务的数据块。


6.根据权利要求2所述的方法,所述方法还包括:
确定所述预设数据量的第一数据所对应的服务的查询特征信息;
根据所述查询特征信息,确定是否对所述预设数据量的第一数据进行存储格式转换。


7.根据权利要求1所述的方法,所述将所述预设数据量的第一数据复制到所述数据库,包括:
对所述预设数据量的第一数据进行压缩;
将压缩后的数据复制到所述数据库。...

【专利技术属性】
技术研发人员:阮羽彬吴迪陈世平梁宇坤
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1