A method and device for storing a data object is provided. The method comprises the following steps: when receiving a write request to a data object, split data of the data object for the first part of the data and the second part of the data, among them, the first part of the data includes data fields of the data object, the second part of the data include: the metadata of the data object; the first data file will be the first part of the data is written first stored in the external storage device; second data files will be the first part of the data in the position information of the first external storage device and the second part of the data is written is stored in a second external storage device. According to the method and device, it is convenient to load data with high access frequency and data with high access frequency to the buffer area, so as to effectively reduce the cache space occupied by each data object while ensuring the speed of data retrieval.
【技术实现步骤摘要】
存储数据对象的方法及装置
本专利技术涉及数据存储
,更具体地讲,涉及一种存储数据对象的方法及装置。
技术介绍
现有数据库或文件系统中通常使用B/B+树、哈希表、跳表等作为其缓存管理的方式,数据通常以对象的形式与这些结构相关联。以B/B+树为例,各个数据对象将被分别存储在各个树节点中,在B+树中,数据信息被移至叶子节点,B+树的内部节点只被用来存储相关Key值范围。由于数据节点较大,通常会占用很多内存,在进行大数据分析时,常常会导致内存不足,此时数据库或文件系统需根据相关置换算法(例如,LRU(LeastRecentlyUsed,近期最少使用)算法)废弃内存数据页面,在内存页被废弃之后,B树或B+树会根据废弃数据进行B树或B+树的调整,保证B树或B+树的平衡性。在新的数据被载入内存时,B树或B+树结构发生变化,此时也需要进行树的调整。哈希表和跳表中也存在类似的操作方式。即,现有的存储数据对象的方式,使得加载到缓存区的数据对象(例如:B/B+树的叶子节点)对缓存空间消耗过大,从而吞噬很大一部分内存,而内存不足则导致:数据检索出现较多的缓存缺失、页面被频繁地换入换 ...
【技术保护点】
一种存储数据对象的方法,包括:当接收到对数据对象的写请求时,将所述数据对象的数据拆分为第一部分数据和第二部分数据,其中,所述第一部分数据包括:所述数据对象的数据字段,所述第二部分数据包括:所述数据对象的元数据;将所述第一部分数据写入存储于第一外部存储设备的第一数据文件;将所述第一部分数据在所述第一外部存储设备中的位置信息和所述第二部分数据写入存储于第二外部存储设备的第二数据文件,其中,所述第一外部存储设备和所述第二外部存储设备为同一外部存储设备或不同的外部存储设备。
【技术特征摘要】
1.一种存储数据对象的方法,包括:当接收到对数据对象的写请求时,将所述数据对象的数据拆分为第一部分数据和第二部分数据,其中,所述第一部分数据包括:所述数据对象的数据字段,所述第二部分数据包括:所述数据对象的元数据;将所述第一部分数据写入存储于第一外部存储设备的第一数据文件;将所述第一部分数据在所述第一外部存储设备中的位置信息和所述第二部分数据写入存储于第二外部存储设备的第二数据文件,其中,所述第一外部存储设备和所述第二外部存储设备为同一外部存储设备或不同的外部存储设备。2.根据权利要求1所述的方法,其中,所述第一部分数据包括的数据字段的长度大于预定阈值;所述第二部分数据还包括:所述数据对象中长度不大于预定阈值的数据字段。3.根据权利要求1所述的方法,其中,在将所述第一部分数据写入存储于第一外部存储设备的第一数据文件之后,且在将所述第一部分数据在所述第一外部存储设备中的位置信息和所述第二部分数据写入存储于第二外部存储设备的第二数据文件之前,所述方法还包括:将所述第一部分数据在所述第一外部存储设备中的位置信息和所述第二部分数据写入文件系统的日志文件;将所述日志文件存储到所述第一外部存储设备或所述第二外部存储设备。4.根据权利要求1所述的方法,还包括:当接收到对所述数据对象的读请求时,将所述第一部分数据在所述第一外部存储设备中的位置信息和所述第二部分数据从所述第二外部存储设备加载到内存的缓存区。5.根据权利要求1所述的方法,其中,所述第一部分数据在所述第一外部存储设备中的位置信息为:所述第一部分数据的结构描述信息在所述第一外部存储设备中的位置信息,其中,所述结构描述信息包括:所述第一部分数据包括的各数据字段在所述第一数据文件中的位置信息和长度信息;或者,所述第一部分数据在所述第一外部存储设备中的位置信息为:所述第一部分数据包括的各数据字段分别在所述第一外部存储设备中的位置信息和长度信息。6.一种存储数据对象的装置,包括:拆分单元,当接收到对数据对象的写请求时,将所述数据对象的数据拆分为第一部分数据和第二...
【专利技术属性】
技术研发人员:解锋涛,邵海珠,戴月华,
申请(专利权)人:三星中国半导体有限公司,三星电子株式会社,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。