CN113868231A - 数据结构的更新方法及装置 - Google Patents
数据结构的更新方法及装置 Download PDFInfo
- Publication number
- CN113868231A CN113868231A CN202111464681.3A CN202111464681A CN113868231A CN 113868231 A CN113868231 A CN 113868231A CN 202111464681 A CN202111464681 A CN 202111464681A CN 113868231 A CN113868231 A CN 113868231A
- Authority
- CN
- China
- Prior art keywords
- data
- data structure
- information
- change
- changed
- 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.)
- Granted
Links
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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种数据结构的更新方法及装置,该方法包括:接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据;根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项;通过变更待变更的信息项,更新目标应用中的数据结构。通过该方式,采用版本控制数据来指示数据结构的变更类型,从而基于不同的变更类型更新对应的信息项,保证了不同版本的数据结构的兼容性。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种数据结构的更新方法及装置。
背景技术
物联网(Internet of Things,IoT)嵌入式软件产品,通常需要对***的配置数据、状态数据等进行数据结构的设计。不同的IoT嵌入式软件产品,可以根据软件功能、软件模块进行针对性的数据结构设计。
相关技术中,IoT嵌入式软件产品的数据结构很少具有继承性。因此,当产品需求变更从而导致的数据结构变更时,可能会导致IoT嵌入式软件产品的不同版本之间无法兼容。
发明内容
本申请实施例提供一种数据结构的更新方法及装置,以解决现有技术中无法保证不同版本的数据结构的兼容性的技术问题。
第一方面,本申请实施例提供一种数据结构的更新方法,所述方法包括:
接收终端设备发送的更新指示,所述更新指示用于调整目标应用中的数据结构的版本控制数据;
根据调整后的版本控制数据指示的所述数据结构的变更类型,确定所述数据结构的头信息中的待变更的信息项;
通过变更所述待变更的信息项,更新所述目标应用中的数据结构;
根据所述数据结构的索引设置或获取不同数据模块中的数据结构。
一种可选的实施方式中,所述数据结构的变更类型包括删除所述数据结构中的成员数据、在所述数据结构的成员数据中***新增的成员数据、在所述数据结构的成员数据尾部***所述新增的成员数据。
一种可选的实施方式中,所述待变更的信息项包括版本信息和数据大小信息。
一种可选的实施方式中,所述确定所述数据结构的头信息中的待变更的信息项,包括:
若所述变更类型为删除所述数据结构中的成员数据或在所述数据结构的成员数据中***新增的成员数据,则确定所述待变更的信息项为所述版本信息。
一种可选的实施方式中,所述通过变更所述待变更的信息项,更新所述目标应用中的数据结构,包括:
在所述数据结构的头信息中使用变更后的版本信息替换变更前的版本信息;
使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
一种可选的实施方式中,所述确定所述数据结构的头信息中的待变更的信息项,包括:
若所述变更类型为在所述数据结构的成员数据尾部***所述新增的成员数据,则确定所述待变更的信息项为所述数据大小信息。
一种可选的实施方式中,所述通过变更所述待变更的信息项,更新所述目标应用中的数据结构,包括:
根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值;
根据所述变更前的数据大小信息和变更后的数据大小信息,确定所述数据结构的数据增量;
根据所述数据增量,使用默认值更新所述新增的成员数据。
一种可选的实施方式中,所述数据结构的头信息中还包括校验信息,所述校验信息用于对所述数据结构的完整性进行循环冗余校验。
一种可选的实施方式中,所述数据模块是根据数据的类型划分的。
第二方面,本申请实施例提供一种数据结构的更新装置,所述装置包括:
接收模块,用于接收终端设备发送的更新指示,所述更新指示用于调整目标应用中的数据结构的版本控制数据;
确定模块,用于根据调整后的版本控制数据指示的所述数据结构的变更类型,确定所述数据结构的头信息中的待变更的信息项;
更新模块,用于通过变更所述待变更的信息项,更新所述目标应用中的数据结构;
调用模块,用于根据所述数据结构的索引设置或获取不同数据模块中的数据结构。
一种可选的实施方式中,所述数据结构的变更类型包括删除所述数据结构中的成员数据、在所述数据结构的成员数据中***新增的成员数据、在所述数据结构的成员数据尾部***所述新增的成员数据。
一种可选的实施方式中,所述待变更的信息项包括版本信息和数据大小信息。
一种可选的实施方式中,所述确定模块,具体用于若所述变更类型为删除所述数据结构中的成员数据或在所述数据结构的成员数据中***新增的成员数据,则确定所述待变更的信息项为所述版本信息。
一种可选的实施方式中,所述更新模块,具体用于在所述数据结构的头信息中使用变更后的版本信息替换变更前的版本信息;使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
一种可选的实施方式中,所述确定模块,具体用于若所述变更类型为在所述数据结构的成员数据尾部***所述新增的成员数据,则确定所述待变更的信息项为所述数据大小信息。
一种可选的实施方式中,所述更新模块,具体用于根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值;根据所述变更前的数据大小信息和变更后的数据大小信息,确定所述数据结构的数据增量;根据所述数据增量,使用默认值更新所述新增的成员数据。
一种可选的实施方式中,所述数据结构的头信息中还包括校验信息,所述校验信息用于对所述数据结构的完整性进行循环冗余校验。
一种可选的实施方式中,所述数据模块是根据数据的类型划分的。
第三方面,本申请还提供一种电子设备,包括:处理器和存储器;
其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如第一方面的方法。
第四方面,本申请还提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如第一方面的方法。
本申请实施例提供的数据结构的更新方法及装置,首先接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。随后,根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。最后,通过变更待变更的信息项,更新目标应用中的数据结构。通过该方式,采用版本控制数据来指示数据结构的变更类型,从而基于不同的变更类型更新对应的信息项,保证了不同版本的数据结构的兼容性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据结构的更新方法的应用场景示意图;
图2为本申请实施例提供的一种数据结构的更新方法的流程示意图;
图3为本申请实施例提供的一种数据结构的示意图;
图4为本申请实施例提供的一种数据结构的调用示意图;
图5为本申请实施例提供的一种***配置的数据分布示意图;
图6为本申请实施例提供的另一种***配置的数据分布示意图;
图7为本申请实施例提供的一种数据结构的变更示意图;
图8为本申请实施例提供的另一种数据结构的变更示意图;
图9为本申请实施例提供的另一种数据结构的更新方法的流程示意图;
图10为本申请实施例提供的再一种数据结构的更新方法的流程示意图;
图11为本申请实施例提供的一种现有的数据结构的配置方式的示意图;
图12为本申请实施例提供的一种数据结构的配置方式的示意图;
图13为本申请实施例提供的一种数据结构的更新装置的结构示意图;
图14为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
物联网(Internet of Things,IoT)嵌入式软件产品,通常需要对***的配置数据、状态数据等进行数据结构的设计。不同的IoT嵌入式软件产品,可以根据软件功能、软件模块进行针对性的数据结构设计。
相关技术中,IoT嵌入式软件产品的数据结构很少具有继承性。因此,当产品需求变更从而导致的数据结构变更时,可能会导致IoT嵌入式软件产品的不同版本之间无法兼容。
为解决上述技术问题,本申请实施例提供一种数据结构的更新方法及装置,采用版本控制数据来指示数据结构的变更类型,从而基于不同的变更类型更新对应的信息项,保证了不同版本的数据结构的兼容性。
下面首先对本申请实施例涉及的应用场景进行说明。
图1为本申请实施例提供的一种数据结构的更新方法的应用场景示意图。如图1所示,当需要对数据结构进行更新时,终端设备101可以向服务器102发送更新请求,随后,服务器102可以基于更新请求调整控制数据,并根据版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。最后,服务器102通过变更待变更的信息项,更新数据结构。
其中,终端设备101可以为平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、智慧家庭(smart home)中的无线终端等。本申请实施例中,用于实现终端的功能的装置可以是终端,也可以是能够支持终端实现该功能的装置,例如芯片***,该装置可以被安装在终端中。本申请实施例中,芯片***可以由芯片构成,也可以包括芯片和其他分立器件。
服务器102可以是但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云。其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。
应理解,本申请技术方案的应用场景可以是图1中的场景,但不限于此,还可以应用于其他需要进行文本分类的场景中。
可以理解,上述数据结构的更新方法可以通过本申请实施例提供的数据结构的更新装置实现,数据结构的更新装置可以是某个设备的部分或全部,例如为服务器或服务器的芯片。
下面以集成或安装有相关执行代码的服务器为例,以具体地实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种数据结构的更新方法的流程示意图,本实施例涉及的是服务器如何更新数据结构的过程。如图2所示,该方法包括:
S201、接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。
在本申请中,当需要对数据结构进行更新时,终端设备可以向服务器发送更新指示,来指示服务器调整目标应用中的数据结构的版本控制数据。
其中,上述目标应用可以为任意应用,例如IoT嵌入式软件。
应理解,本申请实施例对于数据结构不做限制,可以为任意预设结构的数据。示例性的,图3为本申请实施例提供的一种数据结构的示意图,如图3所示,本申请提供的数据结构由头信息和成员数据组成。头信息中可以包括该数据结构的各个信息项,例如,可以包括版本信息(kv_version)、数据大小信息(kv_size)和校验信息(kv_crc16)等。其中,版本信息用于指示该数据结构的版本,数据大小信息用于指示成员数据的大小,校验信息用于对数据结构的完整性进行循环冗余校验,从而保证数据的完整性。
在一些实施例中,头信息中还可以包含函数指针信息项(change_notify_t),通过指向对应数据的修改通知函数,当通过应用程序接口(Application ProgrammingInterface,API)接口对该数据结构做变更时,会自动调用该函数,实现对相关注册函数地调用,以实现订阅机制。当数据结构不需要订阅机制功能时,可以设置函数指针信息项无效。
在一些实施例中,服务器可以根据数据结构的索引(KEY)设置或获取不同数据模块中的数据结构。其中,数据模块是根据数据的类型划分的。
应理解,本申请实施例对于数据结构的类型不做限制,在一些实施例中,数据结构可以为数字密码。本申请实施例对于如何确定数据结构的索引也不做限制,在一些实施例中,可以通过枚举定义给各个数据结构分配一个唯一索引。其中,数字密码可以包括密码有效标记和数字密码内容,该数字密码可以被配置到配置状态的数据结构中,以便在设置或获取数据结构时进行匹配。
示例性的,图4为本申请实施例提供的一种数据结构的调用示意图。如图4所示,对***的配置数据和状态数据进行框架设计形成数据结构后,可给不同的数据结构设置不同的KEY,从而可以基于数据结构对应的KEY来获取或设置对应模块的数据结构。在调用数据结构的过程中,API接口可以保持不变,仅通过对应的KEY来区分,从而使得代码接口更加清晰。
在一些实施例中,不同的数据结构可以根据数据的类型添加至不同的数据模块中,构成该数据模块中的数据结构的一部分,并通过相应的KEY来标识该数据结构,每一个数据结构在该数据模块中的定义与否,都有相应的宏控来决定,因此可以通过配置文件来灵活地选择、配置相应的数据结构。其中,数据的类型可以根据配置、状态、用户等信息来划分。
应理解,本申请实施例对于版本控制数据也不做限制,在一些实施例中,版本控制数据也可以采用数据结构的形式,通过版本控制数据可以对***配置的存储空间布局进行管理,从而指示的数据结构的变更类型,以增加项目的灵活性。
示例性的,版本控制数据中可以包含数据结构的个数(item_count)和数据结构的大小(item_size)。在非易失性设备中,item_size用于表示每个数据结构占据的空间,当item_size为0时则表示各个数据结构连续存储(不支持扩展)。
需要说明的是,数据结构在非易失性设备和随机存取存储设备中的存储方式不同。图5为本申请实施例提供的一种***配置的数据分布示意图,图6为本申请实施例提供的另一种***配置的数据分布示意图。如图5所示,嵌入式产品,由于硬件资源有限,当***配置在随机存取存储设备(Random Access Memory,RAM)中时,以各个数据结构的实际大小占据内存空间。如图6所示,当***配置在非易失性设备(non-volatile,NV)中时,以固定大小存储,以支持数据版本的兼容性。
S202、根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。
在本步骤中,当服务器获取到调整后的数据结构的版本控制数据后,可以根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。
其中,数据结构的变更类型可以包括删除数据结构中的成员数据、在数据结构的成员数据中***新增的成员数据、在数据结构的成员数据尾部***新增的成员数据。相应的,待变更的信息项包括版本信息和数据大小信息。
在一些实施例中,若变更类型为删除数据结构中的成员数据或在数据结构的成员数据中***新增的成员数据,则服务器可以确定待变更的信息项为版本信息。
在另一些实施例中,若变更类型为在数据结构的成员数据尾部***新增的成员数据,则服务器可以确定待变更的信息项为数据大小信息。
S203、通过变更待变更的信息项,更新目标应用中的数据结构。
在本步骤中,当确定数据结构的头信息中的待变更的信息项后,服务器可以通过变更待变更的信息项,来更新目标应用中的数据结构。
应理解,本申请实施例对于如何新数据结构不做限制,服务器可以基于不同的待变更的信息项,采用不同的数据结构的变更方式。
在一些实施例中,若待变更的信息项为版本信息,则服务器可以先在数据结构的头信息中使用变更后的版本信息替换变更前的版本信息。随后,使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
示例性的,图7为本申请实施例提供的一种数据结构的变更示意图。如图7所示,当在数据结构的成员数据中***新增的成员数据“手机号码”时,旧版本的数据无法兼容,导致其中的成员数据“身高”和“体重”无法保证数据安全。此时,可以通过将版本信息由“kv_version=1”改为“kv_version=2”,来变更整个数据结构,以保证新版本下的用户信息恢复到默认值。
需要说明的是,当变更版本信息时,也可以相应修改数据大小信息,本申请实施例对此不做限制。
在另一些实施例中,若待变更的信息项为数据大小信息,则服务器可以先根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值。随后,服务器根据变更前的数据大小信息和变更后的数据大小信息,确定数据结构的数据增量。最后,服务器根据数据增量,使用默认值更新新增的成员数据。
在数据结构的头信息中使用变更后的数据大小信息替换变更前的数据大小信息,随后,服务器根据变更后的数据大小信息,在数据结构的数据成员尾部末尾添加新增的成员数据。
示例性的,图8为本申请实施例提供的另一种数据结构的变更示意图。如图8所示,当在数据结构的成员数据尾部中***新增的成员数据“手机号码”时,原有的成员数据所表示的用户信息中的“出生年”、“月”、“日”、“身高”和“体重”依旧兼容,此时可以通过将数据大小信息由“kv_size=8”修改为“kv_size=20”,从而恢复到默认数据,以保证前后两个版本的数据兼容。
本申请中,通过上述数据结构的更新方法,首先可以使得不同项目的数据结构有继承性和可复用性,一些公共的数据结构,可在不同项目中复用。其次,在项目开发过程中,可以灵活变更数据结构,不会导致软件版本兼容问题。再次,提高了可维护性,使得各个数据结构单独维护、结构清晰。最后,增强了可扩展性,支持数据结构的新增、删除、修改功能。
本申请实施例提供的数据结构的更新方法,首先接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。随后,根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。最后,通过变更待变更的信息项,更新目标应用中的数据结构。通过该方式,采用版本控制数据来指示数据结构的变更类型,从而基于不同的变更类型更新对应的信息项,不但保证了不同版本的数据结构的兼容性,也可以保证数据在RAM中占用最小化。
在上述实施例的基础上,下面对于上述基于版本信息的数据结构更新方式进行说明。图9为本申请实施例提供的另一种数据结构的更新方法的流程示意图,如图9所示,该数据结构的更新方法包括:
S301、接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。
S302、若调整后的版本控制数据指示的变更类型为删除数据结构中的成员数据或在数据结构的成员数据中***新增的成员数据,则确定待变更的信息项为版本信息。
S303、在数据结构的头信息中使用变更后的版本信息替换变更前的版本信息。
S304、使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
S301-S304的技术名词、技术效果、技术特征,以及可选实施方式,可参照图2所示的S201-S203理解,对于重复的内容,在此不再累述。
在上述实施例的基础上,下面对于上述基于数据大小信息的数据结构更新方式进行说明。图10为本申请实施例提供的再一种数据结构的更新方法的流程示意图,如图10所示,该数据结构的更新方法包括:
S401、接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。
S402、若调整后的版本控制数据指示的变更类型为在数据结构的成员数据尾部***新增的成员数据,则确定待变更的信息项为数据大小信息。
S403、根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值。
S404、根据变更前的数据大小信息和变更后的数据大小信息,确定数据结构的数据增量。
S405、根据数据增量,使用默认值更新新增的成员数据。
S401-S405的技术名词、技术效果、技术特征,以及可选实施方式,可参照图2所示的S201-S203理解,对于重复的内容,在此不再累述。
在上述实施例的基础上,下面对于数据结构进行进一步说明。
在一些实施例中,部分数据配置可能具有重复性,若将重复的数据配置均作为数据结构的成员数据,则可能会导致***配置的数据结构过大。
示例性的,图11为本申请实施例提供的一种现有的数据结构的配置方式的示意图。如图11所示,当账户信息作为重复信息配置入数据结构时,若智能手表上存在100个账号信息时,则需要将账号信息0至账号信息99依次作为成员数据添加至数据结构中。对于嵌入式***等内存资源受限的设备,需要缩减数据结构的大小。由于账号信息等重复信息,当前仅会存在一个生效,因此,可以通过数据结构的头信息中的中的update_item_t字段来指示生效的重复信息,从而在实现对数据类数据结构的支持的同时,保证***配置数据内存占用的最小化。
示例性的,图12为本申请实施例提供的一种数据结构的配置方式的示意图。如图12所示,当前KEYX对应的数据表示当前的数据结构X中的第一个数据,当用户需要访问第99个数据结构X时,可通过统一的API,传入索引值99来获取。
本申请实施例提供的数据结构的更新方法,首先接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据。随后,根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项。最后,通过变更待变更的信息项,更新目标应用中的数据结构。通过该方式,采用版本控制数据来指示数据结构的变更类型,从而基于不同的变更类型更新对应的信息项,不但保证了不同版本的数据结构的兼容性,也可以保证数据在RAM中占用最小化。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图13为本申请实施例提供的一种数据结构的更新装置的结构示意图。该数据结构的更新装置可以通过软件、硬件或者两者的结合实现,例如上述实施例中的服务器,以执行上述实施例中的数据结构的更新方法。如图13所示,该数据结构的更新装置500包括:
接收模块501,用于接收终端设备发送的更新指示,更新指示用于调整目标应用中的数据结构的版本控制数据;
确定模块502,用于根据调整后的版本控制数据指示的数据结构的变更类型,确定数据结构的头信息中的待变更的信息项;
更新模块503,用于通过变更待变更的信息项,更新目标应用中的数据结构。
一种可选的实施方式中,数据结构的变更类型包括删除数据结构中的成员数据、在数据结构的成员数据中***新增的成员数据、在数据结构的成员数据尾部***新增的成员数据。
一种可选的实施方式中,待变更的信息项包括版本信息和数据大小信息。
一种可选的实施方式中,确定模块502,具体用于若变更类型为删除数据结构中的成员数据或在数据结构的成员数据中***新增的成员数据,则确定待变更的信息项为版本信息。
一种可选的实施方式中,更新模块503,具体用于在数据结构的头信息中使用变更后的版本信息替换变更前的版本信息;使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
一种可选的实施方式中,确定模块502,具体用于若变更类型为在数据结构的成员数据尾部***新增的成员数据,则确定待变更的信息项为数据大小信息。
一种可选的实施方式中,更新模块503,具体用于根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值;根据所述变更前的数据大小信息和变更后的数据大小信息,确定所述数据结构的数据增量;根据所述数据增量,使用默认值更新所述新增的成员数据。
一种可选的实施方式中,数据结构的头信息中还包括校验信息,校验信息用于对数据结构的完整性进行循环冗余校验。
一种可选的实施方式中,装置还包括:
调用模块504,用于根据数据结构的索引设置或获取不同数据模块中的数据结构。
一种可选的实施方式中,数据模块是根据数据的类型划分的。
需要说明的,图13所示实施例提供的数据结构的更新装置,可用于执行上述任意实施例所提供的方法,具体实现方式和技术效果类似,这里不再进行赘述。
图14为本申请实施例提供的一种电子设备的结构示意图。如图14所示,该电子设备可以包括:处理器601和存储器602。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现上述数据结构的更新方法;
其中,处理器601可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器602和处理器601独立实现,则通信接口、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器602和处理器601集成在一块芯片上实现,则通信接口、存储器602和处理器601可以通过内部接口完成通信。
本申请实施例还提供了一种芯片,包括处理器和接口。其中接口用于输入输出处理器所处理的数据或指令。处理器用于执行以上方法实施例中提供的方法。该芯片可以应用于数据结构的更新装置中。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序信息,程序信息用于上述数据结构的更新方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种数据结构的更新方法,其特征在于,所述方法包括:
接收终端设备发送的更新指示,所述更新指示用于调整目标应用中的数据结构的版本控制数据;
根据调整后的版本控制数据指示的所述数据结构的变更类型,确定所述数据结构的头信息中的待变更的信息项;
通过变更所述待变更的信息项,更新所述目标应用中的数据结构;
根据所述数据结构的索引设置或获取不同数据模块中的数据结构。
2.根据权利要求1所述的方法,其特征在于,所述数据结构的变更类型包括删除所述数据结构中的成员数据、在所述数据结构的成员数据中***新增的成员数据、在所述数据结构的成员数据尾部***所述新增的成员数据。
3.根据权利要求2所述的方法,其特征在于,所述待变更的信息项包括版本信息和数据大小信息。
4.根据权利要求3所述的方法,其特征在于,所述确定所述数据结构的头信息中的待变更的信息项,包括:
若所述变更类型为删除所述数据结构中的成员数据或在所述数据结构的成员数据中***新增的成员数据,则确定所述待变更的信息项为所述版本信息。
5.根据权利要求4所述的方法,其特征在于,所述通过变更所述待变更的信息项,更新所述目标应用中的数据结构,包括:
在所述数据结构的头信息中使用变更后的版本信息替换变更前的版本信息;
使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
6.根据权利要求3所述的方法,其特征在于,所述确定所述数据结构的头信息中的待变更的信息项,包括:
若所述变更类型为在所述数据结构的成员数据尾部***所述新增的成员数据,则确定所述待变更的信息项为所述数据大小信息。
7.根据权利要求6所述的方法,其特征在于,所述通过变更所述待变更的信息项,更新所述目标应用中的数据结构,包括:
根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值;
根据所述变更前的数据大小信息和变更后的数据大小信息,确定所述数据结构的数据增量;
根据所述数据增量,使用默认值更新所述新增的成员数据。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述数据结构的头信息中还包括校验信息,所述校验信息用于对所述数据结构的完整性进行循环冗余校验。
9.根据权利要求1所述的方法,其特征在于,所述数据模块是根据数据的类型划分的。
10.一种数据结构的更新装置,其特征在于,所述装置包括:
接收模块,用于接收终端设备发送的更新指示,所述更新指示用于调整目标应用中的数据结构的版本控制数据;
确定模块,用于根据调整后的版本控制数据指示的所述数据结构的变更类型,确定所述数据结构的头信息中的待变更的信息项;
更新模块,用于通过变更所述待变更的信息项,更新所述目标应用中的数据结构;
调用模块,用于根据所述数据结构的索引设置或获取不同数据模块中的数据结构。
11.根据权利要求10所述的装置,其特征在于,所述数据结构的变更类型包括删除所述数据结构中的成员数据、在所述数据结构的成员数据中***新增的成员数据、在所述数据结构的成员数据尾部***所述新增的成员数据。
12.根据权利要求11所述的装置,其特征在于,所述待变更的信息项包括版本信息和数据大小信息。
13.根据权利要求12所述的装置,其特征在于,所述确定模块,具体用于若所述变更类型为删除所述数据结构中的成员数据或在所述数据结构的成员数据中***新增的成员数据,则确定所述待变更的信息项为所述版本信息。
14.根据权利要求13所述的装置,其特征在于,所述更新模块,具体用于在所述数据结构的头信息中使用变更后的版本信息替换变更前的版本信息;使用变更后的版本信息对应的数据结构替换变更前的版本信息对应的数据结构。
15.根据权利要求12所述的装置,其特征在于,所述确定模块,具体用于若所述变更类型为在所述数据结构的成员数据尾部***所述新增的成员数据,则确定所述待变更的信息项为所述数据大小信息。
16.根据权利要求15所述的装置,其特征在于,所述更新模块,具体用于根据变更前的数据大小信息,替换更新后的数据结构中的成员数据的默认值;根据所述变更前的数据大小信息和变更后的数据大小信息,确定所述数据结构的数据增量;根据所述数据增量,使用默认值更新所述新增的成员数据。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述数据结构的头信息中还包括校验信息,所述校验信息用于对所述数据结构的完整性进行循环冗余校验。
18.根据权利要求10所述的装置,其特征在于,所述数据模块是根据数据的类型划分的。
19.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-9任意一项的方法。
20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-9任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111464681.3A CN113868231B (zh) | 2021-12-03 | 2021-12-03 | 数据结构的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111464681.3A CN113868231B (zh) | 2021-12-03 | 2021-12-03 | 数据结构的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868231A true CN113868231A (zh) | 2021-12-31 |
CN113868231B CN113868231B (zh) | 2022-03-18 |
Family
ID=78985727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111464681.3A Active CN113868231B (zh) | 2021-12-03 | 2021-12-03 | 数据结构的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113868231B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289544A1 (en) * | 2004-06-24 | 2005-12-29 | Kalos Matthew J | Method to update a data structure disposed in an embedded device |
CN103218239A (zh) * | 2013-04-09 | 2013-07-24 | 沈阳美行科技有限公司 | 一种支持导航机地图版本增量更新版本的方法 |
CN104252364A (zh) * | 2013-06-25 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 增量更新的方法、设备及*** |
CN107741833A (zh) * | 2017-10-30 | 2018-02-27 | 广东乐心医疗电子股份有限公司 | 可嵌套的key‑value的存储方法及装置 |
CN110941673A (zh) * | 2019-11-26 | 2020-03-31 | 中国人民解放军战略支援部队信息工程大学 | 区块链数据结构及任务处理方法和装置 |
CN111625598A (zh) * | 2020-05-15 | 2020-09-04 | 南京东垚建筑科技研究院有限公司 | 一种工程协作区块链数据结构及应用方法 |
CN111684766A (zh) * | 2019-05-23 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 分布式***中通信协议版本号的更新 |
CN111782235A (zh) * | 2019-09-27 | 2020-10-16 | 北京沃东天骏信息技术有限公司 | 一种数据升级、查询方法和装置 |
CN112084258A (zh) * | 2020-08-18 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法和装置 |
CN112685433A (zh) * | 2021-01-07 | 2021-04-20 | 网易(杭州)网络有限公司 | 元数据更新方法、装置、电子设备及计算机可读存储介质 |
US20210117176A1 (en) * | 2019-10-22 | 2021-04-22 | Microsoft Technology Licensing, Llc | Updating a metadata structure for a firmware update |
-
2021
- 2021-12-03 CN CN202111464681.3A patent/CN113868231B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289544A1 (en) * | 2004-06-24 | 2005-12-29 | Kalos Matthew J | Method to update a data structure disposed in an embedded device |
CN103218239A (zh) * | 2013-04-09 | 2013-07-24 | 沈阳美行科技有限公司 | 一种支持导航机地图版本增量更新版本的方法 |
CN104252364A (zh) * | 2013-06-25 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 增量更新的方法、设备及*** |
CN107741833A (zh) * | 2017-10-30 | 2018-02-27 | 广东乐心医疗电子股份有限公司 | 可嵌套的key‑value的存储方法及装置 |
CN111684766A (zh) * | 2019-05-23 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 分布式***中通信协议版本号的更新 |
CN111782235A (zh) * | 2019-09-27 | 2020-10-16 | 北京沃东天骏信息技术有限公司 | 一种数据升级、查询方法和装置 |
US20210117176A1 (en) * | 2019-10-22 | 2021-04-22 | Microsoft Technology Licensing, Llc | Updating a metadata structure for a firmware update |
CN110941673A (zh) * | 2019-11-26 | 2020-03-31 | 中国人民解放军战略支援部队信息工程大学 | 区块链数据结构及任务处理方法和装置 |
CN111625598A (zh) * | 2020-05-15 | 2020-09-04 | 南京东垚建筑科技研究院有限公司 | 一种工程协作区块链数据结构及应用方法 |
CN112084258A (zh) * | 2020-08-18 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法和装置 |
CN112685433A (zh) * | 2021-01-07 | 2021-04-20 | 网易(杭州)网络有限公司 | 元数据更新方法、装置、电子设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
王彬等: "基于能量管理***平台的嵌入式软件***", 《电力***自动化》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113868231B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736956B (zh) | 一种容器服务部署方法、装置、设备及可读存储介质 | |
KR102288521B1 (ko) | 블록체인 기반의 데이터 저장 장치 및 방법 | |
CN105515872A (zh) | 配置信息的更新方法、装置及*** | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN108345462B (zh) | 组件升级的方法和装置 | |
CN111694638A (zh) | 规则包加载方法、规则包执行方法及终端设备 | |
CN109167819B (zh) | 数据同步***、方法、装置及存储介质 | |
CN104573497A (zh) | 一种启动项的处理方法和装置 | |
CN113868231B (zh) | 数据结构的更新方法及装置 | |
CN112131478B (zh) | 交易检测方法及装置 | |
CN104573496A (zh) | 一种禁止启动项启动的方法和装置 | |
CN111092774A (zh) | 采集网关的配置方法及设备 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN114265845A (zh) | 一种延时任务的处理方法、装置和电子设备 | |
CN115080068A (zh) | 资源文件的传输方法、装置、设备及存储介质 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN103605519A (zh) | 应用程序的控件添加方法和装置 | |
KR20150029916A (ko) | 컴퓨팅 환경 설정 장치 및 방법 | |
CN107678928B (zh) | 应用程序的处理方法及服务器 | |
CN112000482A (zh) | 一种内存管理的方法、装置、电子设备及存储介质 | |
CN111277435A (zh) | 升级网络设备的方法、装置、存储介质以及电子设备 | |
CN111090530A (zh) | 一种分布式跨进程间通信总线*** | |
CN110597536A (zh) | 一种软件升级方法、***及终端设备 | |
CN114385273A (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 |