CN112667637A - 数据管理方法、装置及计算机可读存储介质 - Google Patents
数据管理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112667637A CN112667637A CN202011634319.1A CN202011634319A CN112667637A CN 112667637 A CN112667637 A CN 112667637A CN 202011634319 A CN202011634319 A CN 202011634319A CN 112667637 A CN112667637 A CN 112667637A
- Authority
- CN
- China
- Prior art keywords
- array
- index
- allocable
- value
- index value
- 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
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种数据管理方法,包括:获取业务数组和索引数组,其中,所述索引数组保存所述业务数组中的所有空闲元素的索引值;当所述业务数组存在空闲元素的获取需求时,按照预设规则在所述索引数组中申请可分配元素的索引值,并根据所述可分配元素的索引值定位到所述可分配元素在业务数组中的内存;将所述内存作为空闲元素的内存分配给相应的业务使用。本发明还提供一种数据管理装置及计算机可读存储介质。本发明提供的数据管理方法,能够高效、快速地查找空闲元素。
Description
技术领域
本发明实施例涉及软件开发技术领域,特别涉及一种数据管理方法、装置及计算机可读存储介质。
背景技术
现有技术中,查找空闲元素一般采用遍历数组的方式,如图1所示,数组中每个元素定义了一个Valid字段作为该元素的有效性,数组中所有元素的Valid字段初始化为有效,每获取一个空闲元素时,对数组进行遍历,找到Valid字段为有效的元素,取出来后将该元素的Valid字段置为无效。当数组元素较多时,现有技术的这种查找方式效率非常低下。
发明内容
本发明实施方式的目的在于提供一种数据管理方法,能够高效、快速地查找空闲元素。
为解决上述技术问题,本发明的实施方式提供了一种数据管理方法,所述方法包括:获取业务数组和索引数组,其中,所述索引数组保存所述业务数组中的所有空闲元素的索引值;当所述业务数组存在空闲元素的获取需求时,按照预设规则在所述索引数组中申请可分配元素的索引值,并根据所述可分配元素的索引值定位到所述可分配元素在业务数组中的内存;将所述内存作为空闲元素的内存分配给相应的业务使用。
本发明的实施方式还提供了一种数据管理装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的数据管理方法的步骤。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述数据管理方法的步骤。
本发明实施方式相对于现有技术而言,采用索引数组与业务数组相结合的方式,通过管理业务数组的索引值来管理空闲元素的分配,通过内部元素的关联关系指向,能够快速的实现空闲节点的资源分配和回收,减少了大量的循环遍历操作,因此,即使在业务数组元素很多的情况下,查找效率也很高。
优选地,所述方法还包括:当所述内存分配给相应的业务使用完毕后,在所述索引数组中回收所述可分配元素的索引值。
优选地,在所述获取业务数据和索引数组后,还包括对所述索引数组进行初始化,其中,所述对所述索引数组进行初始化,包括:通过预设的CUR_ID表示所述索引数组中当前可分配元素的索引值,且根据所述CUR_ID可定位到当前可分配元素在所述业务数组的内存;在所述索引数组中,保存所述业务数组中的所有空闲元素的索引值;将所述索引数组中每个元素的数组值定义为64个字节,其中,前32个字节用来储存当前可分配元素的数组值中对应的上一个可分配元素的索引值,后32个字节用来储存当前可分配元素的数组值中对应的下一个可分配元素的索引值;将所述CUR_ID初始化为0。
优选地,所述按照预设规则在所述索引数组中申请可分配元素的索引值,包括:在所述索引数组中按所述索引数组中可分配元素索引值的排列顺序申请可分配元素的索引值。
优选地,所述按照预设规则在所述索引数组中申请可分配的元素的索引值,还包括:根据业务需求,在所述索引数组中申请目标索引值。
优选地,所述在所述索引数组中按所述索引数组中可分配元素索引值的排列顺序申请可分配的元素的索引,包括:步骤a,当所述业务数组中有空闲元素获取需求时,将CUR_ID代表的元素作为当前可分配元素,分配为空闲元素,将所述索引数组中当前可分配元素的数组值中储存的下一个可分配元素的索引值赋值给CUR_ID;步骤b,在所述索引数组中将已经分配出去的元素的数组值设置为无效值,同时将赋值后的CUR_ID所代表的元素的数组值中储存的上一个可分配元素的索引值设置为无效值;步骤c,根据分配得到的空闲元素的索引值定位到所述空闲元素在所述业务数组的内存进行业务操作;步骤d,当有新的空闲元素获取需求时,重复a至c的步骤。
优选地,所述根据业务需求,在所述索引数组中申请目标索引值,包括:根据业务需求,将目标索引值所代表的目标元素作为当前可分配元素,分配为空闲元素;将所述索引数组中目标元素的数组值中储存的上一个可分配元素的索引值及下一个可分配元素的索引值均设置为无效值;将所述索引数组中,数组值中储存的下一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的下一个可分配元素的索引值,将所述索引数组中,数组值中储存的上一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的上一个可分配元素的索引值。
优选地,所述在所述索引数组中回收所述可分配元素的索引值,包括:当获取到欲回收的指定元素后,获取所述索引数组中当前可分配元素及下一个可分配元素;将当前可分配元素的数组值中储存的下一个可分配元素的索引值与下一个可分配元素的数组值中储存的上一个可分配元素的索引值均更新为指定元素的索引值;将指定元素的数组中储存的上一个可分配元素的索引值更新为当前可分配的元素的索引值,将指定元素的数组中储存的下一个可分配元素的索引值更新为下一个可分配的元素的索引值;根据指定元素的索引值定位到该指定元素在所述业务数组中的内存,并在所述业务数组的内存中清空该指定元素。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是现有技术中创建的业务数组的示意图;
图2是根据本发明第一实施方式的数据管理方法的流程示意图;
图3是根据本发明第一实施方式创建的业务数组的示意图;
图4是根据本发明第一实施方式创建的索引数组的示意图;
图5-图7是根据本发明第一实施方式中在所述索引数组中按顺序申请可分配元素的索引值的示例图;
图8-图9是根据本发明第一实施方式中根据业务需求在所述索引数组中申请目标索引值的示例图;
图10-图12是根据本发明第一实施方式中在所述索引数组中回收可分配元素的索引值的示例图;
图13是根据本发明第二实施方式的数据管理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种数据管理方法,本实施方式的核心在于,采用索引数组与业务数组相结合的方式,通过索引数组管理业务数组的索引值从而管理空闲元素的分配,通过内部元素的关联关系指向,能够快速的实现空闲节点的资源分配和回收,减少了大量的循环遍历操作。下面对本实施方式的数据管理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中的数据管理方法的流程示意图如图2所示,该方法应用于数据管理装置。
在本实施方式中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S101:获取业务数组和索引数组,其中,所述索引数组保存所述业务数组中的所有空闲元素的索引值。
数组(Array)是一组具有相同类型的数据的集合。但在实际的编程过程中,往往还需要一组类型不同的数据,例如,对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,显然数据类型并不相同,并不能用一个数组来存放。而结构体(Struct)可以来存放一组不同类型的数据,结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。因此,本实施例中,业务数组优选地为结构体数组。本实施例中,所述业务数组用来保存数据管理过程中,真实的业务数据。本实施例中,在获取业务数组后还对业务数组进行初始化。如图3所示,本实施例中创建的业务数组包含n个元素大小(数据1,数据2…数据n),索引值为1,2…n-1,n,将业务数组初始化为0。与图1中的现有技术相比,本实施方式中,每个元素并不需要定义Valid字段。
本实施例中,获取的索引数组是预先创建的,用于保存所述业务数组中的所有空闲元素的索引值。同样地,在获取索引数组后对所述索引数组进行初始化。
数组是一种基础的数据结构,有限个相同数据类型的元素按顺序排列的集合为数组。数组的数据是连续的,有上界下界,数组中的元素都有属于自己的索引值,也叫下标,通过这些下标就能定位到该元素的数组值。例如数组a[10]表示含有十个元素,下标(也叫索引值)从0-9,在数组a[10]中,十个元素a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]的索引值分别为0、1、2、3、4、5、6、7、8、9。根据维度的不同可以将数组分为一维数组、二维数组、三维数组等等,以此类推。本实施例中,并不对数组的维度进行限定,为了清楚对本发明进行说明,本实施例中,以一维数组作为例子进行说明。另外,为了对应本实施例中索引数组的叫法,本实施例中数组的下标均统一称作索引值。
本实施例中,创建索引数组,通过将业务数组中所有的空闲元素的索引值储存到所述索引数组中,这样,在业务数组中有空闲元素的获取需求时,在索引数组中即可快速查找到可分配的空闲元素。具体的查找方式将在步骤S104中进行详细说明,此处不再赘述。下面说明如何对所述索引数组进行初始化:
数据管理装置通过预设的CUR_ID表示储存在索引数组中的,当前可分配空闲元素的索引值,且根据CUR_ID定位到当前可分配元素在业务数组的内存以及数组值。然后,在所述索引数组中,保存业务数组中的所有空闲元素(即可分配元素)的索引值,在优选地实施例中,在所述索引数组中按业务数组中空闲元素索引值的排列顺序保存所有的空闲元素。其中,将所述索引数组中每个元素的数组值定义为64个字节,其中,前32个字节用来保存当前可分配元素的数组值中对应的上一个可分配元素的索引值(如图4中PRE_INDEX),后32个字节用来储存当前可分配元素的数组值中对应的下一个可分配元素的索引值(如图4中NEXT_INDEX),进一步地,将CUR_ID初始化为0。如图4所示,建立元素大小为n+1的索引数组,数组名为index[n+1],图4左边表示索引数组index[n+1]的元素的索引值0、1、2、3…n-1、n,其中,索引数组index[n+1]的索引值与业务数组中的可分配元素的索引值一一对应,鉴于业务数组中的空闲元素可连续,也可以不连续,因此索引数组index[n+1]的索引值不一定是连续的,在图4中以连续的索引值进行说明,但并非限定。图4右边表示索引数组index[n+1]每个元素数组值中存储的内容,例如,元素0对应的数组值的前32位为元素0的上一个可分配的元素的索引值,显然,元素0为初始值不存在上一个可分配的元素的索引值,因此,初始化为无效值0xffffffff,元素0对应的数组值的后32位为元素0的下一个可分配的元素的索引值,显然是1。依次类推,将业务数组中的所有空闲元素(可分配元素)的索引值保存在索引数组index[n+1]中,另外,通过图4可看出,索引数组index[n+1]中元素n对应的数组值的后32位为元素n的下一个可分配的元素的索引值,因为业务数组的大小为n,显然是不存在n的下一个可分配的元素的,因此初始化为无效值0xffffffff。这样,索引数组index[n+1]初始化后以类似于链表的方式将业务数组中的所有空闲元素(可分配元素)的索引值保存。在业务数组的元素大小为n时,索引数组的元素大小为n+1,比业务数组多一个元素,其中,多出的一个元素大小为:索引数组的数组值中的首部32个字节及尾部32个字节均为无效值。在本实施例中,设置一个全局的CUR_ID用来表示索引数组中当前可分配元素的索引值。如图4所示,CUR_ID初始化为0。
步骤S102:当所述业务数组有空闲元素的获取需求时,按照预设规则在所述索引数组中申请可分配元素的索引值,并根据所述可分配元素的索引值定位到所述可分配元素在业务数组中的内存,以及数组值。
具体地,数据管理装置首先判断所述业务数组是否有空闲元素的获取需求。只有在有空闲元素的获取需求时,数据管理装置需要去索引数组中查找可分配的元素的索引值,然后根据索引值在业务数组中索引到相应的可分配元素。
进一步地,所述按照预设规则在所述索引数组中申请可分配元素的索引值,包括以下方式:
第一,在所述索引数组中按索引数组中可分配元素索引值的排列顺序申请可分配元素的索引值。其中,索引数组中可分配元素索引值的排列顺序可以是按照索引值从小到大排列(如图4所示),也可以是按照索引值从大到小排列。本实施例中,并不作限定。
第二,根据业务需求,在所述索引数组中申请目标索引值。
下面对以上两种方式分别进行说明:
在所述索引数组中按索引数组中可分配元素索引值的排列顺序申请可分配元素的索引值,包括如下步骤:
步骤a,当所述业务数组中有空闲元素获取需求时,将CUR_ID代表的元素作为当前可分配元素,分配为空闲元素,将所述索引数组中当前可分配元素的数组值中储存的下一个可分配元素的索引值赋值给CUR_ID;
步骤b,在所述索引数组中将已经分配出去的元素的数组值设置为无效值,同时将赋值后的CUR_ID所代表的元素的数组值中储存的上一个可分配元素的索引值设置为无效值;
步骤c,根据分配得到的空闲元素的索引值定位到所述空闲元素在所述业务数组的内存进行业务操作;
步骤d,当有新的空闲元素获取需求时,重复a至c的步骤。
例如,如图4所示,CUR_ID初始化为0,当业务数组中有空闲元素获取需求时,将元素0作为当前可分配元素分配为空闲元素,将索引数组中元素0的数组值中下一个可分配元素的索引值1(NEXT_INDEX为1)赋值给CUR_ID,此时CUR_ID指向索引数组index[n+1]的元素1(如图5所示),将已经分配出去的元素0的数组值设置为无效值0xffffffff,即元素0的数组值中上一个可分配元素的索引值(PRE_INDEX)及下一个可分配元素的索引值(NEXT_INDEX)均设置为无效值0xffffffff,同时元素1的数组值中上一个可分配元素的索引值(PRE_INDEX)也设置为无效值0xffffffff(如图6所示)。这样,根据当前可分配元素0的索引值0定位到业务数组中索引值为0的元素对应的结构体内存以及数组值。当出现下一个空闲元素的需求时,将CUR_ID指向的元素1作为当前可分配元素分配给空闲元素,且重复上述步骤a-步骤c。依次类推,当有新的空闲元素需求时,按照索引数组中可分配元素索引值的排列顺序在索引数组中依次申请CUR_ID指向的元素分给空闲元素(如图7所示)。
当然,对于一些特殊的业务需求,以上按照顺序申请可分配的元素的索引值并不满足实际需要。例如,有些产品断电重启后,重新加载时,必须获取到断电前的数据,这样,就必须指定获取目标空闲元素。因此,本实施例中,第二种方式中按照需要申请可分配的元素的索引值便能满足该情况。
具体地,在根据业务需求,在所述索引数组中申请目标索引值,包括以下步骤:
数据管理装置根据业务需求,将目标索引值所代表的目标元素作为当前可分配元素,分配为空闲元素;将所述索引数组中目标元素的数组值中储存的上一个可分配元素的索引值及下一个可分配元素的索引值均设置为无效值;将所述索引数组中,数组值中储存的下一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的下一个可分配元素的索引值,将所述索引数组中,数组值中储存的上一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的上一个可分配元素的索引值。
例如,如图8所示,需要将索引数组中的索引值为3的元素3分配为空闲元素,图8中,根据元素3的数组值中NEXT_INDEX为0,NEXT_INDEX为4可知,索引数组中可分配元素索引值,按照排列顺序为0、3、4,将指定的目标索引值为3的元素分配给空闲元素后,那么元素0的数组值中对应的下一个可分配元素的索引值3(NEXT_INDEX)则更新为4,元素4的数组值中对应的上一个可分配的元素的索引值3(PRE_INDEX)则更新为0。另外,元素3的数组值中对应的上一个可分配元素的索引值(PRE_INDEX)及下一个可分配元素的索引值(NEXT_INDEX)均设置为无效值0xffffffff。由此,更新后可得到图9中所示的索引数组。
进一步地,当获得指定的目标索引值后,根据该目标索引值即可定位到该空闲元素在业务数组的内存,以及数组值,以便展开业务需要。
步骤S103:将所述内存作为空闲元素的内存分配给相应的业务使用。
本实施例中,当展开业务过程中,有空闲元素的获取需求时,从索引数组中获取到可分配的空闲元素的索引值后,根据获取到的索引值在业务数组中可以直接定位到可分配的空闲元素的内存,将该内存分配给相应的业务使用。
进一步地,本实施例中,当在所述索引数组中按顺序申请可分配的元素的索引值时,根据需要还可以在当所述内存分配给相应的业务使用完毕后,在所述索引数组中回收所述可分配元素的索引值。具体步骤如下:
当获取到欲回收的指定元素后,获取所述索引数组中当前可分配元素及下一个可分配元素;
将当前可分配元素的数组值中储存的下一个可分配元素的索引值与下一个可分配元素的数组值中储存的上一个可分配元素的索引值均更新为指定元素的索引值;
将指定元素的数组中储存的上一个可分配元素的索引值更新为当前可分配的元素的索引值,将指定元素的数组中储存的下一个可分配元素的索引值更新为下一个可分配的元素的索引值;
根据指定元素的索引值定位到该指定元素在所述业务数组中的内存,并在所述业务数组的内存中清空该指定元素。
例如,图10所示,当前CUR_ID指向的元素为2,代表索引数组中当前可分配元素为2,按照顺序下一个可分配元素为3。
当需要将索引值为0的元素0进行回收时,即,将索引值为0的元素0重新串入元素2与元素3之间,那么需要将元素0的数组值中对应的上一个可分配的元素的索引值(PRE_INDEX)及下一个可分配的元素的索引值(PRE_INDEX)分别赋值给当前可分配的元素为2的索引值2与下一个可分配的元素为3的索引值3(如图11所示)。
另外,将元素2的数组值中对应的下一个可分配的元素的索引值(NEXT_INDEX)赋值给欲回收元素0的索引值0,将元素3的数组值中对应的上一个可分配的元素的索引值(PRE_INDEX)赋值给欲回收元素0的索引值0(如图12所示)。最后,在在业务数组中清空该索引值为0的元素在业务数组中的内存,从而完成索引值为0的元素0的回收。
本发明中,通过管理业务数组的索引值(或者下标)来管理空闲元素的分配,消耗时间恒定不变,不随数组的大小而发生变化。当数组越大,相对现有技术,性能比越高。
与现有技术相比,本发明实施方式,采用索引数组与业务数组相结合的方式,通过内部元素的关联关系指向,能够快速的实现空闲节点的资源分配和回收,减少了大量的循环遍历操作。因此,即使在业务数组元素很多的情况下,查找效率也很高。通过本发明实施方式,能够高效、快速地查找、分配和管理空闲元素。
上面各种方法的步骤划分,只是为了描述清楚,并不对步骤执行的先后顺序进行限定,而且实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种数据管理装置,如图13所示,包括至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够执行上述的数据管理方法的步骤。
其中,处理器301和存储器302采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器301。
处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时、***接口、电压调节、电源管理以及其他控制功能。而存储器302可以被用于存储处理器301在执行操作时所使用的数据。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述数据管理方法的步骤。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种数据管理方法,其特征在于,包括:
获取业务数组和索引数组,其中,所述索引数组保存所述业务数组中的所有空闲元素的索引值;
当所述业务数组存在空闲元素的获取需求时,按照预设规则在所述索引数组中申请可分配元素的索引值,并根据所述可分配元素的索引值定位到所述可分配元素在业务数组中的内存;
将所述内存作为空闲元素的内存分配给相应的业务使用。
2.根据权利要求1所述的数据管理方法,其特征在于,所述方法还包括:
当所述内存分配给相应的业务使用完毕后,在所述索引数组中回收所述可分配元素的索引值。
3.根据权利要求2所述的数据管理方法,其特征在于,在所述获取业务数组和索引数组后,还包括对所述索引数组进行初始化,其中,所述对所述索引数组进行初始化,包括:
通过预设的CUR_ID表示所述索引数组中当前可分配元素的索引值,且根据所述CUR_ID可定位到当前可分配元素在所述业务数组的内存;
在所述索引数组中,保存所述业务数组中的所有空闲元素的索引值;
将所述索引数组中每个元素的数组值定义为64个字节,其中,前32个字节用来储存当前可分配元素的数组值中对应的上一个可分配元素的索引值,后32个字节用来储存当前可分配元素的数组值中对应的下一个可分配元素的索引值;
将所述CUR_ID初始化为0。
4.根据权利要求3所述的数据管理方法,其特征在于,所述按照预设规则在所述索引数组中申请可分配元素的索引值,包括:
在所述索引数组中按所述索引数组中可分配元素索引值的排列顺序申请可分配元素的索引值。
5.根据权利要求4所述的数据管理方法,其特征在于,所述按照预设规则在所述索引数组中申请可分配的元素的索引值,还包括:
根据业务需求,在所述索引数组中申请目标索引值。
6.根据权利要求4所述的数据管理方法,其特征在于,所述在所述索引数组中按所述索引数组中可分配元素索引值的排列顺序申请可分配的元素的索引,包括:
步骤a,当所述业务数组中有空闲元素获取需求时,将CUR_ID代表的元素作为当前可分配元素,分配为空闲元素,将所述索引数组中当前可分配元素的数组值中储存的下一个可分配元素的索引值赋值给CUR_ID;
步骤b,在所述索引数组中将已经分配出去的元素的数组值设置为无效值,同时将赋值后的CUR_ID所代表的元素的数组值中储存的上一个可分配元素的索引值设置为无效值;
步骤c,根据分配得到的空闲元素的索引值定位到所述空闲元素在所述业务数组的内存进行业务操作;
步骤d,当有新的空闲元素获取需求时,重复a至c的步骤。
7.根据权利要求5所述的数据管理方法,其特征在于,所述根据业务需求,在所述索引数组中申请目标索引值,包括:
根据业务需求,将目标索引值所代表的目标元素作为当前可分配元素,分配为空闲元素;
将所述索引数组中目标元素的数组值中储存的上一个可分配元素的索引值及下一个可分配元素的索引值均设置为无效值;
将所述索引数组中,数组值中储存的下一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的下一个可分配元素的索引值,
将所述索引数组中,数组值中储存的上一个可分配元素的索引值为目标索引值的,更新为目标元素的数组值所储存的上一个可分配元素的索引值。
8.根据权利要求3所述的数据管理方法,其特征在于,所述在所述索引数组中回收所述可分配元素的索引值,包括:
当获取到欲回收的指定元素后,获取所述索引数组中当前可分配元素及下一个可分配元素;
将当前可分配元素的数组值中储存的下一个可分配元素的索引值与下一个可分配元素的数组值中储存的上一个可分配元素的索引值均更新为指定元素的索引值;
将指定元素的数组中储存的上一个可分配元素的索引值更新为当前可分配的元素的索引值,将指定元素的数组中储存的下一个可分配元素的索引值更新为下一个可分配的元素的索引值;
根据指定元素的索引值定位到该指定元素在所述业务数组中的内存,并在所述业务数组的内存中清空该指定元素。
9.一种数据管理装置,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任一项所述的数据管理方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的数据管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011634319.1A CN112667637B (zh) | 2020-12-31 | 2020-12-31 | 数据管理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011634319.1A CN112667637B (zh) | 2020-12-31 | 2020-12-31 | 数据管理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667637A true CN112667637A (zh) | 2021-04-16 |
CN112667637B CN112667637B (zh) | 2023-09-19 |
Family
ID=75413304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011634319.1A Active CN112667637B (zh) | 2020-12-31 | 2020-12-31 | 数据管理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667637B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1024661A2 (en) * | 1999-01-27 | 2000-08-02 | Hughes Electronics Corporation | Pictographic electronic program guide |
US20040267807A1 (en) * | 2000-10-13 | 2004-12-30 | Miosoft Corporation, A Delaware Corporation | Persistent data storage techniques |
CN101080094A (zh) * | 2007-04-27 | 2007-11-28 | 上海华为技术有限公司 | Urnti分配方法及其装置 |
CN101222357A (zh) * | 2007-12-26 | 2008-07-16 | 杭州华三通信技术有限公司 | 保存硬件表项索引的方法、***和主控板及接口板 |
CN101286160A (zh) * | 2008-05-30 | 2008-10-15 | 同济大学 | 数据库索引的方法 |
US20110246491A1 (en) * | 2010-04-01 | 2011-10-06 | Avere Systems, Inc. | Method and apparatus for tiered storage |
CN102915340A (zh) * | 2012-02-29 | 2013-02-06 | 浙江工商大学 | 一种扩展的基于b+树对象文件*** |
CN103678160A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种存储数据的方法和装置 |
CN106210021A (zh) * | 2016-07-05 | 2016-12-07 | 中国银行股份有限公司 | 金融应用***联机业务的实时监控方法以及监控装置 |
CN107016100A (zh) * | 2017-04-10 | 2017-08-04 | 重庆大学 | 一种基于非易失性内存文件***的元数据管理方法 |
CN108121813A (zh) * | 2017-12-27 | 2018-06-05 | 东软集团股份有限公司 | 数据管理方法、装置、***、存储介质及电子设备 |
CN108614734A (zh) * | 2016-12-13 | 2018-10-02 | 迈普通信技术股份有限公司 | 安全参数索引管理方法及装置 |
CN111597392A (zh) * | 2020-04-10 | 2020-08-28 | 北京百卓网络技术有限公司 | 一种索引处理方法、装置、设备及存储介质 |
-
2020
- 2020-12-31 CN CN202011634319.1A patent/CN112667637B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1024661A2 (en) * | 1999-01-27 | 2000-08-02 | Hughes Electronics Corporation | Pictographic electronic program guide |
US20040267807A1 (en) * | 2000-10-13 | 2004-12-30 | Miosoft Corporation, A Delaware Corporation | Persistent data storage techniques |
CN101080094A (zh) * | 2007-04-27 | 2007-11-28 | 上海华为技术有限公司 | Urnti分配方法及其装置 |
CN101222357A (zh) * | 2007-12-26 | 2008-07-16 | 杭州华三通信技术有限公司 | 保存硬件表项索引的方法、***和主控板及接口板 |
CN101286160A (zh) * | 2008-05-30 | 2008-10-15 | 同济大学 | 数据库索引的方法 |
US20110246491A1 (en) * | 2010-04-01 | 2011-10-06 | Avere Systems, Inc. | Method and apparatus for tiered storage |
CN102915340A (zh) * | 2012-02-29 | 2013-02-06 | 浙江工商大学 | 一种扩展的基于b+树对象文件*** |
CN103678160A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种存储数据的方法和装置 |
CN106210021A (zh) * | 2016-07-05 | 2016-12-07 | 中国银行股份有限公司 | 金融应用***联机业务的实时监控方法以及监控装置 |
CN108614734A (zh) * | 2016-12-13 | 2018-10-02 | 迈普通信技术股份有限公司 | 安全参数索引管理方法及装置 |
CN107016100A (zh) * | 2017-04-10 | 2017-08-04 | 重庆大学 | 一种基于非易失性内存文件***的元数据管理方法 |
CN108121813A (zh) * | 2017-12-27 | 2018-06-05 | 东软集团股份有限公司 | 数据管理方法、装置、***、存储介质及电子设备 |
CN111597392A (zh) * | 2020-04-10 | 2020-08-28 | 北京百卓网络技术有限公司 | 一种索引处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112667637B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
CN107111450B (zh) | 使用分区表进行的磁盘分区拼接和重新均衡 | |
US20180285376A1 (en) | Method and apparatus for operating on file | |
CN115220918A (zh) | 一种神经网络的内存分配方法及装置 | |
CN112765262B (zh) | 一种数据重分布方法、电子设备及存储介质 | |
CN106682215B (zh) | 一种数据处理方法和管理节点 | |
CN110704330B (zh) | 数据存取控制装置及方法 | |
CN110674052B (zh) | 内存管理方法、服务器及可读存储介质 | |
US20210149985A1 (en) | Method and apparatus for processing large-scale distributed matrix product | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN110618883B (zh) | 一种用于共享内存链表的方法、装置、设备及存储介质 | |
CN111984729A (zh) | 异构数据库数据同步方法、装置、介质和电子设备 | |
CN111966287A (zh) | 数据存储方法、电子设备及存储介质 | |
KR20150117522A (ko) | 그래픽스 상태 관리 장치 및 방법 | |
CN113805816B (zh) | 一种磁盘空间管理方法、装置、设备及存储介质 | |
CN107451070B (zh) | 一种数据的处理方法和服务器 | |
CN104573112A (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN114490062A (zh) | 一种本地磁盘的调度方法、装置、电子设备及存储介质 | |
CN116662019B (zh) | 请求的分配方法、装置、存储介质及电子装置 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
CN114443598A (zh) | 写数据方法、装置、计算机设备及存储介质 | |
CN112667637A (zh) | 数据管理方法、装置及计算机可读存储介质 | |
CN110163791B (zh) | 数据计算流图的gpu处理方法及装置 | |
CN114415971B (zh) | 数据处理方法以及装置 | |
CN113778688B (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 |