【技术实现步骤摘要】
数据压缩方法、装置、计算机设备及存储介质
本专利技术涉及数据处理
,尤其涉及一种数据压缩方法、装置、计算机设备及存储介质。
技术介绍
目前,在压缩实现中,将线程分为前端事务线程和后台压缩线程。通常的做法是需要同步的对象持有一把锁,在多线程同步时,每个线程在操作该对象前对对象进行加锁,对应到压缩的实现,当压缩线程在操作一个对象时,为了避免该对象同时被前端事务所操作,需要对该对象进行加锁,从而保证数据元数据的一致性。这样该对象正在压缩时,因其已经被加锁,前端事务需要等待该锁被释放,再对对象进行加锁进行操作。这样在数据被压缩的过程中,就会造成前端数据写入等待,从而造成前端事务被阻塞,造成数据写入速度下降及延时增加。
技术实现思路
本专利技术实施例提供了一种压缩方法、装置、计算机设备及存储介质,旨在解决在数据压缩过程中,由于压缩线程对对象进行加锁,从而造成前端事务被阻塞,数据写入速度下降及延时增加的问题。第一方面,本专利技术实施例提供了一种数据压缩方法,其包括:若后台压缩线程接收到压缩指令,从压缩列 ...
【技术保护点】
1.一种数据压缩方法,其特征在于,包括:/n若后台压缩线程接收到压缩指令,从压缩列表中获取当前的待压缩对象;/n通过状态机对当前的待压缩对象进行加锁并根据事务标识判断当前的待压缩对象是否被前端事务线程操作;/n若当前的待压缩对象未被前端事务线程操作,对当前的待压缩对象进行解锁并压缩;/n若当前的待压缩对象被前端事务线程操作,则从所述压缩列表中获取下一个待压缩对象进行压缩。/n
【技术特征摘要】
1.一种数据压缩方法,其特征在于,包括:
若后台压缩线程接收到压缩指令,从压缩列表中获取当前的待压缩对象;
通过状态机对当前的待压缩对象进行加锁并根据事务标识判断当前的待压缩对象是否被前端事务线程操作;
若当前的待压缩对象未被前端事务线程操作,对当前的待压缩对象进行解锁并压缩;
若当前的待压缩对象被前端事务线程操作,则从所述压缩列表中获取下一个待压缩对象进行压缩。
2.根据权利要求1所述的数据压缩方法,其特征在于,所述从压缩列表中获取当前的待压缩对象,包括:
根据待压缩对象的数据量按照由大到小进行排序;
根据待压缩对象的对象标识符按照所述排序由大到小从压缩列表中获取当前的待压缩对象。
3.根据权利要求1所述的数据压缩方法,其特征在于,所述通过状态机对当前的待压缩对象进行加锁并根据事务标识判断当前的待压缩对象是否被前端事务线程操作,包括:
对当前的待压缩对象进行加锁并根据事务标识判断当前的待压缩对象是否被前端事务线程操作;
若事务标识返回的标识值为一,则判定待压缩对象被前端事务线程操作;
若事务标识返回的标识值为零,则判定待压缩对象未被前端事务线程操作。
4.根据权利要求1所述的数据压缩方法,其特征在于,所述对当前的待压缩对象进行解锁并压缩之后,还包括:
对压缩后的对象进行加锁并判断压缩后的对象是否被前端事务线程操作;
若压缩后的对象未被前端事务线程操作,将压缩后的对象的元数据提交到预设的数据库中;
若压缩后的对象被前端事务线程操作,等待前端事务线程操作结束后再将压缩后的对象的元数据提交到所述数据库中。
5.根据权利要求1所述的数据压缩方法,其特征在于,所述从压缩列表中获取当前的待压缩对象之前,...
【专利技术属性】
技术研发人员:宋小兵,
申请(专利权)人:深圳平安通信科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。