一种基于分组标识的分布式缓存数据隔离与回收方法及系统与流程
本发明涉及分布式存储,特别是涉及一种基于分组标识的分布式缓存数据隔离与回收方法及系统。
背景技术:
1、分布式对象存储系统通常以对象作为数据管理的基本单元,并通过对象名称、哈希值和归置组将对象分布到多个存储节点。在对象存储场景中,海量小文件或小对象会产生大量对象元数据、索引记录和随机写请求,从而增加元数据服务压力、放大随机 i/o,并降低数据恢复和空间管理效率。
2、为提升小对象的写入效率,现有分布式缓存层通常采用在线合并方式:业务网关接收客户端对象写请求后,将对象数据追加写入缓存大对象,并在索引对象或索引数据库中记录客户端对象与缓存大对象之间的映射关系;缓存大对象达到容量、数量或其他阈值后,缓存层将其回刷到后端存储池。一种典型命名格式为:
3、mcache_{key}_{bucket}_{pos}
4、其中,key 和 bucket 根据客户端对象名称及业务分组信息计算,用于确定客户端对象对应的缓存大对象;pos 用于区分同一 key、bucket 下按固定容量生成的不同缓存大对象序号。采用固定的 key、bucket 映射可以使同一客户端对象在后续读、写和删除请求中定位到相同的缓存大对象。
5、对象存储系统还提供生命周期管理能力。业务人员可以为对象设置保留、迁移或删除规则,例如某一对象名前缀对应的对象在创建后若干天删除,或者在达到保留周期后迁移到低成本存储介质。生命周期任务通常会在相近时间集中处理满足同一规则的对象。
6、在现有技术中,基于对象名哈希的小对象在线合并方案已有发展。例如,cn202411594313公开了一种基于索引的海量小文件存储方法和系统,写入小文件时缓存进程按顺序写入缓存对象,在索引中记录小文件大小和存储开始位置,并依据缓存对象的数据老化度将缓存对象回刷至后端大对象。该类方案主要围绕小文件合并、索引记录和回刷效率展开,但其 key 和 bucket 依赖对象名哈希,生命周期相同或删除周期相同的对象难以稳定地进入同一缓存大对象。当不同删除周期的客户端对象被追加到同一缓存大对象后,其中一批对象到期删除时仅形成局部数据空洞,缓存大对象仍可能因其他对象残留而无法及时释放,空间利用率下降。
7、针对生命周期管理,现有方案也尝试从时间维度进行批量处理。例如,cn117349255a公开了基于生命周期管理索引、按单位时间写入对象建立索引并批量删除到期对象的方案;cn117648297b公开了按写入时间戳离线合并小对象、以减少过期删除空洞的方案。上述方案在删除侧或合并侧考虑了时间因素,但其时间分组主要依据写入时间或单位时间窗口,并未与缓存层的对象组织方式建立关联,因而难以解决缓存大对象中不同删除周期对象混排所导致的空洞滞留问题。
8、在空间回收方面,cn119166605a公开了一种基于分布式日志的小文件合并空间回收方法,在覆盖写或删除时通过索引确定受影响的聚合对象和区间,生成空间回收日志记录待回收空间。该类方案能够处理单个客户端对象失效产生的空间,但当不同删除周期的客户端对象混合在同一缓存大对象中时,即使逐个客户端对象回收正确,仍可能在较长时间内保留大量数据空洞,难以按同一业务删除周期将一批对象作为整体回收。
9、在分组与隔离方面,部分缓存系统使用租户标识、资源组标识、键前缀或由策略生成的标识进行访问隔离、配额分配和逐出控制。例如,cn115563085b公开了根据策略生成分组标识并绑定到数据表的方案。该类标识主要服务于访问权限或资源管理,与生命周期删除周期并不等同,也缺少与对象生命周期删除周期的一致性关联,分组信息在后续操作中难以保持一致。若分组信息仅存在于首次写请求或某一处理环节,后续覆盖写、删除、回刷、透写和故障恢复等操作可能丢失或无法复用该信息,导致对象重新映射到错误的缓存大对象,或在缓存池与后端池之间产生定位不一致。
10、此外,在大 i/o 透写场景中,请求可能被拆分为对齐部分和非对齐部分,分别写入后端对象和缓存对象。如果两部分采用不同的定位规则,或者回刷时未沿用相同映射关系,会进一步破坏客户端对象位置的一致性,增加后续读取、删除和空间回收的复杂度。
11、综上,现有技术在小对象在线合并、生命周期批量删除、空间回收和分组隔离等方面已有发展,但缓存大对象中不同删除周期对象混排、空间回收粒度与业务删除周期不匹配、生命周期规则与缓存对象的组织方式之间缺少关联、分组信息在后续操作中难以保持一致、透写与回刷定位不一致等问题仍然存在。上述不足制约了分布式缓存层对小对象数据隔离、空间利用率和生命周期回收效率的进一步提升。
12、需要说明的是,在上述背景技术部分公开的信息仅用于对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、本发明的主要目的在于克服上述背景技术中存在的缺陷,提供一种基于分组标识的分布式缓存数据隔离与回收方法及系统。
2、为实现上述目的,本发明采用以下技术方案:
3、一种基于分组标识的分布式缓存数据隔离与回收方法,包括以下步骤:
4、s1、接收客户端对象的写请求,根据对象名称匹配生命周期规则,确定所述客户端对象的有效到期条件;
5、s2、根据所述有效到期条件生成分组标识,所述分组标识用于标识具有相同有效到期条件的客户端对象;
6、s3、将所述分组标识随所述写请求传递至分布式缓存层;
7、s4、所述分布式缓存层根据所述客户端对象的对象名称计算缓存键,并根据所述分组标识确定缓存桶,其中,所述缓存键的计算与是否指定分组标识无关;未指定分组标识时采用默认映射算法确定缓存桶,指定分组标识时将所述分组标识映射至与默认桶区间隔离的分组桶区间;
8、s5、根据所述缓存键和所述缓存桶确定缓存大对象,将所述客户端对象的数据写入所述缓存大对象,并将所述分组标识及客户端对象与缓存大对象的映射关系持久化至索引;
9、s6、在所述客户端对象的后续请求中,从所述索引获取所述分组标识,并基于所述分组标识、所述缓存键和所述缓存桶定位所述缓存大对象,以使相同分组标识的客户端对象集中至同一缓存大对象,并在生命周期删除时按分组整体回收。
10、一种基于分组标识的分布式缓存数据隔离与回收系统,包括业务网关和分布式缓存层;
11、所述业务网关与客户端和所述分布式缓存层通信连接,配置为:接收客户端对象的写请求,根据对象名称匹配生命周期规则,确定所述客户端对象的有效到期条件,根据所述有效到期条件生成分组标识,并将所述分组标识随所述写请求传递至所述分布式缓存层;
12、所述分布式缓存层配置为:根据所述客户端对象的对象名称计算缓存键,并根据所述分组标识确定缓存桶,其中,所述缓存键的计算与是否指定分组标识无关;未指定分组标识时采用默认映射算法确定缓存桶,指定分组标识时将所述分组标识映射至与默认桶区间隔离的分组桶区间;根据所述缓存键和所述缓存桶确定缓存大对象,将所述客户端对象的数据写入所述缓存大对象,并将所述分组标识及客户端对象与缓存大对象的映射关系持久化至索引;在所述客户端对象的后续请求中,从所述索引获取所述分组标识,并基于所述分组标识、所述缓存键和所述缓存桶定位所述缓存大对象,以使相同分组标识的客户端对象集中至同一缓存大对象,并在生命周期删除时按分组整体回收。
13、本发明具有如下有益效果:
14、本发明提出一种基于分组标识的分布式缓存数据隔离与回收方法及系统,将业务网关侧的生命周期规则转化为可传递、可持久化的分组标识,并进一步映射到与原有哈希桶区间不重叠的缓存桶区间,从而使具有相同有效到期条件的客户端对象能够稳定地集中到同一缓存大对象。与现有基于对象名哈希进行小对象合并的方式相比,不同删除周期的对象不再混入同一缓存大对象;当同一批对象到期删除时,缓存大对象上的映射关系能够被整体清理,进而及时释放缓存大对象空间,减少局部数据空洞和空间滞留。同时,未指定分组标识的对象继续沿用原有哈希映射,分组桶与普通桶相互隔离,在不改变未分组对象映射关系的前提下实现存储级隔离,降低了升级和存量数据迁移的风险。
15、本发明在首次写入时将分组标识及客户端对象与缓存大对象的映射关系持久化至索引,并在后续读、覆盖写、删除、回刷、透写、主从同步和故障恢复过程中从索引获取或反解该分组标识,使同一客户端对象在其存续期间始终定位到相同的缓存大对象。与分组标识仅存在于首次写请求或某一处理环节的方案相比,本发明避免了后续操作中分组信息丢失或无法复用所导致的对象位置漂移,保证了对象生命周期内映射关系的稳定性。
16、在缓存回刷和大对象透写场景中,缓存大对象回刷至后端对象时沿用相同的缓存键、缓存桶和分组标识,对齐部分直接写入后端代理对象、非对齐部分写入缓存大对象时也共用同一分组标识、缓存键和缓存桶。这样,缓存池与后端池之间的数据定位保持一致,后续读取、覆盖写、删除和回收均可依据同一分组标识回溯到对应的客户端对象及其数据区间,避免了透写和回刷过程中因定位规则不一致而破坏客户端对象位置一致性的问题。
17、在故障恢复和主从同步方面,操作日志、缺失追踪信息以及对象名称中均保留或能够反解分组标识,使主从副本对同一对象操作采用同一映射,主节点在故障恢复后也能重新计算客户端对象对应的分组桶。与分组信息仅保存在单一位置或无法反解的方案相比,本发明降低了主从同步和恢复过程中分组关系丢失的风险,增强了系统在异常场景下的映射一致性。
18、此外,由于相同业务规则的对象在布局上更为集中,生命周期批处理、索引遍历和缓存对象清理可以围绕分组桶进行组织,从而降低索引和遍历开销。上述效果贯穿从业务规则匹配、分组标识生成、缓存桶映射、索引持久化到后续读写删除、回刷透写及故障恢复的完整过程,使分布式缓存层在小对象数据隔离、空间利用率和生命周期回收效率方面得到整体提升。
19、本发明实施例中的其他有益效果将在下文中进一步述及。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com