走时表分布式存储方法及装置与流程

文档序号:18008689发布日期:2019-06-25 23:43阅读:204来源:国知局
走时表分布式存储方法及装置与流程
本发明实施例涉及地球物理成像
技术领域
,尤其涉及一种走时表分布式存储方法及装置。
背景技术
:kirchhoff深度偏移是地球物理成像的关键方法,分别为走时计算、积分成像两步。走时计算产生的走时信息存储下来,称为走时表。由于走时表数据量过大,在传统计算方法中,将走时表抽希、转换编码后,可以使走时表数据量缩小1万倍或者数万倍,但是大的地震工区中走时表数据量依然很大,例如走时表数据量仍然有1t以上。目前的技术方案是选择将走时表全部存入磁盘中,后续在积分成像过程中,由于需要频繁访问走时表,因此需要频繁访问磁盘,以使磁盘中存储的走时表分批次存入内存中,这样导致在积分成像过程中大都忙于频繁访问磁盘,计算效率大大下降。技术实现要素:鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种走时表分布式存储方法及装置。第一方面,本发明实施例提供一种走时表分布式存储方法及装置,所述方法包括:确定服务端数量,其中任一服务端预先开辟出用于存储走时表的缓存;从所有服务端中,根据预设的规则确定一服务端为主服务端;对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中;根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引;将所述走时表存储索引存储至所述主服务端,所述走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应。在一个可能的实施方式中,所述从所有服务端中,根据预设的规则确定一服务端为主服务端,包括:从所有服务端中,随机确定一服务端为主服务端。在一个可能的实施方式中,所述从所有服务端中,根据预设的规则确定一服务端为主服务端,包括:从所有服务端中,根据预先设置的业务要求确定一服务端为主服务端。在一个可能的实施方式中,所述从所有服务端中,根据预设的规则确定一服务端为主服务端,包括:从所有服务端中,根据服务端硬件配置,确定一服务端为主服务端。在一个可能的实施方式中,所述对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中,包括:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的随机算法实时随机存储至服务端缓存中。在一个可能的实施方式中,所述对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中,包括:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的轮询算法实时轮询存储至服务端缓存中。在一个可能的实施方式中,所述对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中,包括:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的走时表存储配置实时存储至服务端缓存中。在一个可能的实施方式中,所述方法还包括:当需要获取目标走时表时,根据目标走时表的标识,从所述主服务端查询走时表存储索引,确定存储所述目标走时表的目标服务端;从所述目标服务端获取所述目标走时表。第二方面,本发明实施例提供一种走时表分布式存储装置,所述装置包括:服务端数量确定模块,用于确定服务端数量,其中任一服务端预先开辟出用于存储走时表的缓存;主服务端确定模块,用于从所有服务端中,根据预设的规则确定一服务端为主服务端;走时表存储模块,用于对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中;存储索引建立模块,用于根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引;存储索引存储模块,用于将所述走时表存储索引存储至所述主服务端,所述走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应。在一个可能的实施方式中,所述主服务端确定模块具体用于:从所有服务端中,随机确定一服务端为主服务端。本发明实施例提供的技术方案,通过分布式存储,将走时表分布存储到多个服务端缓存中,以使后续在积分成像过程中,可以实现走时表高度访问,避免多次频繁访问磁盘,从而大大提高了计算效率。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本申请一示例性实施例示出的一种示例性应用场景示意图;图2为本申请一示例性实施例示出的一种走时表分布式存储实施流程示意图;图3为本申请一示例性实施例示出的一种走时表分布式存储装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。在本申请中,如图1所示的一种示例性应用场景示意图,在如图1所示的应用场景示意图中(z轴未示出),存在多个地震工区网格,任一地震工区网格与实际大地坐标系中某一地理空间对应,由于任一地震工区网格对应的走时表数据量过大,而且全部地震工区网格对应的走时表数据量更大,在传统计算方法中,将走时表抽希、转换编码后,可以使走时表数据量缩小1万倍或者数万倍,但是大的地震工区中走时表数据量依然很大,例如走时表数据量仍然有1t以上。目前的技术方案是选择将走时表全部存入磁盘中,后续在积分成像过程中,由于需要频繁访问走时表,因此需要频繁访问磁盘,以使磁盘中存储的走时表分批次存入内存中,这样导致在积分成像过程中大都忙于频繁访问磁盘,计算效率大大下降。针对上述技术问题,本申请提供一种技术方案,通过分布式存储,将走时表分布存储到多个服务端缓存中,以使后续在积分成像过程中,可以实现走时表高度访问,避免多次频繁访问磁盘,从而大大提高了计算效率。具体的,本申请提供的技术方案如下:确定服务端数量,其中任一服务端预先开辟出用于存储走时表的缓存;从所有服务端中,根据预设的规则确定一服务端为主服务端;对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中;根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引;将所述走时表存储索引存储至所述主服务端,所述走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应。为了对本申请进一步说明,提供下列实施例对本申请进行说明:如图2所示,为本申请走时表分布式存储方法的一种实施流程示意图,其具体可以包括以下步骤:s201,确定服务端数量,其中任一服务端预先开辟出用于存储走时表的缓存;在本申请中,需要将走时表分布式存储至服务端,因此需要确定服务端的具体数量,以便后续进行分布式存储,其中任一服务端预先开辟出用于存储走时表的缓存。例如,任一服务端预先开辟出5g大小的内存,专门用于存储走时表。例如,在本申请中,为了提高计算效率,可以设置一个服务端集群,该服务端集群中包括10台服务端(即服务器),则所确定的服务端数量为10。s202,从所有服务端中,根据预设的规则确定一服务端为主服务端;针对s201中所确定的服务端数量,对于所有服务端,从所有服务端中根据预设的规则确定一服务端为主服务端,该主服务端除了存储走时表之外,还需要存储走时表存储索引。其中,根据预设的规则确定一服务端为主服务端的具体实现方法有很多种,本申请实施例对其中几种进行举例说明,值得注意的是,本申请实施例对确定主服务端的具体实现方法不做限定,还可以是其它实现方法,本申请在此不再一一赘述。其中一种根据预设的规则确定一服务端为主服务端的具体实现方法为:从所有服务端中,随机确定一服务端为主服务端。例如,s201中确定的服务端数量为10,从这10个服务端中,随机确定服务端a为主服务端。另外一种根据预设的规则确定一服务端为主服务端的具体实现方法为:从所有服务端中,根据预先设置的业务要求确定一服务端为主服务端。例如,s201中确定的服务端数量为10,预先指定服务端a为主服务端,则可以根据预设的业务要求指定服务端a为主服务端。另外一种根据预设的规则确定一服务端为主服务端的具体实现方法为:从所有服务端中,根据服务端硬件配置,确定一服务端为主服务端。例如,s201中确定的服务端数量为10,可以获取任一服务端的硬件配置情况,确定硬件配置最高的服务端为主服务端,例如服务端c的硬件配置最高,确定服务端c为主服务端。s203,对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中;对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中,意味着可以以每个时刻的任一地震工区网格对应的走时表为一个单位,利用预设的算法实时存储至服务端缓存中,也可以以每个时刻的多个地震工区网格对应的走时表为一个单位,利用预设的算法实时存储至服务端缓存中。其中,将每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表分布式存储到服务端的具体实现方法有很多种,本申请实施例对其中几种进行举例说明:其中一种将每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表分布式存储到服务端的具体实现方法为:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的随机算法实时随机存储至服务端缓存中。例如,对于10:00这一时刻,地震工区网格00、地震工区网格01、地震工区网格02对应的走时表,利用预设的随机算法实时随机存储至服务端a缓存中,对于10:00这一时刻,地震工区网格10、地震工区网格11、地震工区网格12对应的走时表,利用预设的随机算法实时随机存储至服务端c缓存中。其中一种将每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表分布式存储到服务端的具体实现方法为:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的轮询算法实时轮询存储至服务端缓存中。例如,对于10:00这一时刻,地震工区网格00、地震工区网格01、地震工区网格02对应的走时表,利用预设的随机算法实时随机存储至服务端a缓存中,对于10:00这一时刻,地震工区网格10、地震工区网格11、地震工区网12对应的走时表,利用预设的随机算法实时随机存储至服务端b缓存中。其中一种将每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表分布式存储到服务端的具体实现方法为:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的走时表存储配置实时存储至服务端缓存中。例如,地震工区网格00、地震工区网格01、地震工区网格02对应的走时表,预先指定存储至服务端a缓存中,地震工区网格10、地震工区网格11、地震工区网格12对应的走时表,预先指定存储至服务端b缓存中,由此可以得到走时表存储配置,对于每个时刻的多个地震工区网格对应的走时表,利用预设的走时表存储配置实时存储至服务端缓存中。其中在走时表分布式存储之前,还可以对走时表进行压缩,例如将走时表抽希、转换编码、转换为无符号整型数据等等。对于走时表,可以读取速度模型,读取地震工区网格信息,获取走时表网格信息,利用速度模型计算每个时刻任一地震工区网格对应的走时表,可以将该走时表经过压缩处理,再执行分布式存储操作。s204,根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引;在上述将走时表存储至服务端缓存中以后,需要建立走时表存储索引,以便于后续需要走时表时,可以从目标服务端中获取走时表。可以根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引。例如,每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,为时刻+地震工区网格标识,存储所述走时表的服务端的标识,可以为服务端的名称、ip地址、mac地址、编号等等,所建立的走时表存储索引如下表1所示:走时表标识服务端标识10:00+00a10:00+01b10:00+03c表1s205,将所述走时表存储索引存储至所述主服务端,所述走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应。针对s204中所建立的走时表存储索引,将所述走时表存储索引存储至所述主服务端,其中走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应,如上述表1所示。后续在积分成像过程中,需要获取目标走时表,根据目标走时表的标识,从所述主服务端查询走时表存储索引,确定存储所述目标走时表的目标服务端;从所述目标服务端获取所述目标走时表。例如目标走时表的标识为10:00+00,则可以从主服务端查询走时表存储索引,确定存储所述目标走时表的目标服务端为服务端a,从服务端a获取所述目标走时表。通过上述对本申请实施例提供的技术方案的描述,通过分布式存储,将走时表分布存储到多个服务端缓存中,以使后续在积分成像过程中,可以实现走时表高度访问,避免多次频繁访问磁盘,从而大大提高了计算效率。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。与前述走时表分布式存储方法的实施例相对应,本申请还提供了走时表分布式存储装置,参见图3所示,该装置可以包括:服务端数量确定模块310、主服务端确定模块320、走时表存储模块330、存储索引建立模块340、存储索引存储模块350。服务端数量确定模块310,用于确定服务端数量,其中任一服务端预先开辟出用于存储走时表的缓存;主服务端确定模块320,用于从所有服务端中,根据预设的规则确定一服务端为主服务端;走时表存储模块330,用于对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的算法实时存储至服务端缓存中;存储索引建立模块340,用于根据每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识,以及存储所述走时表的服务端的标识,实时建立走时表存储索引;存储索引存储模块350,用于将所述走时表存储索引存储至所述主服务端,所述走时表存储索引中每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表的标识与存储所述走时表的服务端的标识一一对应。在本申请的一种具体实施方式中,所述主服务端确定模块320具体用于:从所有服务端中,随机确定一服务端为主服务端。在本申请的一种具体实施方式中,所述主服务端确定模块320具体用于:从所有服务端中,根据预先设置的业务要求确定一服务端为主服务端。在本申请的一种具体实施方式中,所述主服务端确定模块320具体用于:从所有服务端中,根据服务端硬件配置,确定一服务端为主服务端。在本申请的一种具体实施方式中,所述走时表存储模块330具体用于:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的随机算法实时随机存储至服务端缓存中。在本申请的一种具体实施方式中,所述走时表存储模块330具体用于:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的轮询算法实时轮询存储至服务端缓存中。在本申请的一种具体实施方式中,所述走时表存储模块330具体用于:对于每个时刻的任一地震工区网格对应的走时表或者多个地震工区网格对应的走时表,利用预设的走时表存储配置实时存储至服务端缓存中。在本申请的一种具体实施方式中,所述装置还包括:走时表获取模块360,用于当需要获取目标走时表时,根据目标走时表的标识,从所述主服务端查询走时表存储索引,确定存储所述目标走时表的目标服务端;从所述目标服务端获取所述目标走时表。上述系统中各个单元的作用实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
内所公知的任意其它形式的存储介质中。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1