一种Json数据的存储方法及装置的制造方法_2

文档序号:9839658阅读:来源:国知局
on数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中时,所述映射单元用于:
[0043 ]可以根据各个Json数据信息、J son摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
[0044]较佳的,所述第二处理单元进一步用于:
[0045]在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
[0046]较佳的,进一步包括:
[0047]更新单元,用于执行以下操作:
[0048]接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
[0049]基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引ig息;
[0050]基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一 Json数据信息;
[0051 ]根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
[0052]将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
[0053]综上所述,本申请实施例中,Json数据表被分割处理,分割后获得的Json数据信息和相应的Json摘要信息通过关系索引信息相互关联并形成关系链,再将这些数据经由内存交换区映射至指定的存储区域,这样,能够在内存比较紧张的环境下处理数据节点比较多,内存占用比较大的Json表,不但节省了内存空闲,也未增添系统运行负荷,减少了代码运行期对内存的依赖。
【附图说明】
[0054]图1为本申请实施例中Json数据存储示意流程图;
[0055]图2为本申请实施例中Json数据信息分割示意图;
[0056]图3为本申请实施例中Json数据存储原理示意图;
[0057]图4为本申请实施例中Json数据存储详细流程图;
[0058]图5为本申请实施例中Json存储装置功能结构示意图。
【具体实施方式】
[0059]下面结合附图对本申请优选的实施方式进行详细说明。
[0060]为了在内存不充足的环境中,实现Json数据的顺利存储,本申请实施例中,将常驻在内存中的Json数据表通过数据分割、内存映射等手段分块存储到指定存储装置(如,硬盘、Flash中,进而减少设备运行期Json对内存的占用。)
[0061]参阅图1所示,本申请实施例中,Json数据存储示意流程如下:
[0062]步骤100:将Json数据表按照设定的路径深度N分割为若干Json数据信息(记录在JB块中),该路径深度N表征从选取的根节点到最外层叶子节点所包含的路径数。
[0063]例如,参阅图2所示,假设N=3,那么,从ROOT节点开始,将路径深度未超过3的节点I’一>节点2’一>节点3’分割为一个Json数据信息,将路径深度超过3的节点I一〉节点2— >节点3—〉节点4分割为节点I一〉节点2—〉节点3和节点4,以节点4为新的根节点继续分割,由于其路径不超过3,不再继续分割,这样,便得到了节点1一>节点2 —>节点3和节点4两个Json数据信息。
[0064]进一步地,为了保证Json数据信息能够顺利存储,较佳的,可以将占用内存数据量超过设定的数据量阈值的Json数据信息作进行再次分割,获得占用内存数据量符合要求的Json数据信息,例如,数据量阈值为10K,而一Json数据信息占用内存数据量为25K,超过1K,则对该Json数据信息再次进行分割,一种方式为,基于1K的分割,则获得两个1K的子Json数据信息和一个5K的子son数据信息;另一种方式为,均等分割,即分割为三个8K的子Json数据信息;还可以做不均等的分割,只要使再次分割后的每一个Json数据信息不大于1K即可。
[0065]步骤110:分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息(记录在CB中)。
[0066]例如,在分割过程中分别记录每一个Json数据信息相对于Json数据表的数据段偏移量,相对路径,数据类型和占用内存大小等等,作为关键信息生成相应的Json摘要信息。
[0067]步骤120:分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引?目息(记录在OB块中)。
[0068]具体的,即是记录Json数据信息和相应的Json摘要信息之间的关系描述信息,该关系描述信息主要是记录如何根据Json数据信息和Json摘要信息还原出Json数据表。
[0069]步骤130:将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
[0070]具体的,可以先在内存中创建内存交换区,在内存交换区和指定的存储区域之间建立映射关系,先将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的缓存在内存交换区中,再基于上述映射关系经内存交换区映射至指定存储区域内的空闲区域中。具体的,较佳的,在映射过程中,可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断上述指定存储区域中是否存在相应大小的空闲区域,若是,则基于上述映射关系直接映射,否则,先在上述指定存储区域中创建相应大小的空闲区域后,再基于上述映射关系进行映射。
[0071 ]进一步地,还需要在内存或不同于上述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息,即通过索引配置信息,可以读取到所需的任何一个关系索引信息,再基于获得的关系索引信息,获取相应的Json摘要信息和Json数据信息;其中,索引配置信息可以保存在内存中,或者,为了安全起见,也可以保存至其他存储区域,如,数据库中,具体视应用环境而定,在此不再赘述。
[0072]具体的,将Json数据表分割为若干Json数据信息、Json摘要信息和关系索引信息后进行存储的原理示意图如图3所示。
[0073]基于上述实施例,进一步地,若Json数据表中的数据需要进行更新(如,增加、删除、修改等等),则需要在接收到针对任一Json数据信息(以下称Json数据信息A)的更新指令时,读取索引配置信息,再基于该索引配置信息在上述指定存储区域中读取Json数据信息A对应的关系索引信息A,以及基于读取的关系索引信息A,在上述指定存储区域中获取Json数据信息A对应的Json摘要信息A,并基于获取的Json摘要信息A定位Json数据信息A,接着,根据更新指令对Json数据信息A进行数据更新,以及对相应的Json摘要信息A和关系索引信息A进行适应性更新;最后,将更新后的任一 Json数据信息A及相应的Json摘要信息A和关系索引信息A,进行上述指定存储区域中重新进行保存。
[0074]这样,可以化繁为简地对Json数据表分割后获得的每一个Json数据信息进行及时更新,并且不会给系统带来过多的运行负荷。
[0075]参阅图4所示,下面通过一个具体的实施例对J
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1