一种数据同步方法及相关装置与流程

摘要: 本技术涉及计算机,尤其涉及一种数据同步方法及相关装置。背景技术:1、随着计算机技术的快速发展,当前的计算机已经广泛应用多核架构来执行数据的处理。在多核架构下,计...
一种数据同步方法及相关装置与流程

本技术涉及计算机,尤其涉及一种数据同步方法及相关装置。

背景技术:

1、随着计算机技术的快速发展,当前的计算机已经广泛应用多核架构来执行数据的处理。在多核架构下,计算机中通常会包括多个处理单元,且多个处理单元能够并行地执行数据处理。

2、此外,在多核架构下,为了提高数据处理效率,不同的处理单元往往会使用不同的本地存储介质来缓存数据,且不同的处理单元之间会使用全局存储介质来交换数据。一般来说,处理单元访问本地存储介质的速度要高于访问全局存储介质的速度,因此处理单元往往会将经常使用的数据缓存到本地存储介质上。

3、但是,在相关技术中,针对于不同的处理单元之间需要共享的数据,为了保证共享数据的一致性,共享数据往往是只存储于所有处理单元都能够访问的全局存储介质中,导致处理单元访问共享数据时的效率较低。

技术实现思路

1、本技术提供一种数据同步方法,能够提高处理单元访问共享数据的效率。

2、第一方面,提供一种数据同步方法,应用于具有全局存储介质和本地存储介质的执行设备上。数据同步方法包括:在运行于第一处理单元的第一实例请求访问共享数据时,执行设备为第一实例申请目标锁,目标锁为位于全局存储介质上的共享数据对应的锁,目标锁用于控制实例对共享数据的访问。即,存储于全局存储介质上的共享数据受到目标锁的管理,因此在第一实例请求访问共享数据时,执行设备需要先为第一实例申请目标锁。第一实例例如可以为线程或进程等实体。

3、在第一实例申请得到目标锁的情况下,执行设备将共享数据从全局存储介质拷贝至第一处理单元使用的第一本地存储介质上,以使得第一处理单元能够在第一本地存储介质上访问共享数据,其中第一处理单元访问第一本地存储介质的速度高于访问全局存储介质的速度。

4、在第一实例释放目标锁的情况下,执行设备将更新后的共享数据从第一本地存储介质拷贝至全局存储介质上。比如,执行设备可以采用更新后的共享数据来覆盖全局存储介质上原始的共享数据,从而实现全局存储介质上的共享数据的更新。

5、本方案中,通过将锁与全局存储介质上的共享数据结合,使得处理单元上的实例在获得锁时,允许将共享数据从全局存储介质拷贝至本地存储介质上处理,有效地提高共享数据的访问效率。并且,处理单元上的实例在释放锁时,还会将本地存储介质上的更新后的共享数据回刷到全局本地存储介质上,以保证共享数据的一致性。由于锁能够控制实例对全局存储介质上共享数据的访问,因此基于锁与共享数据的结合,能够保证共享数据在不同的处理单元之间的一致性,避免不同的处理单元访问到的共享数据不同。

6、在一种可能的实现方式中,数据同步方法应用于包括多个处理单元集合的架构,多个处理单元集合中的处理单元能够访问全局存储介质,且不同的处理单元集合使用不同的本地存储介质,第一处理单元为多个处理单元集合中的处理单元。

7、在一种可能的实现方式中,在第二实例无法获得目标锁的情况下,当运行于第二处理单元的第二实例请求访问位于全局存储介质上的共享数据时,执行设备阻塞第二实例。

8、也就是说,在第一实例持有目标锁时,由于第二实例无法获得目标锁,因此执行设备可以将第二实例阻塞(此时第二实例往往会被暂停执行而等待目标锁的释放),即第二实例无法访问全局存储介质中的共享数据。

9、本方案中,在共享数据对应的锁已经被实例持有的情况下,通过锁来限制其他实例对全局存储介质中的共享数据的访问,能够尽可能地避免使用不同本地存储介质的处理单元上所运行的实例针对于同一个共享数据对象会访问到不同的数据内容,从而保证共享数据的一致性。

10、在一种可能的实现方式中,在第一实例释放目标锁之后,且第二实例申请得到目标锁的情况下,执行设备将更新后的共享数据从全局存储介质拷贝至第二处理单元对应的第二本地存储介质上,以使得第二处理单元能够在第二本地存储介质上访问更新后的共享数据。

11、在一种可能的实现方式中,目标锁为读写锁,在第一实例申请得到目标锁中的读锁的情况下,全局存储介质上所存储的共享数据允许被拷贝至第一本地存储介质之外的本地存储介质上。即,运行于其他处理单元上的其他实例同样可以申请得到目标锁的读锁,进而触发将全局存储介质上的共享数据拷贝至其他的本地存储介质上。

12、本方案中,通过将读写锁与共享数据结合,能够实现多个实例同时高效地读取共享数据,且保证共享数据在不同的本地存储介质上的一致性,满足用户多样性的软件运行需求。

13、在一种可能的实现方式中,读写锁为多读单写锁,在第一实例申请得到目标锁中的写锁的情况下,全局存储介质上所存储的共享数据不再允许被拷贝至第一本地存储介质之外的本地存储介质上。即,运行于其他处理单元上的其他实例无法再申请得到目标锁的读锁和写锁,也就无法触发将全局存储介质上的共享数据拷贝至其他的本地存储介质上。

14、本方案中,通过以多读单写锁来实现目标锁,能够使得多个实例能够同时访问全局存储介质上的共享数据,且同一时间下仅有一个实例能够对全局存储介质上的共享数据进行修改,确保了在提高共享数据的访问效率的同时,保证了共享数据在不同的本地存储介质上的一致性。

15、在一种可能的实现方式中,读写锁为多读多写锁,在第一实例申请得到目标锁中的写锁的情况下,全局存储介质上所存储的共享数据允许被拷贝至第一本地存储介质之外的本地存储介质上。

16、在一种可能的实现方式中,全局存储介质上还存储有共享数据对应的缓存记录表,缓存记录表用于指示不同的本地存储介质上所缓存的共享的数据的有效情况。

17、在第一实例申请得到目标锁且缓存记录表指示第一本地存储介质上所缓存的共享的数据无效的情况下,执行设备将共享数据从全局存储介质拷贝至第一处理单元对应的第一本地存储介质上。

18、在第一实例申请得到目标锁且缓存记录表指示第一本地存储介质上所缓存的共享的数据有效的情况下,执行设备则无需将共享数据从全局存储介质拷贝至第一处理单元对应的第一本地存储介质上。

19、本方案中,通过在全局存储介质上设置缓存记录表,以指示各个本地存储介质上所缓存的共享数据是否有效,能够保证全局存储介质和本地存储介质上被使用的共享数据的一致性,且避免本地存储介质上共享数据的频繁更新,降低设备的资源消耗。

20、在一种可能的实现方式中,在将更新后的共享数据从第一本地存储介质拷贝至全局存储介质上之后,执行设备更新缓存记录表,得到更新后的缓存记录表。其中,更新后的缓存记录表用于指示第一本地存储介质以外的本地存储介质上所缓存的共享的数据无效。

21、本方案中,通过在实例释放写锁时,触发将本地存储介质中更新后的共享数据回刷到全局存储介质上,并且在缓存记录表中修改其他本地存储介质上已缓存的共享数据的有效情况,能够使得后续其他cc域的实例请求访问共享数据时能够拷贝最新的共享数据到本地存储介质中,保证不同的本地存储介质上共享数据的一致性。

22、在一种可能的实现方式中,目标锁为互斥锁,在第一实例申请得到目标锁的情况下,全局存储介质上所存储的共享数据不再被允许拷贝至第一本地存储介质之外的本地存储介质上。即,目标锁被一个实例持有之后,其他实例则不再被允许访问目标锁所保护的共享数据。

23、第二方面,提供一种数据同步装置,包括:锁申请模块,用于在运行于第一处理单元的第一实例请求访问共享数据时,为第一实例申请目标锁,目标锁为位于全局存储介质上的共享数据对应的锁,目标锁用于控制实例对共享数据的访问;处理模块,用于在第一实例申请得到目标锁的情况下,将共享数据从全局存储介质拷贝至第一处理单元使用的第一本地存储介质上,以使得第一处理单元能够在第一本地存储介质上访问共享数据,其中第一处理单元访问第一本地存储介质的速度高于访问全局存储介质的速度;处理模块,还用于在第一实例释放目标锁的情况下,将更新后的共享数据从第一本地存储介质拷贝至全局存储介质上。

24、在一种可能的实现方式中,数据同步装置应用于包括多个处理单元集合的架构,多个处理单元集合中的处理单元均能够访问全局存储介质,且不同的处理单元集合使用不同的本地存储介质,第一处理单元为多个处理单元集合中的处理单元。

25、在一种可能的实现方式中,处理模块,还用于在第一实例持有目标锁的情况下,当运行于第二处理单元的第二实例请求访问位于全局存储介质上的共享数据时,阻塞第二实例,其中第一处理单元和第二处理单元使用不同的本地存储介质。

26、在一种可能的实现方式中,处理模块,还用于在第一实例释放目标锁之后,且第二实例申请得到目标锁的情况下,将更新后的共享数据从全局存储介质拷贝至第二处理单元对应的第二本地存储介质上。

27、在一种可能的实现方式中,目标锁为读写锁,在第一实例申请得到目标锁中的读锁的情况下,全局存储介质上所存储的共享数据允许被拷贝至第一本地存储介质之外的本地存储介质上。

28、在一种可能的实现方式中,读写锁为多读单写锁,在第一实例申请得到目标锁中的写锁的情况下,全局存储介质上所存储的共享数据不再允许被拷贝至第一本地存储介质之外的本地存储介质上。

29、在一种可能的实现方式中,读写锁为多读多写锁,在第一实例申请得到目标锁中的写锁的情况下,全局存储介质上所存储的共享数据允许被拷贝至第一本地存储介质之外的本地存储介质上。

30、在一种可能的实现方式中,全局存储介质上还存储有共享数据对应的缓存记录表,缓存记录表用于指示不同的本地存储介质上所缓存的共享的数据的有效情况;处理模块,还用于在第一实例申请得到目标锁且缓存记录表指示第一本地存储介质上所缓存的共享的数据无效的情况下,将共享数据从全局存储介质拷贝至第一处理单元对应的第一本地存储介质上。

31、在一种可能的实现方式中,在将更新后的共享数据从第一本地存储介质拷贝至全局存储介质上之后,处理模块,还用于更新缓存记录表,得到更新后的缓存记录表;其中,更新后的缓存记录表用于指示第一本地存储介质以外的本地存储介质上所缓存的共享的数据无效。

32、在一种可能的实现方式中,目标锁为互斥锁,在第一实例申请得到目标锁的情况下,全局存储介质上所存储的共享数据不再被允许拷贝至第一本地存储介质之外的本地存储介质上。

33、本技术第三方面提供一种数据同步装置,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第一方面任一实现方式的方法。对于处理器执行第一方面的各个可能实现方式中的步骤,具体均可以参阅第一方面,此处不再赘述。

34、本技术第四方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面任一实现方式的方法。

35、本技术第五方面提供了一种电路系统,电路系统包括处理电路,处理电路配置为执行上述第一方面任一实现方式的方法。

36、本技术第六方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一实现方式的方法。

37、本技术第七方面提供了一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面任一实现方式中所涉及的功能,例如,处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器。存储器,用于保存必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

38、上述第二方面至第七方面的有益效果可以参考上述第一方面的介绍,在此不再赘述。