Seismic data storage method, device, equipment and storage medium

By verifying and correcting the performance values ​​of storage nodes, the storage of seismic data in the distributed storage system is optimized, solving the problem of low storage efficiency caused by differences in the performance of storage nodes, and achieving more efficient data storage and better reliability.

CN122195337APending Publication Date: 2026-06-12CHINA NAT PETROLEUM CORP +1

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
CHINA NAT PETROLEUM CORP
Filing Date
2024-12-12
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

In existing technologies, earthquake data storage is inefficient due to performance differences between multiple storage nodes, which prolongs storage time.

Method used

By obtaining the historical data block count and performance values ​​of storage nodes, the storage performance values ​​are verified and corrected. Based on the current performance values, the storage allocation of data blocks is optimized. The priority order of local, cluster, and remote storage nodes in the distributed storage system is adopted to generate multiple copies of data blocks to improve storage efficiency.

Benefits of technology

It shortens the overall storage time, improves storage efficiency and data reliability, adapts to the actual performance of storage nodes, and reduces the impact of performance differences between storage nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122195337A_ABST
    Figure CN122195337A_ABST
Patent Text Reader

Abstract

The application discloses a seismic data storage method, device and equipment and a storage medium, and belongs to the technical field of computers. The seismic data storage method provided by the application first acquires the number of historical data blocks stored on a storage node last time. Since the number of historical data blocks stored on the storage node can reflect the storage performance of the storage node, the current storage performance of the storage node can be accurately determined according to the number of historical data blocks stored on the storage node. Then, according to the current storage performance of the storage node, a corresponding number of data blocks can be allocated to the storage node, that is, the number of data blocks stored by the storage node is adapted to the storage performance of the storage node, so that the overall storage time can be shortened, and thus the storage efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a method, apparatus, device and storage medium for earthquake data storage. Background Technology

[0002] Currently, the volume of seismic data is growing exponentially, resulting in significantly increased storage demands during seismic data processing. Because seismic data is unstructured, relational databases cannot effectively store it. Therefore, how to store seismic data has become a pressing issue.

[0003] In related technologies, earthquake data is divided into multiple data blocks, which are then distributed equally among multiple storage nodes, and the multiple data blocks are stored through these storage nodes.

[0004] However, the methods in the related technologies do not take into account the differences in storage performance between multiple storage nodes. For the same number of data blocks, nodes with poor storage performance need to spend a longer time storing them, which prolongs the overall storage time and results in low storage efficiency. Summary of the Invention

[0005] This application provides a method, apparatus, device, and storage medium for storing earthquake data, which can improve storage efficiency. The technical solution is as follows:

[0006] On the one hand, a method for storing seismic data is provided, the method comprising:

[0007] Acquire target seismic data and divide the target seismic data into multiple data blocks;

[0008] The number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system in the previous storage and their corresponding first storage performance values ​​are obtained, wherein the multiple historical data blocks are obtained by segmenting historical earthquake data;

[0009] Based on the number of historical data blocks stored by each of the multiple storage nodes in the previous storage session, the first storage performance value corresponding to each of the multiple storage nodes is verified.

[0010] Based on the verification results, the second storage performance value corresponding to each of the plurality of storage nodes is determined.

[0011] Based on the second storage performance value corresponding to each of the multiple storage nodes, the multiple data blocks are stored in the multiple storage nodes.

[0012] In one possible implementation, the step of verifying the first storage performance value corresponding to each of the plurality of storage nodes based on the number of historical data blocks stored by each of the plurality of storage nodes at one time includes:

[0013] Determine the ratio of the first quantity to the second quantity to obtain the first ratio. The first quantity is the number of historical data blocks stored in the last time by the first storage node, and the second quantity is the number of historical data blocks stored in the last time by the second storage node. The first storage node is any one of the plurality of storage nodes, and the second storage node is any other storage node among the plurality of storage nodes besides the first storage node.

[0014] Based on the first storage performance value corresponding to the first storage node, the first storage performance value corresponding to the second storage node, and the performance error threshold, the upper limit value and the lower limit value of storage performance are determined.

[0015] Based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance, the first storage performance value corresponding to the first storage node is verified.

[0016] In another possible implementation, the step of verifying the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance includes:

[0017] Obtain the amount of stored data corresponding to each of the multiple storage nodes when they last stored historical data blocks;

[0018] Determine the sum of the stored data amounts corresponding to the plurality of storage nodes to obtain a first sum value;

[0019] Determine the ratio of the first stored data volume to the first sum value to obtain the second ratio, where the first stored data volume is the stored data volume corresponding to the last time the first storage node stored historical data blocks;

[0020] Determine the sum of the first storage performance values ​​corresponding to the plurality of storage nodes to obtain the second sum;

[0021] Based on the first storage performance value corresponding to the first storage node, the performance error threshold, and the second sum value, the upper limit value of the stored data is determined;

[0022] Based on the first ratio, the upper limit of storage performance, the lower limit of storage performance, the second ratio, and the upper limit of storage data, the first storage performance value corresponding to the first storage node is verified.

[0023] In another possible implementation, determining the second storage performance value corresponding to each of the plurality of storage nodes based on the verification result includes:

[0024] If the second ratio is not greater than the upper limit of the stored data, and the first ratio is between the upper limit of the storage performance and the lower limit of the storage performance, the first storage performance value corresponding to the first storage node is determined as the second storage performance value corresponding to the first storage node.

[0025] If the second ratio is greater than the upper limit of the stored data, or if the first ratio is not between the upper limit of the storage performance and the lower limit of the storage performance, then based on the first ratio and the first storage performance value corresponding to the second storage node, the first storage performance value corresponding to the first storage node is corrected to obtain the second storage performance value corresponding to the first storage node.

[0026] In another possible implementation, the types of the plurality of storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes;

[0027] The step of storing the multiple data blocks into the multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes includes:

[0028] Based on the second storage performance value corresponding to each of the multiple storage nodes, the multiple data blocks are stored in the multiple storage nodes according to storage priority, wherein the priority of the local storage node is greater than the priority of the local cluster storage node, and the priority of the local cluster storage node is greater than the priority of the remote storage node.

[0029] In another possible implementation, the types of the plurality of storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes, and the number of both local cluster storage nodes and remote storage nodes is plurality;

[0030] The method further includes:

[0031] For each data block, multiple data copies of the data block are generated, and the number of the multiple data copies is not less than 2;

[0032] Store the first data copy of the data block in the local storage node;

[0033] Determine the target remote storage node with the highest second storage performance value from multiple remote storage nodes, and store the second data copy of the data block in the target remote storage node;

[0034] If the number of multiple data replicas is greater than 2, then a third number of local cluster storage nodes with the highest second storage performance value are determined from the multiple local cluster storage nodes, and the remaining data replicas of the data block are stored in the third number of local cluster storage nodes respectively, wherein the third number is the same as the number of remaining data replicas.

[0035] On the other hand, a seismic data storage device is provided, the device comprising:

[0036] The first acquisition module is used to acquire target seismic data and divide the target seismic data into multiple data blocks;

[0037] The second acquisition module is used to acquire the number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system at the last time, as well as their corresponding first storage performance values. The multiple historical data blocks are obtained by segmenting historical earthquake data.

[0038] The verification module is used to verify the first storage performance value corresponding to each of the multiple storage nodes based on the number of multiple historical data blocks stored by each of the multiple storage nodes in the previous storage node;

[0039] The determination module is used to determine the second storage performance value corresponding to each of the plurality of storage nodes based on the verification results;

[0040] The first storage module is used to store the multiple data blocks into the multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes at the present time.

[0041] In one possible implementation, the verification module is configured to determine the ratio of a first quantity to a second quantity to obtain a first ratio, wherein the first quantity is the number of historical data blocks stored in the previous storage on the first storage node, and the second quantity is the number of historical data blocks stored in the previous storage on the second storage node, wherein the first storage node is any one of the plurality of storage nodes, and the second storage node is any other storage node among the plurality of storage nodes besides the first storage node; based on the first storage performance value corresponding to the first storage node, the first storage performance value corresponding to the second storage node, and a performance error threshold, a storage performance upper limit value and a storage performance lower limit value are determined; and based on the first ratio, the storage performance upper limit value, and the storage performance lower limit value, the first storage performance value corresponding to the first storage node is verified.

[0042] In another possible implementation, the verification module is configured to: obtain the amount of stored data corresponding to each of the plurality of storage nodes when they last stored historical data blocks; determine the sum of the stored data amounts corresponding to the plurality of storage nodes to obtain a first sum; determine the ratio of the first stored data amount to the first sum to obtain a second ratio, wherein the first stored data amount is the amount of stored data corresponding to the first storage node when it last stored historical data blocks; determine the sum of the first storage performance values ​​corresponding to the plurality of storage nodes to obtain a second sum; determine an upper limit value of stored data based on the first storage performance value corresponding to the first storage node, the performance error threshold, and the second sum; and verify the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit value of storage performance, the lower limit value of storage performance, the second ratio, and the upper limit value of stored data.

[0043] In another possible implementation, the determining module is configured to: if the second ratio is not greater than the upper limit of the stored data and the first ratio is between the upper limit of the stored performance and the lower limit of the stored performance, determine the first storage performance value corresponding to the first storage node as the second storage performance value corresponding to the first storage node; if the second ratio is greater than the upper limit of the stored data, or the first ratio is not between the upper limit of the stored performance and the lower limit of the stored performance, then, based on the first ratio and the first storage performance value corresponding to the second storage node, correct the first storage performance value corresponding to the first storage node to obtain the second storage performance value corresponding to the first storage node.

[0044] In another possible implementation, the types of the plurality of storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes;

[0045] The first storage module is used to store the multiple data blocks into the multiple storage nodes according to their respective storage priorities based on the second storage performance value corresponding to each of the multiple storage nodes at present, wherein the priority of the local storage node is greater than the priority of the local cluster storage node, and the priority of the local cluster storage node is greater than the priority of the remote storage node.

[0046] In another possible implementation, the types of the plurality of storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes, and the number of both local cluster storage nodes and remote storage nodes is plurality;

[0047] The device further includes:

[0048] A generation module is used to generate multiple data copies of each data block, wherein the number of multiple data copies is not less than 2.

[0049] The second storage module is used to store the first data copy of the data block in the local storage node;

[0050] The third storage module is used to determine the target remote storage node with the highest second storage performance value from multiple remote storage nodes, and to store the second data copy of the data block in the target remote storage node;

[0051] The fourth storage module is configured to, if the number of the plurality of data replicas is greater than 2, determine the third number of local cluster storage nodes with the highest second storage performance value from the plurality of local cluster storage nodes, and store the remaining data replicas of the data block into the third number of local cluster storage nodes respectively, wherein the third number is the same as the number of the remaining data replicas.

[0052] On the other hand, an electronic device is provided, comprising a processor and a memory, wherein the memory stores at least one piece of program code, which is loaded and executed by the processor to implement the earthquake data storage method described above.

[0053] On the other hand, a computer-readable storage medium is provided, wherein at least one piece of program code is stored in the computer-readable storage medium, the at least one piece of program code being loaded and executed by a processor to implement the earthquake data storage method described in any of the preceding claims.

[0054] On the other hand, a computer program product is provided, wherein at least one piece of program code is stored in the computer program product, the at least one piece of program code being loaded and executed by a processor to implement the earthquake data storage method described in any of the above claims.

[0055] This application provides a method for storing earthquake data. The method first obtains the number of historical data blocks stored by a storage node in the previous storage session. Since the number of historical data blocks stored by a storage node reflects its storage performance, the current storage performance of the storage node can be accurately determined based on this number. Then, a corresponding number of data blocks can be allocated to the storage node based on its current storage performance, meaning the number of data blocks stored by the storage node is commensurate with its storage performance. This shortens the overall storage time and improves storage efficiency.

[0056] It should be understood that the above general description and the following detailed description are merely exemplary and do not limit this disclosure. Attached Figure Description

[0057] Figure 1 This is a schematic diagram of the implementation environment of an earthquake data storage method provided in an embodiment of this application;

[0058] Figure 2 This is a flowchart of an earthquake data storage method provided in an embodiment of this application;

[0059] Figure 3 This is a schematic diagram illustrating a method for storing a data copy, as provided in an embodiment of this application.

[0060] Figure 4 This is a schematic diagram illustrating an embodiment of seismic data acquisition provided in this application.

[0061] Figure 5 This is a schematic diagram of the structure of an earthquake data storage device provided in an embodiment of this application;

[0062] Figure 6 This is a structural block diagram of a terminal provided in an embodiment of this application;

[0063] Figure 7 This is a structural block diagram of a server provided in an embodiment of this application. Detailed Implementation

[0064] To make the technical solution and advantages of this application clearer, the embodiments of this application will be described in further detail below.

[0065] The terms "first," "second," "third," and "fourth," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.

[0066] It should be noted that all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the earthquake data involved in this application was obtained with full authorization.

[0067] Figure 1 This is a schematic diagram illustrating the implementation environment of an earthquake data storage method provided in this application embodiment. Figure 1The implementation environment includes electronic devices, which can be provided as terminal 101 and server 102, and terminal 101 and server 102 can be connected via a wireless or wired network. In this embodiment, the electronic devices are not specifically limited.

[0068] When storing seismic data, terminal 101 sends the seismic data to server 102, which stores the data and then returns the storage result to terminal 101. A target application is installed on terminal 101, which is used to store the seismic data. Server 102 is the backend server for the target application, providing background services for it.

[0069] The terminal 101 can be at least one of the following: tablet computer, desktop computer, PC (Personal Computer) device, intelligent voice interaction device, etc. The server 102 can be at least one of the following: a single server, a server cluster consisting of multiple servers, a cloud server, a cloud computing platform, and a virtualization center.

[0070] Figure 2 This is a flowchart of an earthquake data storage method provided in an embodiment of this application, executed by an electronic device. See also... Figure 2 The method includes:

[0071] Step 201: The electronic device acquires the target seismic data and divides the target seismic data into multiple data blocks.

[0072] The target seismic data refers to the seismic data of the target study area, which is the seismic research region. The target seismic data can be pre-stack seismic data, post-stack seismic data, or intermediate data generated during seismic data processing; there are no specific limitations on this.

[0073] Electronic devices can acquire target seismic data stored locally, or they can acquire target seismic data sent by other electronic devices; there are no specific limitations on this.

[0074] After acquiring target seismic data, the electronic device can divide the target seismic data into multiple data blocks. The size of each data block can be the same or different. In this embodiment, only the example of each data block being the same size is used for illustration.

[0075] For example, if the target seismic data is 200GB, the electronic device can divide the target seismic data into multiple data blocks, each of which is 62MB in size, resulting in 3200 data blocks.

[0076] After an electronic device receives multiple data blocks, it can generate multiple tasks based on these data blocks. Each data block corresponds to one task. The task is then sent to the storage node, and the process of the storage node completing the task is the process of storing the data block.

[0077] Step 202: The electronic device obtains the number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system in the previous storage and their corresponding first storage performance values.

[0078] Multiple historical data blocks were obtained by segmenting historical earthquake data.

[0079] The electronic device stores multiple historical data blocks corresponding to historical earthquake data into multiple storage nodes, and obtains the number of multiple historical data blocks stored by each storage node in the previous storage session and their corresponding first storage performance value.

[0080] It should be noted that the process of storing multiple historical data blocks corresponding to historical earthquake data in electronic devices is the same as the process of storing multiple data blocks corresponding to the current target earthquake data. Here, we will only use the example of storing multiple data blocks corresponding to the current target earthquake data to illustrate the solution of this application.

[0081] If no historical earthquake data has been stored before the current target earthquake data is stored, then the first storage performance value is the initial storage performance value of the storage node.

[0082] For each storage node, the process by which the electronic device determines the initial storage performance value of the storage node can be as follows: the electronic device obtains the data processing capability value, memory processing capability value, disk read / write capability value, disk storage capability value, and network transmission capability value of the storage node; based on the first weight, the second weight, the third weight, the fourth weight, and the fifth weight, the electronic device performs a weighted summation of the data processing capability value, memory processing capability value, disk read / write capability value, disk storage capability value, and network transmission capability value of the storage node to obtain the initial storage performance value of the storage node.

[0083] The first weight corresponds to the data processing capability value, the second weight corresponds to the memory processing capability value, the third weight corresponds to the disk read / write capability value, the fourth weight corresponds to the disk storage capability value, and the fifth weight corresponds to the network transmission capability value.

[0084] This process can be represented by the following formula (1):

[0085] P0 = X1C i +X2M i +X3I i +X4D i +X5N i ;

[0086] Where i represents the node number, 1≤i≤m, m is the total number of storage nodes, P0 represents the initial storage performance value of the i-th storage node, X1, X2, X3, X4 and X5 represent the first weight, second weight, third weight, fourth weight and fifth weight respectively, and X1+X2+X3+X4+X5=1, C i M represents the data processing capability value. i Indicates memory processing capability value, I i D represents the disk read / write capability value. i N represents the disk storage capacity value. i This indicates the network transmission capacity value.

[0087] The first, second, third, fourth, and fifth weights can be set and changed as needed, without any specific restrictions.

[0088] In this embodiment, each storage node is equivalent to a server, and each server is configured with its own performance parameters, such as CPU (Central Processing Units), memory, disk, and network. However, in a cloud computing environment, node performance is affected by factors such as network structure and data transmission bandwidth. Therefore, its performance parameters cannot be directly used as a reference; the actual storage performance of each storage node needs to be determined and updated within the cloud computing environment. It is evident that accurately determining the storage performance value of each storage node is crucial, as it directly impacts the storage efficiency of node selection throughout the entire storage process.

[0089] Step 203: The electronic device verifies the first storage performance value corresponding to each of the multiple storage nodes based on the number of historical data blocks stored by each of the multiple storage nodes in the previous storage.

[0090] This step can be achieved through the following steps (1) to (3), including:

[0091] (1) The electronic device determines the ratio of the first quantity to the second quantity and obtains the first ratio.

[0092] The first quantity is the number of historical data blocks stored in the last time by the first storage node, and the second quantity is the number of historical data blocks stored in the last time by the second storage node. The first storage node is any one of the multiple storage nodes, and the second storage node is any other storage node besides the first storage node.

[0093] The first ratio can be expressed as: T i / T j Where 1≤j≤m and i≠j, in this step, T i T represents the first quantity. jIndicates the second quantity.

[0094] It should be noted that the second storage node can be a storage node adjacent to the first storage node, or it can be any storage node that is not adjacent to the first storage node; there is no specific limitation on this.

[0095] (2) The electronic device determines the upper limit of storage performance and the lower limit of storage performance based on the first storage performance value corresponding to the first storage node, the first storage performance value corresponding to the second storage node, and the performance error threshold.

[0096] The electronic device determines the ratio of the first storage performance value corresponding to the first storage node to the first storage performance value corresponding to the second storage node, and obtains a third ratio; determines the difference between 1 and the performance error threshold, and obtains a first difference; determines the product of the third ratio and the square of the first difference, and obtains the lower limit of storage performance; determines the sum of 1 and the performance error threshold, and obtains a third sum; determines the product of the third ratio and the square of the third sum, and obtains the upper limit of storage performance.

[0097] The lower limit of storage performance can be expressed as: P i / P j ×(1-e) 2 The upper limit of storage performance can be expressed as: P i / P j ×(1+e) 2 Among them, P i P represents the first storage performance value corresponding to the first storage node. j This represents the second storage performance value corresponding to the second storage node, and e represents the performance error threshold.

[0098] The performance error threshold can be set and changed as needed, and there are no specific limitations. For example, the performance error threshold can be 2%, 3%, or 4%.

[0099] (3) The electronic device verifies the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance and the lower limit of storage performance.

[0100] In one possible implementation, the electronic device directly verifies the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance.

[0101] In another possible implementation, when the electronic device verifies the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance, it can also consider the amount of stored data corresponding to the storage node. Accordingly, this process can be implemented through the following steps (3-1) to (3-6), including:

[0102] (3-1) When an electronic device obtains the amount of historical data stored on each of the multiple storage nodes in the last storage, it obtains the amount of data stored on each node.

[0103] (3-2) The electronic device determines the sum of the storage data corresponding to multiple storage nodes and obtains the first sum.

[0104] This step can be represented by the following formula (2):

[0105]

[0106] Among them, D sum D represents the first sum. i This represents the amount of data stored in the i-th storage node.

[0107] (3-3) The electronic device determines the ratio of the first stored data volume to the first sum value and obtains the second ratio.

[0108] The first storage data volume is the storage data volume corresponding to the last time the first storage node stored historical data blocks.

[0109] The second ratio can be expressed as: D i / D sum .

[0110] (3-4) The electronic device determines the sum of the first storage performance values ​​corresponding to multiple storage nodes and obtains the second sum.

[0111] This step can be represented by the following formula (3):

[0112]

[0113] Among them, P sum This indicates the second sum.

[0114] (3-5) The electronic device determines the upper limit of stored data based on the first storage performance value, the performance error threshold and the second sum value corresponding to the first storage node.

[0115] The electronic device determines the product of the first storage performance value corresponding to the first storage node and the square of the third sum to obtain the first product value, and determines the ratio of the first product value to the second sum to obtain the upper limit value of the stored data.

[0116] The upper limit of stored data can be represented as: P i ×(1+e)2 / P sum .

[0117] (3-6) The electronic device verifies the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, the lower limit of storage performance, the second ratio, and the upper limit of storage data.

[0118] The electronic device determines whether the second ratio is greater than the upper limit of stored data and whether the first ratio is between the upper limit of storage performance and the lower limit of storage performance in order to verify the first storage performance value corresponding to the first storage node.

[0119] It should be noted that after storing multiple historical data blocks, the electronic device can also verify the first storage performance of each of the multiple storage nodes based on the number of historical data blocks stored on the multiple storage nodes. Based on the verification result, the second storage performance value of each of the multiple storage nodes is determined. Then, after acquiring the target earthquake data, the multiple data blocks are stored in the multiple storage nodes based on the second storage performance value of each of the multiple storage nodes. That is, the electronic device can first execute steps 202, 203 and 204, and then execute steps 201 and 205.

[0120] Step 204: Based on the verification results, the electronic device determines the second storage performance value corresponding to each of the multiple storage nodes.

[0121] If the second ratio is not greater than the upper limit of stored data, and the first ratio is between the upper limit of storage performance and the lower limit of storage performance, then the electronic device will determine the first storage performance value corresponding to the first storage node as the second storage performance value corresponding to the first storage node.

[0122] This process can be represented by the following formulas (4) and (5):

[0123] D i / D sum ≤P i ×(1+e) 2 / P sum And P i / P j ×(1-e) 2 ≤T i / T j ≤P i / P j ×(1+e)2.

[0124] If the second ratio is greater than the upper limit of stored data, or if the first ratio is not between the upper limit and lower limit of storage performance, the electronic device corrects the first storage performance value corresponding to the first storage node based on the first ratio and the first storage performance value corresponding to the second storage node, to obtain the second storage performance value corresponding to the first storage node.

[0125] In this implementation, if the second ratio is greater than the upper limit of the stored data, or the first ratio is not between the upper limit of the storage performance and the lower limit of the storage performance, the electronic device adjusts the first storage performance value corresponding to the first storage node so that the second ratio is not greater than the upper limit of the stored data and the first ratio is between the upper limit of the storage performance and the lower limit of the storage performance. The adjusted first storage performance value corresponding to the first storage node is then determined as the second storage performance value corresponding to the first storage node.

[0126] For example, if the second ratio is greater than the upper limit of stored data, the electronic device can increase the first storage performance value corresponding to the first storage node, making the second ratio equal to or less than the upper limit of stored data, and then determine the adjusted first storage performance value corresponding to the first storage node as the second storage performance value corresponding to the first storage node. As another example, if the first ratio is less than the lower limit of storage performance, the electronic device can decrease the first storage performance value corresponding to the first storage node, making the first ratio greater than or equal to the lower limit of storage performance, and then determine the adjusted first storage performance value corresponding to the first storage node as the second storage performance value corresponding to the first storage node.

[0127] In this embodiment, the storage performance value of a storage node can be verified based on the number of data blocks stored and the amount of data stored in the previous storage session. This verifies the correctness of the storage performance value for the storage environment. If the verification fails, the storage performance value can be corrected in a timely manner to ensure it is compatible with the actual storage environment. This facilitates accurate selection of storage nodes, shortens storage time, and improves storage efficiency.

[0128] It should be noted that in a distributed storage system with m storage nodes, a single earthquake data point is generated by multiple tasks, with one data block corresponding to one task, and T... i T represents the first quantity, and also the number of tasks completed by the first storage node. j This represents the second quantity, and also the number of tasks completed by the second storage node. In an ideal storage environment, the number of tasks completed by each storage node is directly proportional to the storage performance of that storage node, as expressed in the following formulas (6) and (7):

[0129] T i / P i =T j / P j

[0130]

[0131] However, in actual storage environments, the completion of tasks by storage nodes is affected by various factors, making it difficult for the ratio of the number of tasks completed by a storage node to its storage performance to be equal. Therefore, considering the influencing factors and calculation errors, a performance error threshold is set. By defining the performance error threshold, it is verified whether the second ratio and the first ratio satisfy the above formulas (4) and (5). If the second ratio and the first ratio satisfy formulas (4) and (5), there is no need to correct the storage performance value of the storage node. If the second ratio and the first ratio do not satisfy formulas (4) and (5), then the storage performance value of the storage node is corrected, which facilitates the accurate selection of storage nodes based on their storage performance values ​​in the future.

[0132] Step 205: The electronic device stores multiple data blocks into multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes at the moment.

[0133] A distributed storage system consists of multiple storage nodes distributed across different regions. In terms of location, these storage nodes can be categorized into local storage nodes, local cluster storage nodes, and remote storage nodes, with multiple local cluster storage nodes and multiple remote storage nodes.

[0134] Local storage nodes refer to servers within electronic devices. Local cluster storage nodes refer to storage nodes belonging to the same cluster as the local storage node. Local cluster storage nodes form a local cluster, and they can be located on the same local area network (LAN). Remote storage nodes refer to storage nodes in other clusters, located on a different LAN than the local storage node.

[0135] In this step, the electronic device stores multiple data blocks into multiple storage nodes according to their respective second storage performance values ​​and storage priorities. The priority of the local storage node is higher than that of the local cluster storage node, and the priority of the local cluster storage node is higher than that of the remote storage node.

[0136] In this implementation, the electronic device can sort multiple storage nodes based on their respective second storage performance values ​​and storage priorities. For example, local storage nodes are sorted first, followed by local cluster storage nodes, in descending order of their second storage performance values, and finally remote storage nodes, also in descending order of their second storage performance values.

[0137] Then, the electronic device determines the number of data blocks that a local storage node can store, the number of data blocks that each local cluster storage node can store, and the number of data blocks that each remote storage node can store, based on the size of the data blocks and the data storage capacity threshold for each storage node.

[0138] Finally, based on the order of the number of data blocks that the local storage node, each local cluster storage node, and each remote storage node can store, the number of data blocks, and the second storage performance value, a corresponding number of tasks are sent to the local storage node, each local cluster storage node, and each remote storage node. Each task includes one data block. The local storage node, each local cluster storage node, and each remote storage node receive and store the corresponding number of data blocks.

[0139] It's important to note that for any given storage node, when an electronic device sends a certain number of data blocks to that node, it first determines whether the node is faulty, overloaded, has reached its data storage threshold, and whether a copy of the data blocks to be sent has already been stored. If the storage node is faulty, overloaded, has reached its data storage threshold, or a copy of the data blocks to be sent has not been stored, the electronic device ignores the node and does not send any data blocks. If the storage node is not faulty, is not overloaded, has not reached its data storage threshold, and a copy of the data blocks to be sent has already been stored, the electronic device sends the corresponding number of data blocks to the node, and the node receives and stores those data blocks.

[0140] In this embodiment, the electronic device allocates a corresponding number of data blocks to the storage node based on its current storage performance value, thereby achieving dynamic node selection, shortening the overall storage time, and improving storage efficiency.

[0141] For each data block, the electronic device creates a data copy. Creating data copies increases data storage redundancy, prevents data loss, and improves data reliability and availability. The following explains how data copies are stored.

[0142] For each data block, the electronic device generates multiple data copies of the data block, with the number of data copies being no less than 2; the electronic device stores the first data copy of the data block in the local storage node; from multiple remote storage nodes, it determines the target remote storage node with the highest second storage performance value, and stores the second data copy of the data block in the target remote storage node; if the number of multiple data copies is greater than 2, then from multiple local cluster storage nodes, it determines the third number of local cluster storage nodes with the highest second storage performance value, and stores the remaining data copies of the data block in the third number of local cluster storage nodes, the third number being the same as the number of remaining data copies.

[0143] In this implementation, the electronic device first determines whether the local storage node is within the local cluster. If the local storage node is within the local cluster, the first data copy of the data block is stored in the local storage node. If the local storage node is not within the local cluster, the target storage node with the shortest network distance from the local storage node is determined, and the first data copy of the data block is stored in the target storage node. Specifically, if the local storage node is operating normally, it is determined that the local storage node is within the local cluster; if the local storage node fails, it is determined that the local storage node is not within the local cluster.

[0144] For the second data copy, the electronic device determines the target remote storage node with the highest second storage performance value from multiple remote storage nodes and stores the second data copy of the data block in the target remote storage node.

[0145] If the number of multiple data replicas is greater than 2, the electronic device will then determine the corresponding number of local cluster storage nodes with the highest second storage performance value from the local cluster storage nodes, and store the remaining data replicas in these local cluster storage nodes respectively.

[0146] For example, if the number of data replicas is 3, the electronic device will then determine the local cluster storage node with the highest second-highest storage performance value from among the multiple local cluster storage nodes, and store the third data replica on that storage node. See [link to relevant documentation]. Figure 3 .

[0147] In this embodiment, after multiple data copies are stored, the electronic device can detect and verify the multiple data copies based on the metadata of the target seismic data, thereby ensuring the correctness and integrity of the data. The metadata describes the target seismic data. Correspondingly, the electronic device can also store the metadata of the target seismic data locally.

[0148] Another point to note is that a single data block generates multiple data copies, and these multiple data copies together form a single data block. Similarly, if the target seismic data is divided into multiple data blocks, these multiple data blocks can then be combined to form the target seismic data. Before storing multiple data blocks corresponding to the target seismic data, electronic devices can first determine the data identifier corresponding to the target seismic data, add this data identifier to each data block, and store the data identifier along with the data block.

[0149] When subsequently acquiring target seismic data, the electronic device obtains a keyword index. Based on the keyword index, it determines the target seismic data and its corresponding data identifier. Using this data identifier, it retrieves multiple data blocks from multiple storage nodes, combines these data blocks to form the target seismic data, and then displays the target seismic data to the user. (See [link to relevant documentation]). Figure 4 , Figure 4 The numbers in the square boxes represent data blocks.

[0150] This application provides a method for storing earthquake data. The method first obtains the number of historical data blocks stored by a storage node in the previous storage session. Since the number of historical data blocks stored by a storage node reflects its storage performance, the current storage performance of the storage node can be accurately determined based on this number. Then, a corresponding number of data blocks can be allocated to the storage node based on its current storage performance, meaning the number of data blocks stored by the storage node is commensurate with its storage performance. This shortens the overall storage time and improves storage efficiency.

[0151] The method provided in this application is used to collect the performance of multiple storage nodes in a distributed storage system. For example, the distributed storage system includes 6 storage nodes, the target earthquake data is 188GB in size, the data block size is 32MB, and the number of data blocks is 6016. The method provided in this application stores 6016 data blocks in these 6 storage nodes. The number of data blocks stored in each storage node is shown in Table 1.

[0152] Table 1

[0153]

[0154] Here, the performance of storage nodes is verified by using adjacent storage nodes, with a performance error threshold of 3%. The verification results are shown in Table 2.

[0155] Table 2

[0156]

[0157] As can be seen from Table 2, the ratio of the number of data blocks stored by each storage node is consistent with the ratio of its storage performance, indicating that the test results of node performance in the current environment are consistent with the actual situation.

[0158] Furthermore, the earthquake data storage methods in related technologies are compared with those in this application. Relevant data information from each task run is analyzed and compared, mainly including the time for data blocks and task execution, the storage time of each data block in the task, and the proportion of data localization tasks. Both methods in related technologies and those in this application are processed using equal datasets. Test results show that, compared to methods in related technologies, the task execution time of the method provided in this application is reduced to a certain extent. The task execution time increases linearly with the growth of data blocks; the more data blocks processed, the greater the time saving. Compared to methods in related technologies, the average time for processing one data block using the method provided in this application is reduced by 1.5 seconds, and the average processing time per data block is relatively stable and does not increase with the increase in the amount of data processed. The proportion of local tasks in the related technologies is approximately 74.5%, while the proportion using the method provided in this application is increased to over 92%, an improvement of about 17.8%. Therefore, data localization is a crucial factor affecting task execution efficiency and has a significant advantage in task processing.

[0159] The above results show that the method provided in this application has good application effects in earthquake data storage under cloud computing environment. The method provided in this application can greatly improve the running speed of tasks and achieve efficient storage and retrieval of earthquake data.

[0160] Figure 5 This is a schematic diagram of the structure of an earthquake data storage device provided in an embodiment of this application. See also... Figure 5 The device includes:

[0161] The first acquisition module 501 is used to acquire target seismic data and divide the target seismic data into multiple data blocks;

[0162] The second acquisition module 502 is used to acquire the number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system in the previous time, as well as their corresponding first storage performance values. The multiple historical data blocks are obtained by segmenting historical earthquake data.

[0163] The verification module 503 is used to verify the first storage performance value corresponding to each of the multiple storage nodes based on the number of multiple historical data blocks stored by each of the multiple storage nodes in the previous storage node.

[0164] The determination module 504 is used to determine the second storage performance value corresponding to each of the multiple storage nodes based on the verification results;

[0165] The first storage module 505 is used to store multiple data blocks into multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes at the moment.

[0166] In one possible implementation, the verification module 503 is used to determine the ratio of a first quantity to a second quantity, obtaining the first ratio. The first quantity is the number of historical data blocks stored in the previous storage by the first storage node, and the second quantity is the number of historical data blocks stored in the previous storage by the second storage node. The first storage node is any one of a plurality of storage nodes, and the second storage node is any other storage node among the plurality of storage nodes besides the first storage node. Based on the first storage performance value corresponding to the first storage node, the first storage performance value corresponding to the second storage node, and a performance error threshold, an upper limit value and a lower limit value of storage performance are determined. Based on the first ratio, the upper limit value of storage performance, and the lower limit value of storage performance, the first storage performance value corresponding to the first storage node is verified.

[0167] In another possible implementation, the verification module 503 is used to obtain the amount of stored data corresponding to each of the multiple storage nodes when they last stored historical data blocks; determine the sum of the amount of stored data corresponding to the multiple storage nodes to obtain a first sum; determine the ratio of the first amount of stored data to the first sum to obtain a second ratio, where the first amount of stored data is the amount of stored data corresponding to the first storage node when it last stored historical data blocks; determine the sum of the first storage performance values ​​corresponding to the multiple storage nodes to obtain the second sum; determine the upper limit of stored data based on the first storage performance value corresponding to the first storage node, the performance error threshold, and the second sum; and verify the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, the lower limit of storage performance, the second ratio, and the upper limit of stored data.

[0168] In another possible implementation, the determining module 504 is used to determine the first storage performance value corresponding to the first storage node as the second storage performance value corresponding to the first storage node if the second ratio is not greater than the upper limit of the stored data and the first ratio is between the upper limit of the storage performance and the lower limit of the storage performance; if the second ratio is greater than the upper limit of the stored data, or the first ratio is not between the upper limit of the storage performance and the lower limit of the storage performance, then the first storage performance value corresponding to the first storage node is corrected based on the first ratio and the first storage performance value corresponding to the second storage node to obtain the second storage performance value corresponding to the first storage node.

[0169] In another possible implementation, the types of multiple storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes;

[0170] The first storage module 505 is used to store multiple data blocks into multiple storage nodes according to their respective storage priorities based on the second storage performance values ​​of the current storage nodes. The priority of the local storage node is higher than that of the local cluster storage node, and the priority of the local cluster storage node is higher than that of the remote storage node.

[0171] In another possible implementation, the types of multiple storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes, and the number of both local cluster storage nodes and remote storage nodes is multiple.

[0172] The device also includes:

[0173] The generation module is used to generate multiple data copies of each data block, with the number of data copies being no less than 2.

[0174] The second storage module is used to store the first data copy of the data block in the local storage node;

[0175] The third storage module is used to determine the target remote storage node with the highest second storage performance value from multiple remote storage nodes, and to store the second data copy of the data block in the target remote storage node;

[0176] The fourth storage module is used to determine the third number of local cluster storage nodes with the highest second storage performance value from multiple local cluster storage nodes if the number of multiple data replicas is greater than 2, and to store the remaining data replicas of the data block into the third number of local cluster storage nodes respectively. The third number is the same as the number of remaining data replicas.

[0177] This application provides an earthquake data storage device. The device first obtains the number of historical data blocks stored by a storage node in the previous storage session. Since the number of historical data blocks stored by a storage node reflects its storage performance, the current storage performance of the storage node can be accurately determined based on this number. Then, a corresponding number of data blocks can be allocated to the storage node based on its current storage performance, meaning the number of data blocks stored by the storage node is commensurate with its storage performance. This shortens the overall storage time and improves storage efficiency.

[0178] refer to Figure 6 , Figure 6This illustration shows a structural block diagram of a terminal 600 provided in an exemplary embodiment of this application. The terminal 600 may be a portable mobile terminal, such as a smartphone, tablet computer, MP3 player (Moving Picture Experts Group Audio Layer III), MP4 player (Moving Picture Experts Group Audio Layer IV), laptop computer, or desktop computer. The terminal 600 may also be referred to as a user device, portable terminal, laptop terminal, desktop terminal, or other names.

[0179] Typically, terminal 600 includes a processor 601 and a memory 602.

[0180] Processor 601 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 601 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). Processor 601 may also include a main processor and a coprocessor. The main processor, also known as a CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 601 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, processor 601 may also include an AI (Artificial Intelligence) processor, which is used to handle computational operations related to machine learning.

[0181] The memory 602 may include one or more computer-readable storage media, which may be non-transitory. The memory 602 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 602 are used to store at least one line of program code, which is executed by the processor 601 to implement the operations performed by the terminal in the earthquake data storage method provided in the method embodiments of this application.

[0182] In some embodiments, the terminal 600 may optionally include a peripheral device interface 603 and at least one peripheral device. The processor 601, memory 602, and peripheral device interface 603 can be connected via a bus or signal line. Each peripheral device can be connected to the peripheral device interface 603 via a bus, signal line, or circuit board. Specifically, the peripheral device includes at least one of the following: a radio frequency circuit 604, a display screen 605, a camera assembly 606, an audio circuit 607, and a power supply 608.

[0183] Peripheral interface 603 can be used to connect at least one I / O (Input / Output) related peripheral device to processor 601 and memory 602. In some embodiments, processor 601, memory 602 and peripheral interface 603 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 601, memory 602 and peripheral interface 603 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0184] The radio frequency (RF) circuit 604 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The RF circuit 604 communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 604 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals back into electrical signals. Optionally, the RF circuit 604 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The RF circuit 604 can communicate with other terminals through at least one wireless communication protocol. This wireless communication protocol includes, but is not limited to: the World Wide Web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and / or WiFi (Wireless Fidelity) networks. In some embodiments, the RF circuit 604 may also include circuitry related to NFC (Near Field Communication), which is not limited in this application.

[0185] Display screen 605 is used to display a UI (User Interface). This UI may include graphics, text, icons, videos, and any combination thereof. When display screen 605 is a touch display screen, it also has the ability to collect touch signals on or above its surface. These touch signals can be input as control signals to processor 601 for processing. In this case, display screen 605 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, there may be one display screen 605, disposed on the front panel of terminal 600; in other embodiments, there may be at least two display screens, disposed on different surfaces of terminal 600 or in a folded design; in other embodiments, display screen 605 may be a flexible display screen, disposed on a curved or folded surface of terminal 600. Furthermore, display screen 605 may be configured as a non-rectangular irregular shape, i.e., a non-rectangular screen. Display screen 605 may be made of materials such as LCD (Liquid Crystal Display) or OLED (Organic Light-Emitting Diode).

[0186] The camera assembly 606 is used to acquire images or videos. Optionally, the camera assembly 606 includes a front-facing camera and a rear-facing camera. Typically, the front-facing camera is located on the front panel of the terminal, and the rear-facing camera is located on the back of the terminal. In some embodiments, there are at least two rear-facing cameras, which are any one of a main camera, a depth-sensing camera, a wide-angle camera, and a telephoto camera, to achieve background blurring by fusion of the main camera and the depth-sensing camera, panoramic shooting by fusion of the main camera and the wide-angle camera, VR (Virtual Reality) shooting, or other fusion shooting functions. In some embodiments, the camera assembly 606 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. A dual-color temperature flash refers to a combination of a warm light flash and a cool light flash, which can be used for light compensation at different color temperatures.

[0187] The audio circuit 607 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, converting the sound waves into electrical signals that are input to the processor 601 for processing, or input to the radio frequency circuit 604 for voice communication. For stereo sound acquisition or noise reduction purposes, multiple microphones may be used, each located at a different part of the terminal 600. The microphone may also be an array microphone or an omnidirectional microphone. The speaker is used to convert the electrical signals from the processor 601 or the radio frequency circuit 604 into sound waves. The speaker may be a conventional diaphragm speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can convert electrical signals not only into audible sound waves but also into inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 607 may also include a headphone jack.

[0188] Power supply 608 is used to power the various components in terminal 600. Power supply 608 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 608 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, and a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.

[0189] In some embodiments, the terminal 600 further includes one or more sensors 609. The one or more sensors 609 include, but are not limited to, an accelerometer 610, a gyroscope 611, a pressure sensor 612, an optical sensor 613, and a proximity sensor 614.

[0190] Accelerometer 610 can detect the magnitude of acceleration along the three coordinate axes of a coordinate system established by terminal 600. For example, accelerometer 610 can be used to detect the components of gravitational acceleration along the three coordinate axes. Processor 601 can control display screen 605 to display the user interface in either a landscape or portrait view based on the gravitational acceleration signal acquired by accelerometer 610. Accelerometer 610 can also be used for games or for acquiring user motion data.

[0191] The gyroscope sensor 611 can detect the orientation and rotation angle of the terminal 600. The gyroscope sensor 611 can work in conjunction with the accelerometer sensor 610 to collect 3D motion data from the user on the terminal 600. Based on the data collected by the gyroscope sensor 611, the processor 601 can perform the following functions: motion sensing (e.g., changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0192] The pressure sensor 612 can be disposed on the side bezel of the terminal 600 and / or the lower layer of the display screen 605. When the pressure sensor 612 is disposed on the side bezel of the terminal 600, it can detect the user's grip signal on the terminal 600, and the processor 601 can perform left / right hand recognition or quick operation based on the grip signal collected by the pressure sensor 612. When the pressure sensor 612 is disposed on the lower layer of the display screen 605, the processor 601 can control the operable controls on the UI interface based on the user's pressure operation on the display screen 605. The operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.

[0193] An optical sensor 613 is used to collect ambient light intensity. In one embodiment, the processor 601 can control the display brightness of the display screen 605 based on the ambient light intensity collected by the optical sensor 613. Specifically, when the ambient light intensity is high, the display brightness of the display screen 605 is increased; when the ambient light intensity is low, the display brightness of the display screen 605 is decreased. In another embodiment, the processor 601 can also dynamically adjust the shooting parameters of the camera assembly 606 based on the ambient light intensity collected by the optical sensor 613.

[0194] The proximity sensor 614, also known as a distance sensor, is typically mounted on the front panel of the terminal 600. The proximity sensor 614 is used to detect the distance between the user and the front of the terminal 600. In one embodiment, when the proximity sensor 614 detects that the distance between the user and the front of the terminal 600 is gradually decreasing, the processor 601 controls the display screen 605 to switch from a screen-on state to a screen-off state; when the proximity sensor 614 detects that the distance between the user and the front of the terminal 600 is gradually increasing, the processor 601 controls the display screen 605 to switch from a screen-off state to a screen-on state.

[0195] Those skilled in the art will understand that Figure 6 The structure shown does not constitute a limitation on terminal 600, and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0196] For a server structure diagram, please refer to [link / reference]. Figure 7The server 700 can vary considerably depending on its configuration or performance. It may include a Central Processing Unit (CPU) 701 and a memory 702. The memory 702 stores at least one line of program code, which is loaded and executed by the processor 701 to perform the operations performed by the server in the aforementioned seismic data storage method. Of course, the server 700 may also have wired or wireless network interfaces, a keyboard, and input / output interfaces for input and output. The server 700 may also include other components for implementing device functions, which will not be elaborated upon here.

[0197] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores at least one piece of program code that is loaded and executed by a processor to implement the earthquake data storage method in the above embodiments.

[0198] In an exemplary embodiment, a computer program product is also provided, which stores at least one piece of program code that is loaded and executed by a processor to implement the earthquake data storage method in the above embodiments.

[0199] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0200] The above description is only for the purpose of enabling those skilled in the art to understand the technical solution of this application, and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for storing seismic data, characterized in that, The method includes: Acquire target seismic data and divide the target seismic data into multiple data blocks; The number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system in the previous storage and their corresponding first storage performance values ​​are obtained, wherein the multiple historical data blocks are obtained by segmenting historical earthquake data; Based on the number of historical data blocks stored by each of the multiple storage nodes in the previous storage session, the first storage performance value corresponding to each of the multiple storage nodes is verified. Based on the verification results, the second storage performance value corresponding to each of the plurality of storage nodes is determined. Based on the second storage performance value corresponding to each of the multiple storage nodes, the multiple data blocks are stored in the multiple storage nodes.

2. The method according to claim 1, characterized in that, The step of verifying the first storage performance value corresponding to each of the multiple storage nodes based on the number of historical data blocks stored at one time on each of the multiple storage nodes includes: Determine the ratio of the first quantity to the second quantity to obtain the first ratio. The first quantity is the number of historical data blocks stored in the last time by the first storage node, and the second quantity is the number of historical data blocks stored in the last time by the second storage node. The first storage node is any one of the plurality of storage nodes, and the second storage node is any other storage node among the plurality of storage nodes besides the first storage node. Based on the first storage performance value corresponding to the first storage node, the first storage performance value corresponding to the second storage node, and the performance error threshold, the upper limit value and the lower limit value of storage performance are determined. Based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance, the first storage performance value corresponding to the first storage node is verified.

3. The method according to claim 2, characterized in that, The step of verifying the first storage performance value corresponding to the first storage node based on the first ratio, the upper limit of storage performance, and the lower limit of storage performance includes: Obtain the amount of stored data corresponding to each of the multiple storage nodes when they last stored historical data blocks; Determine the sum of the stored data amounts corresponding to the plurality of storage nodes to obtain a first sum value; Determine the ratio of the first stored data volume to the first sum value to obtain the second ratio, where the first stored data volume is the stored data volume corresponding to the last time the first storage node stored historical data blocks; Determine the sum of the first storage performance values ​​corresponding to the plurality of storage nodes to obtain the second sum; Based on the first storage performance value corresponding to the first storage node, the performance error threshold, and the second sum value, the upper limit value of the stored data is determined; Based on the first ratio, the upper limit of storage performance, the lower limit of storage performance, the second ratio, and the upper limit of storage data, the first storage performance value corresponding to the first storage node is verified.

4. The method according to claim 3, characterized in that, The step of determining the second storage performance value corresponding to each of the plurality of storage nodes based on the verification results includes: If the second ratio is not greater than the upper limit of the stored data, and the first ratio is between the upper limit of the storage performance and the lower limit of the storage performance, the first storage performance value corresponding to the first storage node is determined as the second storage performance value corresponding to the first storage node. If the second ratio is greater than the upper limit of the stored data, or if the first ratio is not between the upper limit of the storage performance and the lower limit of the storage performance, then based on the first ratio and the first storage performance value corresponding to the second storage node, the first storage performance value corresponding to the first storage node is corrected to obtain the second storage performance value corresponding to the first storage node.

5. The method according to claim 1, characterized in that, The types of the multiple storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes; The step of storing the multiple data blocks into the multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes includes: Based on the second storage performance value corresponding to each of the multiple storage nodes, the multiple data blocks are stored in the multiple storage nodes according to storage priority, wherein the priority of the local storage node is greater than the priority of the local cluster storage node, and the priority of the local cluster storage node is greater than the priority of the remote storage node.

6. The method according to claim 1, characterized in that, The types of the multiple storage nodes include local storage nodes, local cluster storage nodes, and remote storage nodes, and the number of both local cluster storage nodes and remote storage nodes is multiple; The method further includes: For each data block, multiple data copies of the data block are generated, and the number of the multiple data copies is not less than 2; Store the first data copy of the data block in the local storage node; Determine the target remote storage node with the highest second storage performance value from multiple remote storage nodes, and store the second data copy of the data block in the target remote storage node; If the number of multiple data replicas is greater than 2, then a third number of local cluster storage nodes with the highest second storage performance value are determined from the multiple local cluster storage nodes, and the remaining data replicas of the data block are stored in the third number of local cluster storage nodes respectively, wherein the third number is the same as the number of remaining data replicas.

7. A seismic data storage device, characterized in that, The device includes: The first acquisition module is used to acquire target seismic data and divide the target seismic data into multiple data blocks; The second acquisition module is used to acquire the number of historical data blocks stored by each of the multiple storage nodes in the distributed storage system at the last time, as well as their corresponding first storage performance values. The multiple historical data blocks are obtained by segmenting historical earthquake data. The verification module is used to verify the first storage performance value corresponding to each of the multiple storage nodes based on the number of multiple historical data blocks stored by each of the multiple storage nodes in the previous storage node; The determination module is used to determine the second storage performance value corresponding to each of the plurality of storage nodes based on the verification results; The first storage module is used to store the multiple data blocks into the multiple storage nodes based on the second storage performance value corresponding to each of the multiple storage nodes at the present time.

8. An electronic device, characterized in that, The electronic device includes a processor and a memory, wherein the memory stores at least one piece of program code, which is loaded and executed by the processor to implement the earthquake data storage method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one piece of program code, which is loaded and executed by a processor to implement the earthquake data storage method as described in any one of claims 1 to 6.

10. A computer program product, characterized in that, The computer program product stores at least one piece of program code, which is loaded and executed by a processor to implement the earthquake data storage method as described in any one of claims 1 to 6.