CN113050977B - 一种数据处理的方法及*** - Google Patents
一种数据处理的方法及*** Download PDFInfo
- Publication number
- CN113050977B CN113050977B CN201911389601.5A CN201911389601A CN113050977B CN 113050977 B CN113050977 B CN 113050977B CN 201911389601 A CN201911389601 A CN 201911389601A CN 113050977 B CN113050977 B CN 113050977B
- Authority
- CN
- China
- Prior art keywords
- patch
- information
- calling
- function
- application program
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据处理的方法,包括:调用流对象函数,将应用程序的补丁列表转换成流对象;调用遍历函数,从所述流对象中获取补丁信息集;通过调用编码获取函数,从所述补丁信息集中获取补丁编码;调用静态类型函数,构建补丁版本信息标识符;通过调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;在所述二级缓存空间中,对补丁信息进行哈希储存。可显著提高投放数据的获取效率。
Description
技术领域
本发明涉及投放数据管理技术领域,尤其涉及一种数据处理的方法及***。
背景技术
数据投放是指在发布端将数据投放给客户端,例如,应用程序的补丁更新。在数据发布端,对于一个应用程序来说,会有多个补丁版本,每个补丁版本下有多个补丁。因此,为了实现投放数据的管理,掌握补丁信息以及补丁投放状态信息,通常需要对投放数据进行储存,包括数据本身以及数据投放状态信息。
现有的投放数据存储通常是用基础数据结构或数据库等方式来进行存储,这种存储方式会导致投放数据调取效率低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理的方法及***。
一方面,本申请通过本申请的一实施例提供如下技术方案:
一种数据处理方法,所述方法包括:
调用流对象函数,将应用程序的补丁列表转换成流对象;
调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
在所述二级缓存空间中,对所述补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
可选的,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以所述补丁版本信息标识符和所述补丁编码作为输入,调用数据获取函数,获取所述补丁编码对应补丁的补丁信息。
可选的,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以目标补丁版本信息标识符和目标补丁编码作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁编码对应补丁的补丁信息。
可选的,在所述调用遍历函数,从所述流对象中获取补丁信息集之后,所述方法还包括:
调用状态获取函数,从所述补丁信息集中获取补丁投放状态信息;其中,所述补丁投放状态信息是补丁状态信息中对应补丁的投放状态信息;
根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用格式化函数,构建补丁状态信息标识符;
调用缓存中心的储存函数,对所述补丁状态信息标识符进行哈希储存;其中,所述补丁版本信息状态符存储的哈希值根据所述补丁状态信息标识符获得;
在所述补丁状态信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
在所述二级缓存空间中,对所述补丁状态信息进行哈希储存;其中,所述补丁状态信息存储的哈希值根据所述补丁投放状态信息获得。
可选的,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以所述补丁状态信息标识符和所述补丁投放状态信息作为输入,调用数据获取函数,获取所述补丁投放状态信息对应补丁的补丁状态信息。
可选的,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以目标补丁状态信息标识符和目标补丁投放状态信息作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁投放状态信息对应补丁的补丁状态信息。
可选的,所述调用静态类型函数,包括:
调用所述静态类型函数内部的格式化函数。
另一方面,本申请通过本申请的另一实施例提供一种数据处理***,所述***包括:
数据转换模块,用于调用流对象函数,将应用程序的补丁列表转换成流对象;
第一获取模块,用于调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
第二获取模块,用于调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
标识构建模块,用于根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
第一存储模块,用于调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
缓存申请模块,用于在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
第二存储模块,用于在所述二级缓存空间中,对补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
本发明公开了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明的方法,首先调用流对象函数,将应用程序的补丁列表转换成流对象;通过调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;通过调用编码获取函数,从所述补丁信息集中获取补丁编码;根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,通过调用静态类型函数,构建补丁版本信息标识符;其中,应用程序的包名信息和应用程序的版本号能够唯一限定一个应用程序,应用程序的补丁版本信息能够限定该应用程序下的补丁版本信息,因此,补丁版本信息标识符能唯一确定一个应用程序的补丁版本信息。再通过调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得,即应用程序的补丁首先按照唯一的补丁版本信息标识符所计算出的储存地址按版本进行分别哈希存储;然后,在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;在所述二级缓存空间中,对补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁信息对应补丁的补丁编码获得。也就是说,通过两级哈希存储的方式,将补丁信息按照仅以能够唯一确定一个补丁的补丁编码计算获得的哈希值在补丁版本信息标识符所在的二级缓存空间中进行存
储,不仅使补丁信息分版本进行哈希储存,且上述哈希储存的方式可以使在调取时,只要首先获得补丁版本信息标识符的哈希值,再获得补丁编码的哈希值,即可获得该补丁的补丁信息,显著提高了投放数据的获取效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一种实施例中的数据处理的方法流程图;
图2是本发明一种实施例中的数据处理的***构架图。
具体实施方式
本申请实施例通过提供一种数据处理的方法及***,解决了现有的投放数据调取效率低的技术问题。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种数据处理方法,所述方法包括:调用流对象函数,将应用程序的补丁列表转换成流对象;调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;在所述二级缓存空间中,对所述补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
现有的投放数据的存储方式为基础的数据储存结构,例如,对于一个应用程序来说,会有多个补丁版本,每个补丁版本下有多个补丁,则将所有版本的补丁按照列表依次进行常规储存,在数据获取时,需要从列表中去进行海量识别获取补丁信息,才能通过补丁信息锁定一个补丁,计算量大,获取效率低。
为此,本申请首先通过实施例一提供了一种数据处理方法,以具体说明如何克服上述问题,提高投放数据的获取效率。
实施例一
本实施提供了一种数据处理方法,用于在投放数据的发布端进行数据管理,参见图1,所述方法包括:
S101、调用流对象函数,将应用程序的补丁列表转换成流对象;
S102、调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
S103、调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
S104、根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
S105、调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
S106、在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
S107、在所述二级缓存空间中,对所述补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
需要说明的是,补丁数据本身是存储在数据库中,而本实施例通过在缓冲中心对补丁信息进行缓存,以便后续高效的数据获取。本实施例的数据处理方法可以针对一个应用程序对应的补丁信息进行处理,也可以分别对多个应用程序对应的补丁信息进行处理。
下面参照图1,对本实施中各步骤进行详细的解释说明。
首先,执行步骤S101,调用流对象函数,将应用程序的补丁列表转换成流对象。
具体的,可通过调用流对象函数patchList.stream()函数将补丁列表patchList的集合数据转换成一个Stream的流对象。通过对象流,就可以将补丁列表中的数据信息对象克隆与持久化保存。
接下来,执行S102,调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号。
具体的,可通过S101中获得的流对象中的遍历函数foreach函数来依次取出patchList集合中的每一个补丁的补丁信息。
与此同时,为了后续实现补丁信息按补丁版本进行分类哈希存储,在本实施中需要获得一个能够唯一确定一个补丁版本信息的补丁版本信息标识符,因此,对一个补丁来说,设计三个维度来对其补丁信息进行描述,分别是:pkgName、versionCode、patchVersion,其中,pkgName表示应用程序的包名信息,versionCode表示应用程序的版本号,patchVersion表示应用程序的补丁版本信息。
需要说明的是,这里设计pkgName、versionCode、patchVersion三个维度来统一描述补丁信息,且这三个维度的信息能唯一锁定一个补丁版本信息,便于后续利用补丁版本信息标识符与补丁版本信息进行关联,从而对补丁版本信息进行哈希存储。现有技术对补丁信息的描述维度不一,会导致后续逻辑的复杂,在本实施的方法中,如果无法实现利用三个维度的信息能唯一锁定一个补丁版本信息,则可能出现无法通过补丁版本信息标识符来唯一锁定补丁版本信息,后续的哈希储存和储存后快速获取,都无法实现。
接下来,执行S103、调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码。
需要说明的是,补丁信息集合中不仅包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,还包括每个补丁的所有信息,当然也包括补丁的身份识别编码,简称补丁编码(patchId)。
补丁编码可用于后续对补丁信息进行哈希存储时,计算生成补丁信息对应的哈希值,这样的哈希存储方式,可以使补丁信息获取时,仅仅通过补丁编码即可准确获得数据量相对较多的补丁信息,快速准确。具体的,可以通过调用ID获取函数(patch.getId函数)来获取补丁的编码(ID)信息。atch.getId函数即为一种编码获取函数,其是现有的一种获取函数,可从补丁信息中获取补丁编码。
接下来,执行S104,根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符。
在具体实施过程中,利用S102中已经说明应用程序的补丁版本信息、应用程序的包名信息和应用程序的版本号,通过如下函数来构建一个补丁版本信息标识符,该函数如下:
public static String patchKey(String pkgname,int vetsionCode,intpatchVersion)
该函数为一个static静态类型,方便调用,静态方法能够直接通过类进行获取,无需通过对象的形式进行获取。函数的名称是patchKey,入参参数是上述的pkgName、vetsionCode、patchVersion。
在具体实施过程中,在patchKey函数内部,通过调用如下函数:
return String.format(″android:patch::%s:%s:%s″,pkgName,String.valueOf(vetsionCode),String.valueOf(patchVersion)),来进行实现返回一个唯一标识符补丁版本信息标识符key1。
其中,String.format函数表示是对字符串进行格式化处理来生成一个唯一key1,前缀信息android:patch表示当前是一个补丁(patch)的key1,然后,通过三个:%s:%s:%s的占位符来预留变量的内容信息,将pkgName、versionCode、patchVersion这三个信息填充到三个占位符中,其中,由于versionCode和patchVersion是int类型的数据,无法通过字符串的形式进行存储,因此,通过String.valueOf函数的调用将其转换成一个字符串后再进行填充,并将最终生成的key1数据进行返回,这样就得到了唯一key1。
生成唯一的key1可以一个标识来关联一个补丁信息,便于后续直接对key1进行哈希储存,以提高补丁信息获取效率。
接下来,执行S105,调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得。
在获得能够唯一确定补丁版本信息的key1后,由于即使一个应用程序,也可能包括多个补丁本,因此,为了提高后续获取数据的效率以及数据获取的准确性,利用哈希的方式对各补丁版本的补丁信息进行分类存储。所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得,使在获取补丁版本信息时,只需要根据key1按照该哈希存储的规则计算获得的地址,则可准确获得该key1,从而获得补丁的版本信息。
在具体实施时,可通过调用缓存中心cacheCenter中的哈希存储函数(hput函数)来对key1进行哈希(hash)存储。其中,cacheCenter可以理解为是一个抽象的数据存储单元,可以将数据存储到redis或者数据库或者文件或者内存等都可以。
接下来,执行S106,在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间。
在快速获取到补丁的版本信息后,则可在该版本下对该版本下的补丁信息进行二级哈希储存,以使在获取到补丁版本信息后,可快速获取到具体的补丁的补丁信息。因此,需要在补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间,以供后续补丁信息的二级哈希存储。
接下来,执行S107,在所述二级缓存空间中,对所述补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
在S103中已经说明,在二级哈希存储时,利用补丁编码计算生成补丁信息对应的哈希值,这样的哈希存储方式,可以使补丁信息获取时,仅仅通过补丁编码即可准确获得数据量相对较多的补丁信息,快速准确。
而现有的投放数据存储通常是用基础数据结构或数据库等方式来进行存储,要获取其补丁信息时必须对数据库进行访问,又有数据库的数据量本来就大,因此,其访问效率就低。再加上在数据库内部由于无规律的储存方式,只有进行海量查询,其数据查询和访问数量庞大,查询效率低。而本实施例的方法通过建立与数据库分离的缓存结构,并在缓存结构中通过两级哈希存储的方式,高效的利用补丁版本信息标识符即可锁定某个补丁版本信息下的所有补丁信息,然后在此基础上,通过补丁编码即可锁定补丁编码对应补丁的补丁信息,相对于现有技术,显著提高了补丁信息的获取效率。在完成对补丁信息的存储之后,结合存储结构的特点,为了快速的获取某个补丁的补丁信息,作为一种可选的实施方式,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以所述补丁版本信息标识符和所述补丁编码作为输入,调用数据获取函数,获取所述补丁编码对应补丁的补丁信息。
在具体实施时,可通过调用cacheCenter.hget(patchKey,patchId)来实现。具体的,为了提高获取补丁信息的效率,需要首先利用补丁版本信息标识符计算获得补丁版本信息标识符对应的哈希值,然后通过该哈希值找到补丁版本信息标识符,在此基础上,再利用补丁编码计算获得补丁编码对应的哈希值,然后通过该哈希值找到补丁的补丁信息。因此,在补丁信息获取时,只需要将补丁版本信息标识符和补丁编码作为输入,即可高效的获取准确的补丁信息。
举例来说,对于补丁版本信息标识符key1的哈希存储结构为:
Key 1:hashKey:hashValue,其中,hashValue是Key 1哈希存储的哈希值,即存储地址。该结构中还有一个二级的hashKey,这个hashKey内则存储有key1所对应的补丁版本信息下的所有补丁信息:patch1,patch2,…patchn;每个补丁信息利用对应的补丁编码(patchId1,patchId2,…patchIdn)生成的哈希值(patchIdlValue,patchId2Value,…patchIdnValue)进行存储;这样就形成了对补丁信息的哈希存储。
在获取时,假设输入的Key1,则通过Key1计算获得hashValue,通过该hashValue,则可获得该存储地址下的所有补丁信息,即patch1,patch2,…patchn。在此基础上,假设还想获得patch1的补丁信息,则再通过patchId1计算获得patchIdlValue,则可唯一的获得patch1。
这样处理的好处是我们后续就可以直接通过patchId来获取具体的patch信息。
在完成对补丁信息的存储之后,结合存储结构的特点,为了快速的判断缓存中心是否有某个补丁的补丁信息,作为一种可选的实施方式,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以目标补丁版本信息标识符和目标补丁编码作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁编码对应补丁的补丁信息。
在具体实施时,可通过调用cacheCenter.hcontains(patchKey,patchId)函数,判定cacheCenter中是否具备目标补丁编码对应的补丁的补丁信息。
其具体的判定方法,就是首先利用补丁版本信息标识符计算获得补丁版本信息标识符对应的哈希值,然后通过该哈希值判断是否有对应的补丁版本信息标识符,如果有,在此基础上,再利用补丁编码计算获得补丁编码对应的哈希值,然后通过该哈希值判断是否有对应的补丁信息。这样就不用像现有技术那样把数据取出来进行判定,极大的提高了数据判定的效率。
由于补丁信息集中还包括补丁投放状态信息,为了能快速的获取以及判断补丁的投放状态信息,作为一种可选的实施方式,在所述调用遍历函数,从所述流对象中获取补丁信息集之后,所述方法还包括:
调用状态获取函数,从所述补丁信息集中获取补丁投放状态信息;其中,所述补丁投放状态信息是补丁状态信息中对应补丁的投放状态信息;
根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用格式化函数,构建补丁状态信息标识符;
调用缓存中心的储存函数,对所述补丁状态信息标识符进行哈希储存;其中,所述补丁版本信息状态符存储的哈希值根据所述补丁状态信息标识符获得;
在所述补丁状态信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
在所述二级缓存空间中,对所述补丁状态信息进行哈希储存;其中,所述补丁状态信息存储的哈希值根据所述补丁投放状态信息获得。
需要说明的是,上述步骤与S103-S107相同,区别只是将处理对象由补丁版本信息替换成补丁投放状态信息,因此,具体实施过程可参照S103-S107,这里不再赘述。
作为一种可选的实施方式,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以所述补丁状态信息标识符和所述补丁投放状态信息作为输入,调用数据获取函数,获取所述补丁投放状态信息对应补丁的补丁状态信息。
作为一种可选的实施方式,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以目标补丁状态信息标识符和目标补丁投放状态信息作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁投放状态信息对应补丁的补丁状态信息。
上述两个可选的实施方式也与前述的补丁信息的获取和判断相同,这里不再赘述,可快速获取和判断补丁的投放状态,例如,“已投放”、“未投放”。
作为一种可选的实施方式,所述调用静态类型函数,包括:调用所述静态类型函数内部的格式化函数。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
本实施例的方法,首先调用流对象函数,将应用程序的补丁列表转换成流对象;通过调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;通过调用编码获取函数,从所述补丁信息集中获取补丁编码;根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,通过调用静态类型函数,构建补丁版本信息标识符;其中,应用程序的包名信息和应用程序的版本号能够唯一限定一个应用程序,应用程序的补丁版本信息能够限定该应用程序下的补丁版本信息,因此,补丁版本信息标识符能唯一确定一个应用程序的补丁版本信息。再通过调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得,即应用程序的补丁首先按照唯一的补丁版本信息标识符所计算出的储存地址按版本进行分别哈希存储;然后,在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;在所述二级缓存空间中,对补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁信息对应补丁的补丁编码获得。也就是说,通过两级哈希存储的方式,将补丁信息按照仅以能够唯一确定一个补丁的补丁编码计算获得的哈希值在补丁版本信息标识符所在的二级缓存空间中进行存储,不仅使补丁信息分版本进行哈希储存,且上述哈希储存的方式可以使在调取时,只要首先获得补丁版本信息标识符的哈希值,再获得补丁编码的哈希值,即可获得该补丁的补丁信息,显著提高了投放数据的获取效率。
实施例二
基于与实施例一同样的发明构
思,本实施例提供一种数据处理***,参见图2,所述***包括:
数据转换模块,用于调用流对象函数,将应用程序的补丁列表转换成流对象;
第一获取模块,用于调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
第二获取模块,用于调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
标识构建模块,用于根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
第一存储模块,用于调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
缓存申请模块,用于在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
第二存储模块,用于在所述二级缓存空间中,对补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
由于本实施例所介绍的数据处理的***为实现本申请实施例一种数据处理的方法所采用的***,故而基于本申请实施例一中所介绍的数据处理的方法,本领域所属技术人员能够了解本实施例的***的具体实施方式以及其各种变化形式,所以在此对于如何利用
本中的***实现实施例一中的方法不再详细介绍。只要本领域所属技术人员用于实现本申请实施例中数据处理的方法所采用的***,都属于本申请所欲保护的范围。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
调用流对象函数,将应用程序的补丁列表转换成流对象;
调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
在所述二级缓存空间中,对所述补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
2.如权利要求1所述的方法,其特征在于,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以所述补丁版本信息标识符和所述补丁编码作为输入,调用数据获取函数,获取所述补丁编码对应补丁的补丁信息。
3.如权利要求1所述的方法,其特征在于,在所述二级缓存空间中,对所述补丁信息进行哈希储存之后,所述方法还包括:
以目标补丁版本信息标识符和目标补丁编码作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁编码对应补丁的补丁信息。
4.如权利要求1所述的方法,其特征在于,在所述调用遍历函数,从所述流对象中获取补丁信息集之后,所述方法还包括:
调用状态获取函数,从所述补丁信息集中获取补丁投放状态信息;其中,所述补丁投放状态信息是补丁状态信息中对应补丁的投放状态信息;
根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用格式化函数,构建补丁状态信息标识符;
调用缓存中心的储存函数,对所述补丁状态信息标识符进行哈希储存;其中,所述补丁状态信息标识符存储的哈希值根据所述补丁状态信息标识符获得;
在所述补丁状态信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
在所述二级缓存空间中,对所述补丁状态信息进行哈希储存;其中,所述补丁状态信息存储的哈希值根据所述补丁投放状态信息获得。
5.如权利要求4所述的方法,其特征在于,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以所述补丁状态信息标识符和所述补丁投放状态信息作为输入,调用数据获取函数,获取所述补丁投放状态信息对应补丁的补丁状态信息。
6.如权利要求4所述的方法,其特征在于,在所述二级缓存空间中,对所述补丁状态信息进行哈希储存之后,所述方法还包括:
以目标补丁状态信息标识符和目标补丁投放状态信息作为输入,调用数据判断函数,判断所述缓存中心是否有所述目标补丁投放状态信息对应补丁的补丁状态信息。
7.如权利要求1或4所述的方法,其特征在于,所述调用静态类型函数,包括:
调用所述静态类型函数内部的格式化函数。
8.一种数据处理的***,其特征在于,所述***包括:
数据转换模块,用于调用流对象函数,将应用程序的补丁列表转换成流对象;
第一获取模块,用于调用遍历函数,从所述流对象中获取补丁信息集;其中,所述补丁信息集包括所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号;
第二获取模块,用于调用编码获取函数,从所述补丁信息集中获取补丁编码;其中,所述补丁编码是补丁信息中对应补丁的编码;
标识构建模块,用于根据所述应用程序的补丁版本信息、所述应用程序的包名信息和所述应用程序的版本号,调用静态类型函数,构建补丁版本信息标识符;
第一存储模块,用于调用缓存中心的储存函数,对所述补丁版本信息标识符进行哈希储存;其中,所述补丁版本信息标识符存储的哈希值根据所述补丁版本信息标识符获得;
缓存申请模块,用于在所述补丁版本信息标识符的哈希值所对应的缓存空间中,申请获得二级缓存空间;
第二存储模块,用于在所述二级缓存空间中,对补丁信息进行哈希储存;其中,所述补丁信息存储的哈希值根据所述补丁编码获得。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911389601.5A CN113050977B (zh) | 2019-12-27 | 2019-12-27 | 一种数据处理的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911389601.5A CN113050977B (zh) | 2019-12-27 | 2019-12-27 | 一种数据处理的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113050977A CN113050977A (zh) | 2021-06-29 |
CN113050977B true CN113050977B (zh) | 2022-06-17 |
Family
ID=76507522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911389601.5A Active CN113050977B (zh) | 2019-12-27 | 2019-12-27 | 一种数据处理的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113050977B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102265263A (zh) * | 2008-12-24 | 2011-11-30 | 松下电器产业株式会社 | 总线控制器及初始引导程序的修补方法 |
CN107391107A (zh) * | 2017-06-12 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 一种应用程序的修复方法和装置 |
CN107667505A (zh) * | 2015-06-05 | 2018-02-06 | 思科技术公司 | 用于监控和管理数据中心的*** |
CN107766068A (zh) * | 2017-10-10 | 2018-03-06 | 金蝶软件(中国)有限公司 | 应用***补丁安装方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509636B2 (en) * | 2003-12-15 | 2009-03-24 | Microsoft Corporation | System and method for updating files utilizing delta compression patching |
-
2019
- 2019-12-27 CN CN201911389601.5A patent/CN113050977B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102265263A (zh) * | 2008-12-24 | 2011-11-30 | 松下电器产业株式会社 | 总线控制器及初始引导程序的修补方法 |
CN107667505A (zh) * | 2015-06-05 | 2018-02-06 | 思科技术公司 | 用于监控和管理数据中心的*** |
CN107391107A (zh) * | 2017-06-12 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 一种应用程序的修复方法和装置 |
CN107766068A (zh) * | 2017-10-10 | 2018-03-06 | 金蝶软件(中国)有限公司 | 应用***补丁安装方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
应用程序热补丁(二): 自动生成热补丁;王超;《https://mp.weixin.qq.com/s/i4ZDK6KSghTY2VIo9cfR4A》;20180309;第1-9页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113050977A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108932236B (zh) | 一种文件管理方法及装置 | |
US8498998B2 (en) | Grouping identity records to generate candidate lists to use in an entity and relationship resolution process | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
US20090222691A1 (en) | Data Migration Manager | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN104933020A (zh) | 基于模板生成目标文档的方法及装置 | |
CN108334622B (zh) | 一种获取格式化复合数据的方法 | |
JP6613320B2 (ja) | トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法 | |
CN108388613B (zh) | 一种缓存数据的更新方法 | |
WO2019076102A1 (zh) | 一种数据回滚方法、***、设备及计算机可读存储介质 | |
EP3523734B1 (en) | Techniques for generating snapshots of datasets | |
CN110209714A (zh) | 报表生成方法、装置、计算机设备及计算机可读存储介质 | |
CN115203159B (zh) | 一种数据存储方法、装置、计算机设备和存储介质 | |
CN113268439A (zh) | 内存地址的查找方法和装置、电子设备和存储介质 | |
US8024374B2 (en) | Computer object conversion using an intermediate object | |
CN113050977B (zh) | 一种数据处理的方法及*** | |
CN111984595B (zh) | 一种文件处理方法及装置、存储介质 | |
CN111901453A (zh) | 一种标识生成方法、装置、计算机设备和存储介质 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN114448702B (zh) | 一种基于隐私集合求交的数据加密方法及装置 | |
US11528146B1 (en) | Fork table of an authenticated index data structure | |
CN112052234B (zh) | 业务数据的处理方法和装置、存储介质、电子装置 | |
CN107870908B (zh) | 一种信息获取方法及装置 | |
US8656410B1 (en) | Conversion of lightweight object to a heavyweight object | |
CN110222105B (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 |