An omap operation performance test method, device and medium
By initializing test parameters, generating operation queues and omap requests, and employing concurrency and asynchronous processing, the problem of measuring omap operation performance in distributed storage systems was solved, enabling reliable testing of omap operation performance and acquisition of limit values.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INSPUR SUZHOU INTELLIGENT TECH CO LTD
- Filing Date
- 2022-03-25
- Publication Date
- 2026-07-24
Smart Images

Figure CN114676008B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of distributed storage, and in particular to an omap operation performance testing method, apparatus and medium. Background Technology
[0002] omap stands for object map, which is an object used to store key-value map data. In distributed storage, omap objects play a crucial role. In the file and object services provided by distributed storage, the performance of omap directly impacts the performance of the cluster storage. In file services, metadata such as directory indexes is stored in omap objects, for example, recording information about the files corresponding to a directory. Additionally, detached directory objects used for asynchronous deletion in the file system are also omap objects; files to be deleted are first placed in detached directories, and then slowly cleaned up in the background. In object storage, there are also garbage collection objects similar to detached directory objects, which are also omap objects, used to perform garbage collection operations on deleted objects. Furthermore, bucket shard objects in object storage are also omap objects, used to record the names of objects within a specific bucket. Therefore, omap objects are important in distributed storage, and the performance of omap-related operations is strongly correlated with the performance of the storage cluster.
[0003] Typically, each local storage engine has its own performance benchmarking tools and provides its own benchmark results. However, after integrating a local storage engine with a storage system, there is no performance benchmark for the local database interface implemented by the storage system. Benchmarking performance directly using file or object services results in immeasurable and non-universal performance metrics, and it also deepens the code call stack, leading to performance bottlenecks. Furthermore, upper-layer applications are unlikely to push the underlying performance to its limit, making it impossible to measure the ultimate performance.
[0004] In view of the above problems, designing a reliable method for testing the performance of omap operations is an urgent problem to be solved by technicians in this field. Summary of the Invention
[0005] The purpose of this application is to provide an OMAP operation performance testing method, apparatus, and medium.
[0006] To address the aforementioned technical problems, this application provides a method for testing the performance of OMAP operations, comprising:
[0007] Initialize the test parameters, wherein the test parameters include at least the runtime and concurrency;
[0008] Generate an operation queue, wherein the length of the operation queue is equal to the number of concurrent operations;
[0009] Generate omap requests, wherein the omap requests include omap write requests or omap read requests, the number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue;
[0010] The omap request is processed asynchronously through the operation queue;
[0011] Determine whether the processing procedure meets the preset conditions;
[0012] If so, output the test statistics.
[0013] Preferably, when the omap request is an omap write request, the test parameters further include:
[0014] The maximum number of objects to be written, the number of key-value pairs corresponding to each object to be written, the length of the key value, the length of the value value, and parameters indicating whether to clean up.
[0015] Preferably, generating the omap request includes:
[0016] Generate the omap request containing the object name, key, and value.
[0017] Preferably, before generating the operation queue, the method further includes:
[0018] Create a data printing thread to output performance data at preset time intervals.
[0019] Preferably, the determination of whether the processing meets the preset conditions includes:
[0020] Determine whether the number of objects written during the processing has reached the maximum number of objects written or whether the running time has reached a threshold.
[0021] Preferably, if the processing procedure does not meet the preset conditions, the method further includes:
[0022] Iterate through the slots of the operation queue;
[0023] Determine whether the slots in the operation queue are available;
[0024] If not, return to the step of traversing the slots of the operation queue;
[0025] If so, obtain statistical data based on the current physical time and the last omap request sending time corresponding to the slot in the operation queue;
[0026] A new omap request is generated based on the statistical data, and the process proceeds to the step of determining whether the preset conditions are met.
[0027] Preferably, if the current omap request is the omap write request, then after the output test statistics, the following is also included:
[0028] Whether to clean up the information of the omap write request is determined based on the parameter indicating whether it is cleaned up;
[0029] If so, clean up the information in the omap write request;
[0030] If not, save the information of the omap write request to use as the test parameter for the next omap read request.
[0031] To address the aforementioned technical problems, this application also provides an OMAP operation performance testing device, comprising:
[0032] An initialization module is used to initialize test parameters, wherein the test parameters include at least runtime and concurrency.
[0033] A first generation module is used to generate an operation queue, wherein the length of the operation queue is equal to the number of concurrent operations;
[0034] The second generation module is used to generate omap requests, wherein the omap requests include omap write requests or omap read requests, the number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue;
[0035] The processing module is used to asynchronously process the omap request through the operation queue;
[0036] The judgment module is used to determine whether the processing meets the preset conditions; if so, the output module is triggered.
[0037] The output module is used to output test statistics.
[0038] To address the aforementioned technical problems, this application also provides another OMAP operation performance testing device, comprising:
[0039] Memory, used to store computer programs;
[0040] A processor is used to implement the steps of the above-described omap operation performance testing method when executing the computer program.
[0041] To address the aforementioned technical problems, this application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the omap operation performance testing method described above.
[0042] This application provides a method for testing the performance of omap operations. The method initializes test parameters, including at least runtime and concurrency; generates an operation queue with a length equal to the concurrency level; and generates omap requests, including write and read requests, with the number of requests equal to the concurrency level. Each omap request corresponds one-to-one with a slot in the operation queue. The omap requests are then processed asynchronously through the operation queue. The method determines whether the processing meets preset conditions; if so, it outputs test statistics. Therefore, this approach can test both write and read operations of omap in a distributed storage system. Because it sets the concurrency level and uses asynchronous processing, it can control the test load through multiple concurrent connections, thereby obtaining the performance limits of omap operations and demonstrating high reliability.
[0043] In addition, this application also provides an omap operation performance testing device and a computer-readable storage medium, with the same effect as above. Attached Figure Description
[0044] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0045] Figure 1 A flowchart illustrating an omap operation performance testing method provided in this application embodiment;
[0046] Figure 2 A flowchart illustrating another omap operation performance testing method provided in this application embodiment;
[0047] Figure 3 This is a schematic diagram of the structure of an OMAP operation performance testing device provided in an embodiment of this application;
[0048] Figure 4 This is a schematic diagram of another OMAP operation performance testing device provided in an embodiment of this application. Detailed Implementation
[0049] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.
[0050] The core of this application is to provide an OMAP operation performance testing method, device, and medium.
[0051] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0052] omap stands for object map, which is an object used to store key-value map data. Operations on omap mainly involve set and get operations. omap operations rely on local storage engines integrated into distributed storage, such as LevelDB and RocksDB, which are both local key-value databases. RocksDB is currently the recommended choice. omap data is ultimately saved to the local database corresponding to an OSD (a module used to manage a disk in distributed storage). Based on redundancy rules, such as if there are three replicas, the omap data will be saved to three different OSD local databases.
[0053] In distributed storage, omap objects play a crucial role. The performance of omap directly impacts the overall performance of the cluster storage in the file and object services provided by distributed storage. In file services, metadata such as directory indexes is stored in omap objects, for example, recording information about files within a directory. Additionally, detached directory objects used for asynchronous deletion in the file system are also omap objects; files to be deleted are first placed in the detached directory, and then slowly cleaned up in the background. Object storage also has garbage collection objects similar to detached directory objects, which are also omap objects, used for garbage collection operations on deleted objects. Furthermore, bucket shard objects in object storage are also omap objects, used to record the names of objects within a specific bucket. Generally, each local storage engine has its own performance benchmarking tools and provides its own benchmark results. However, after integrating a local storage engine with a storage system, there is no performance benchmarking for the local database interface implemented by the storage system. Directly performing performance benchmarking using file or object services results in immeasurable and non-generalizable performance metrics, and it also deepens the code call stack, leading to performance bottlenecks. Moreover, upper-layer business logic cannot easily push the underlying performance to its limit, making it impossible to measure the ultimate performance. Therefore, in order to solve the above problems, this application provides a method for testing the performance of omap operations. Figure 1 A flowchart of an omap operation performance testing method provided in this application embodiment is shown below. Figure 1 As shown, the method includes:
[0054] S10: Initialize test parameters, which include at least runtime and concurrency.
[0055] S11: Generate an operation queue, where the length of the operation queue is equal to the number of concurrent operations.
[0056] S12: Generate omap requests, where omap requests include omap write requests or omap read requests. The number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue.
[0057] S13: Asynchronously process omap requests through the operation queue.
[0058] S14: Determine whether the processing meets the preset conditions.
[0059] S15: If so, output the test statistics.
[0060] It is understood that the testing method provided in this application embodiment tests two performance benchmarks: writing key-value data to OMAP objects and random reading. The specific parameter content for the two tests may differ during initialization, depending on the specific implementation. However, in both tests, at least the runtime and concurrency must be initialized.
[0061] Next, an operation queue is generated, with its length equal to the concurrency level. Specifically, each queue element contains data structures such as mutexes and execution results. If a mutex is locked, it indicates that the slot in the queue is currently in use; otherwise, the slot is available to process new requests. Then, OMAP requests are generated, which can be either write or read requests, depending on the specific implementation. The number of OMAP requests is equal to the concurrency level, and each OMAP request corresponds one-to-one with a slot in the operation queue, thus enabling asynchronous processing of OMAP requests through these slots. During processing, data such as the request issuance time and the number of requests issued for each slot are recorded. After asynchronous processing is complete, the execution result is filled into the corresponding execution result for each slot, and the mutex lock for that slot is released. After asynchronous processing of the request, it is determined whether the processing meets preset conditions. In this embodiment, the specific method for determining whether the processing meets preset conditions is not limited and depends on the specific implementation. If the preset conditions are met, test statistics containing the execution results are output.
[0062] In this embodiment, test parameters are initialized, including at least runtime and concurrency; an operation queue is generated, with its length equal to the concurrency level; and omap requests are generated, including omap write requests and omap read requests, with the number of omap requests equal to the concurrency level. Each omap request corresponds one-to-one with a slot in the operation queue. The omap requests are processed asynchronously through the operation queue, and it is determined whether the processing meets preset conditions. If so, test statistics are output. Therefore, the above scheme can test both write and read operations of omap in a distributed storage system. Because concurrency is set and asynchronous processing is used, the test pressure can be controlled by multiple concurrent connections, thus obtaining the performance limits of omap operations, making it highly reliable.
[0063] Based on the above embodiments:
[0064] As a preferred embodiment, when the omap request is an omap write request, the test parameters also include:
[0065] The maximum number of objects to be written, the number of key-value pairs for each written object, the length of the key value, the length of the value value, and parameters indicating whether cleanup is required.
[0066] As can be understood from the above embodiments, an omap request can be either an omap write request or an omap read request. Specifically, when the omap request is an omap write request, the test parameters also include the maximum number of objects to be written, the number of key-value pairs corresponding to each written object, the length of the key value, the length of the value value, and a parameter indicating whether cleanup is required. The parameter indicating whether cleanup is required refers to whether the information from the omap write request is cleaned up after the test.
[0067] It should be noted that although the test parameters in this embodiment are limited to those that need to be initialized when the omap request is an omap write request, this does not mean that the above parameters are not needed when the omap request is an omap read request. There are no restrictions on how the above parameters are obtained when an omap read request is made; it depends on the specific implementation.
[0068] In this embodiment, when the omap request is an omap write request, the test parameters also include the maximum number of objects to be written, the number of key-value pairs corresponding to each written object, the length of the key value, the length of the value value, and parameters indicating whether cleanup is required, providing data for the asynchronous processing of subsequent requests.
[0069] Based on the above embodiments:
[0070] As a preferred embodiment, generating an OMAP request includes:
[0071] Generate an OMAP request containing the object name, key, and value.
[0072] In practice, the generated OMAP request includes an object name, a key, and a value. When the generated OMAP request is a write request, the object name is generated in the form of a fixed string plus an `objectseq`, where `objectseq` is a sequence number starting from 0. After writing the set number of key-value pairs for each object, `objectseq` is incremented by 1 to start writing the next object. The key is generated based on `objectseq`, consisting of a random string of the set key length plus `keyseq`; `keyseq` is a sequence number starting from 0 and continuing until the set number of key-value pairs for each object is written; the value is a randomly generated string of a preset length.
[0073] When the generated OMAP request is an OMAP read request, since the object name in an OMAP write request is a fixed string plus a sequence number, a random number generator can be used to generate a random number within the range of the number of objects to be written. This gives us the name of the object to be read. After obtaining the object, we get its sequence number. In an OMAP write request, the object's key value is composed of a random string of the set key value length generated based on the object's sequence number plus the key value sequence number. Therefore, we can obtain a random string using the object's sequence number and the key value length, and then use a random number generator to generate a random number within the number of key-value pairs for a single object to obtain the key value. This gives us the randomly read object and key value. The value is also a randomly generated string of a preset length.
[0074] In this embodiment, the omap request contains an object name, a key, and a value. The methods for generating the object name, key, and value differ slightly between omap write requests and omap read requests. These are then used for subsequent asynchronous processing after being constructed.
[0075] Figure 2 A flowchart of another omap operation performance testing method provided in an embodiment of this application.
[0076] like Figure 2 As shown, before generating the operation queue, the following steps are also included:
[0077] S16: Create a data printing thread to output performance data at preset time intervals.
[0078] In this embodiment, by creating a data printing thread, performance data can be output at preset time intervals. For example, performance data can be printed every second, making it convenient to view performance data in real time.
[0079] Based on the above embodiments:
[0080] As a preferred embodiment, determining whether the processing meets preset conditions includes:
[0081] Determine whether the number of objects written during the processing has reached the maximum number of objects to be written or whether the running time has reached the threshold.
[0082] In the above embodiments, the specific method for determining whether the processing meets the preset conditions is not limited, and depends on the specific implementation. As a preferred embodiment, this embodiment determines whether the number of objects written during the processing reaches the maximum number of objects to be written or whether the running time reaches a threshold, in order to determine whether the test is completed.
[0083] like Figure 2 As shown, in specific implementation, if the processing does not meet the preset conditions, the following further steps are also taken:
[0084] S17: Traverse the slots of the operation queue.
[0085] S18: Determine if the slot in the operation queue is available; if not, return to step S17; if yes, proceed to step S19.
[0086] S19: Obtain statistical data based on the current physical time and the last omap request delivery time corresponding to the slot in the operation queue.
[0087] S20: Generate a new omap request based on the statistical data, and proceed to step S14.
[0088] Understandably, when determining whether the number of objects written during processing has reached the maximum number of objects to be written or whether the running time has reached a threshold, there may be cases where the maximum number of objects to be written or the running time threshold is not met, thus preventing the output of test statistics. Therefore, if the processing does not meet the preset conditions, it is necessary to traverse the slots of the operation queue and attempt to acquire the mutex of the slot. If the acquisition is successful, it means that the slot is available, thus determining whether the slot in the operation queue is available. If the slot in the operation queue is found to be unavailable, the next slot is checked until a slot in the queue becomes available.
[0089] If the operation queue slot is determined to be available, statistical data is obtained based on the current physical time and the last OMAP request dispatch time corresponding to the operation queue slot. Specifically, the processing latency of the last request is obtained by subtracting the last OMAP request dispatch time corresponding to the currently obtained operation queue slot from the current physical time; based on the processing latency of the last request, the statistical data such as the maximum latency, minimum latency, average latency, and the number of dispatched requests that have been processed in this test are updated.
[0090] After obtaining the statistical data, a new OMAP request is generated based on the statistical data, including the object name, key value, and value value, according to the generation rules described in the above embodiment. Then, the currently obtained queue slot is used for asynchronous processing, and the time when the request was sent is recorded. The process then returns to step S14 for further evaluation.
[0091] In this embodiment, if the processing does not meet the preset conditions, a new omap request is obtained based on the slot of the operation queue and the current physical time and the last omap request sending time corresponding to the slot of the operation queue, until the processing meets the preset conditions, thereby realizing the output of test statistics data.
[0092] Based on the above embodiments:
[0093] As a preferred embodiment, if the current omap request is an omap write request, then after outputting the test statistics, the following is also included:
[0094] Whether to clean up the information in the omap write request is determined based on the parameters that indicate whether to clean it up;
[0095] If so, clean up the omap write request information;
[0096] If not, save the information from the omap write request to use as test parameters for the next omap read request.
[0097] As can be understood in the above embodiments, the parameter indicating whether to clean up is a parameter for whether to clean up the information of omap write requests after the test, and it is initialized before the omap write request test begins. After the test statistics are output, if the parameter indicating whether to clean up indicates that the information of omap write requests should be cleaned up, then the information of omap write requests is cleaned up. If the parameter indicating whether to clean up indicates that the information of omap write requests should not be cleaned up, then the information of omap write requests is saved, and the information of this run is persistently recorded on an object, including the number of objects written, the number of key-value pairs in each object, the length of the key value, the length of the value value, etc., as test parameters for the next omap read request.
[0098] In this embodiment, a parameter representing whether to clean up is used to determine whether to clean up the information of the omap write request. When the parameter representing whether to clean up indicates that the information of the omap write request should not be cleaned up, the information of the omap write request is saved as a test parameter for the next omap read request.
[0099] In the above embodiments, the OMAP operation performance testing method has been described in detail. This application also provides embodiments corresponding to the OMAP operation performance testing device. It should be noted that this application describes the embodiments of the device part from two perspectives: one is based on the functional modules, and the other is based on the hardware structure.
[0100] Figure 3 This is a schematic diagram of the structure of an OMAP operation performance testing device provided in an embodiment of this application. Figure 3 As shown, the OMAP operation performance testing device includes:
[0101] Initialization module 10 is used to initialize test parameters, which include at least runtime and concurrency.
[0102] The first generation module 11 is used to generate an operation queue, wherein the length of the operation queue is equal to the number of concurrent operations.
[0103] The second generation module 12 is used to generate omap requests, wherein the omap requests include omap write requests or omap read requests, the number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue.
[0104] Processing module 13 is used to asynchronously process omap requests through an operation queue.
[0105] The judgment module 14 is used to determine whether the processing meets the preset conditions; if so, the output module is triggered.
[0106] Output module 15 is used to output test statistics.
[0107] Since the embodiments of the apparatus and the embodiments of the method correspond to each other, please refer to the description of the embodiments of the method for the embodiments of the apparatus, which will not be repeated here.
[0108] Figure 4 This is a schematic diagram of another OMAP operation performance testing device provided in an embodiment of this application, as shown below. Figure 4 As shown, the OMAP operation performance testing device includes:
[0109] Memory 20 is used to store computer programs.
[0110] The processor 21 is configured to implement the steps of the method for omap operation performance testing as described in the above embodiments when executing a computer program.
[0111] The OMAP operation performance testing device provided in this embodiment may include, but is not limited to, smartphones, tablets, laptops, or desktop computers.
[0112] The processor 21 may include one or more processing cores, such as a quad-core processor or an octa-core processor. The processor 21 may be implemented using at least one of the following hardware forms: Digital Signal Processor (DSP), Field-Programmable Gate Array (FPGA), or Programmable Logic Array (PLA). The processor 21 may also include a main processor and a coprocessor. The main processor, also known as the Central Processing Unit (CPU), 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, the processor 21 may integrate a Graphics Processing Unit (GPU), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor 21 may also include an Artificial Intelligence (AI) processor, which handles computational operations related to machine learning.
[0113] The memory 20 may include one or more computer-readable storage media, which may be non-transitory. The memory 20 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 this embodiment, the memory 20 is used to store at least the following computer program 201, which, after being loaded and executed by the processor 21, is capable of implementing the relevant steps of the omap operation performance testing method disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory 20 may also include an operating system 202 and data 203, and the storage method may be temporary storage or permanent storage. The operating system 202 may include Windows, Unix, Linux, etc. The data 203 may include, but is not limited to, the data involved in the omap operation performance testing method.
[0114] In some embodiments, the OMAP operation performance testing device may further include a display screen 22, an input / output interface 23, a communication interface 24, a power supply 25, and a communication bus 26.
[0115] Those skilled in the art will understand that Figure 4 The structure shown does not constitute a limitation on the OMAP operation performance testing apparatus and may include more or fewer components than shown.
[0116] Finally, this application also provides an embodiment corresponding to a computer-readable storage medium. The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps described in the above method embodiments.
[0117] It is understood that if the methods in the above embodiments are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and executes all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0118] The foregoing provides a detailed description of an OMAP operation performance testing method, apparatus, and medium. The various embodiments in the specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to in the method section. It should be noted that those skilled in the art can make several improvements and modifications to this application without departing from the principles of this application, and these improvements and modifications also fall within the protection scope of the claims of this application.
[0119] It should also be noted that, in this specification, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
Claims
1. A method for testing the performance of omap operations, characterized in that, include: Initialize the test parameters, wherein the test parameters include at least the runtime and concurrency; Generate an operation queue, wherein the length of the operation queue is equal to the number of concurrent operations; Generate omap requests, wherein the omap requests include omap write requests or omap read requests, the number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue; The omap request is processed asynchronously through the operation queue; Determine whether the processing procedure meets the preset conditions; If so, output the test statistics; If the processing procedure does not meet the preset conditions, the following further applies: Iterate through the slots of the operation queue; Determine whether the slots in the operation queue are available; wherein, the determination of whether the slots in the operation queue are available is achieved by determining whether a mutex for the slot has been acquired. If not, return to the step of traversing the slots of the operation queue; If so, obtain statistical data based on the current physical time and the last OMAP request issuance time corresponding to the slot in the operation queue; wherein, the statistical data includes the maximum latency, minimum latency, average latency, and number of issued requests that have been processed in this test; A new omap request is generated based on the statistical data. The new omap request is then processed asynchronously through the currently acquired queue slot, and the time when the request is sent is recorded. The process then proceeds to the step of determining whether the processing meets the preset conditions.
2. The omap operation performance testing method according to claim 1, characterized in that, When the omap request is an omap write request, the test parameters also include: The maximum number of objects to be written, the number of key-value pairs corresponding to each object to be written, the length of the key value, the length of the value value, and parameters indicating whether to clean up.
3. The omap operation performance testing method according to claim 1, characterized in that, The generation of the omap request includes: Generate the omap request containing the object name, key, and value.
4. The omap operation performance testing method according to claim 1, characterized in that, Before generating the operation queue, the following is also included: Create a data printing thread to output performance data at preset time intervals.
5. The omap operation performance testing method according to claim 2, characterized in that, The determination process to determine whether it meets the preset conditions includes: Determine whether the number of objects written during the processing has reached the maximum number of objects written or whether the running time has reached a threshold.
6. The omap operation performance testing method according to claim 2, characterized in that, If the current OMAP request is the OMAP write request, then after the output test statistics, the following also includes: Whether to clean up the information of the omap write request is determined based on the parameter indicating whether it is cleaned up; If so, clean up the information in the omap write request; If not, save the information of the omap write request to use as the test parameter for the next omap read request.
7. An OMAP operation performance testing device, characterized in that, include: An initialization module is used to initialize test parameters, wherein the test parameters include at least runtime and concurrency. A first generation module is used to generate an operation queue, wherein the length of the operation queue is equal to the number of concurrent operations; The second generation module is used to generate omap requests, wherein the omap requests include omap write requests or omap read requests, the number of omap requests is equal to the number of concurrent requests, and each omap request corresponds one-to-one with a slot in the operation queue; The processing module is used to asynchronously process the omap request through the operation queue; The judgment module is used to determine whether the processing meets the preset conditions; if so, the output module is triggered. The output module is used to output test statistics. If the processing procedure does not meet the preset conditions, the following further applies: Iterate through the slots of the operation queue; Determine whether the slots in the operation queue are available; wherein, the determination of whether the slots in the operation queue are available is achieved by determining whether a mutex for the slot has been acquired. If not, return to the step of traversing the slots of the operation queue; If so, obtain statistical data based on the current physical time and the last OMAP request issuance time corresponding to the slot in the operation queue; wherein, the statistical data includes the maximum latency, minimum latency, average latency, and number of issued requests that have been processed in this test; A new omap request is generated based on the statistical data. The new omap request is then processed asynchronously through the currently acquired queue slot, and the time when the request is sent is recorded. The process then proceeds to the step of determining whether the processing meets the preset conditions.
8. An OMAP operation performance testing device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the omap operation performance testing method as described in any one of claims 1 to 6 when executing the computer program.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the omap operation performance testing method as described in any one of claims 1 to 6.