A data storage method, device, storage medium and server
By obtaining the storage address of the target device identifier in the IoT management platform, the data distribution characteristics of the storage unit in the memory space are determined, which solves the problem of large memory occupation of hash structure and achieves a balance between memory occupation and data retrieval efficiency when storing data.
Patent Information
- Application Number
- CN202111657128.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-31
- Publication Date
- 2025-11-28
- Estimated Expiration
- 2041-12-31
AI Technical Summary
In IoT management platforms, while hash-based data storage improves retrieval efficiency, it consumes a large amount of memory. This is especially true for memory management platforms, where the space-for-retrieval-efficiency trade-off is not practical, particularly for small IoT management platforms or those where memory has other priorities.
By obtaining the identifier of the target device to be stored, determining its corresponding storage address, and based on the data distribution characteristics of the storage units in the memory space, determining the target storage unit from the memory space, and storing the target device identifier.
By determining the data distribution characteristics of the storage unit of the target device identifier, the target storage unit is determined from the memory space, and the target device identifier is stored in the target storage unit, which effectively reduces the memory occupied by data storage and improves data retrieval efficiency.
Smart Images

Figure CN116415036B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of data processing, and in particular, to a data storage method, device, storage medium and server. BACKGROUND
[0002] An Internet of Things management platform usually needs to manage a large number of electronic devices, especially the identifier information of the electronic devices. In the related art, electronic device information can be managed based on a linear data structure, but the retrieval performance of the linear data structure is low, and often cannot meet the requirements of the field for the retrieval efficiency of the electronic devices. In order to solve the technical problem of low retrieval efficiency of the linear structure, a hash structure emerges as the times require, that is, a large amount of electronic device information is stored in a hash structure. Although the storage method based on the hash structure can greatly improve the retrieval efficiency of the electronic devices, it occupies a large amount of memory, especially for small Internet of Things management platforms or for Internet of Things management platforms whose memory has other higher priority uses. This way of trading space for retrieval efficiency is not practical. SUMMARY
[0003] Embodiments of the present application provide a data storage method, device, storage medium and server, which can effectively reduce the memory occupied by data storage and help improve the retrieval efficiency of data.
[0004] In a first aspect, embodiments of the present application provide a data storage method, comprising:
[0005] obtaining a target device identifier to be stored;
[0006] determining a storage address corresponding to the target device identifier;
[0007] determining the data distribution characteristics of the storage unit corresponding to the storage address in the memory space, and determining a target storage unit from the memory space based on the data distribution characteristics;
[0008] storing the target device identifier in the target storage unit.
[0009] In a second aspect, embodiments of the present application further provide a data storage device, comprising:
[0010] a device identifier obtaining module configured to obtain a target device identifier to be stored;
[0011] a storage address determining module configured to determine a storage address corresponding to the target device identifier;
[0012] a target storage unit determination module, configured to determine a data distribution feature of a storage unit corresponding to the storage address in the memory space, and determine a target storage unit from the memory space based on the data distribution feature;
[0013] a device identifier storage module, configured to store the target device identifier in the target storage unit.
[0014] In a third aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program. The computer program is executed by a processor to implement the data storage method provided by the embodiments of the present application.
[0015] In a fourth aspect, an embodiment of the present application provides a server, which comprises a memory, a processor, and a computer program stored in the memory and executable on the processor. The processor implements the data storage method provided by the embodiments of the present application when executing the computer program.
[0016] The embodiments of the present application provide a data storage scheme, which acquires a target device identifier to be stored, determines a storage address corresponding to the target device identifier, determines a data distribution feature of a storage unit corresponding to the storage address in a memory space, and determines a target storage unit from the memory space based on the data distribution feature. The target device identifier is stored in the target storage unit. The technical scheme provided by the embodiments of the present application determines the storage address of the target device identifier to be stored, determines the storage unit for storing the target device identifier from the memory space according to the distribution feature of the device identifier of the storage unit corresponding to the storage address in the memory space, and stores the target device identifier. The data storage scheme can effectively reduce the memory occupied by data storage, and can greatly improve the retrieval efficiency of subsequent data based on the storage manner, so that the memory occupied during data storage and the retrieval efficiency during data retrieval are balanced. BRIEF DESCRIPTION OF DRAWINGS
[0017] Figure 1 is a flowchart of a data storage method provided by an embodiment of the present application;
[0018] Figure 2 is a structural schematic diagram of a static two-dimensional continuous address space provided by an embodiment of the present application;
[0019] Figure 3 is a flowchart of a data storage method provided by another embodiment of the present application;
[0020] Figure 4 is a device identifier storage result schematic diagram provided by an embodiment of the present application;
[0021] Figure 5is a structural schematic diagram of a data storage device provided by another embodiment of the present application;
[0022] Figure 6 is a structural schematic diagram of a server in another embodiment of the present application. DETAILED DESCRIPTION
[0023] Embodiments of the present application will be described in more detail with reference to the drawings. While several embodiments of the application are shown in the drawings, it is understood that the application can be embodied in various forms and should not be interpreted in a limited sense. Rather, these embodiments are provided so that this disclosure will be thorough and complete. It is understood that the drawings are for illustrative purposes and are not intended to limit the scope of the present application.
[0024] It should be understood that the various steps of the method embodiments of the present application can be performed in different orders and / or in parallel. In addition, the method embodiments can include additional steps and / or omit performing the steps shown. The scope of the present application is not limited in this respect.
[0025] The term "comprising" and variations thereof as used herein are used inclusively, i.e., "comprising, but not limited to." The term "based on" is "based at least in part on." The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments." Related terms are defined in the description that follows.
[0026] It should be noted that the terms "first", "second", and the like in the present application are used only to distinguish different devices, modules or units, and do not imply the order or interdependence of the functions performed by these devices, modules or units.
[0027] It should be noted that the terms "one", "multiple" in the present application are illustrative and not restrictive, and those skilled in the art should understand that "one or more" should be understood unless otherwise explicitly indicated in the context.
[0028] The names of the messages or information exchanged between the devices in the embodiments of the present application are only for illustrative purposes, and are not intended to limit the scope of the messages or information.
[0029] Figure 1 A flowchart of a data storage method provided by an embodiment of the present application, the embodiment of the present application can be applicable to the case of storing data, the method can be executed by a data storage device, which can be composed of hardware and / or software, and can generally be integrated in a server. As shown in Figure 1As shown, the method specifically comprises the following steps:
[0030] Step 110, obtaining a target device identifier to be stored.
[0031] The target device identifier can be understood as an identifier of a device to be stored or a device to be managed, and the target device identifier is identification information capable of representing the uniqueness of the device to be stored or the device to be managed. The target device identifier can be a MAC address of the device to be stored, or an ID of the device to be stored. It should be noted that the specific type of the target device identifier is not limited in the embodiment of the application. For example, the target device identifier to be stored is the MAC address of the device to be stored. In response to the data storage event being triggered, the server reads the MAC address of the device to be stored as the target device identifier. Alternatively, the server directly receives the MAC address of the device to be stored input by the user as the target device identifier to be stored.
[0032] Step 120, determining a storage address corresponding to the target device identifier.
[0033] The storage address corresponding to the target device identifier can be one or multiple. In the embodiment of the application, the storage address corresponding to the target device identifier is determined based on the target device identifier. For example, the target device identifier can be subjected to a hash operation based on a pre-set hash algorithm, and the hash operation result is taken as the storage address corresponding to the target device identifier. Generally, the number of devices managed by an Internet of Things management platform (such as a server) is about 10 million, and if each device identifier is represented by 3 bytes of data, the Internet of Things management platform can manage 16 million devices by using 3 bytes of device identifier. Therefore, the target device identifier can also be converted into 24-bit binary data, and the low 10 bits of the converted hexadecimal data are taken as the first storage address of the target device identifier, and the middle 10 bits of the converted hexadecimal data are taken as the second storage address of the target device identifier. It should be noted that the determination manner of the storage address corresponding to the target device identifier is not limited in the embodiment of the application.
[0034] Step 130, determining the data distribution characteristics of the storage unit corresponding to the storage address in the memory space, and determining a target storage unit from the memory space based on the data distribution characteristics.
[0035] In the embodiment of the present application, the storage unit corresponding to the storage address in the memory space can have stored other device identifiers, or the storage unit corresponding to the storage address can have stored a certain storage address, or the storage unit corresponding to the storage address can be empty (i.e. no data is stored). Therefore, the data distribution feature of the storage unit corresponding to the storage address in the memory space is determined, and then the target storage unit for storing the target device identifier is determined from the memory space based on the data distribution feature. For example, if the storage unit corresponding to the storage address in the memory space is empty, the storage unit corresponding to the storage address in the memory space can be directly used as the target storage unit for storing the target device identifier. For another example, if the storage unit corresponding to the storage address in the memory space has stored other device identifiers, it can be indicated that the storage address corresponding to the stored other device identifiers is the same as the storage address corresponding to the target device identifier, and therefore, the chain table corresponding to the storage unit can be created, the stored other device identifiers and the target device identifier can be stored in two continuous chain table nodes of the chain table in the order of the first and the second, and the storage address of the chain table node for storing the other device identifiers can be stored in the storage unit corresponding to the storage address in the memory space. For another example, when the storage unit corresponding to the storage address has stored a certain storage address, the storage address can be considered as the first address in the chain table of the storage unit for storing other device identifiers which are the same as the target device identifier, and therefore, the target device identifier can be stored in the next empty chain table node of the last chain table node associated with the first address in the chain table of the storage unit.
[0036] Step 140, storing the target device identifier in the target storage unit.
[0037] In the embodiment of the present application, the target device identifier is stored in the target storage unit, thereby completing the storage of the target device identifier.
[0038] The embodiment of the present application provides a data storage method, obtaining a target device identifier to be stored; determining a storage address corresponding to the target device identifier; determining a data distribution feature of a storage unit corresponding to the storage address in a memory space, and determining a target storage unit from the memory space based on the data distribution feature; and storing the target device identifier in the target storage unit. The technical scheme provided by the embodiment of the present application determines the storage address of the target device identifier to be stored, can determine the storage unit for storing the target device identifier from the memory space according to the distribution feature of the device identifier of the storage unit corresponding to the storage address in the memory space, and stores the target device identifier, which can not only effectively reduce the memory occupied by data storage, but also greatly improve the retrieval efficiency of subsequent data based on the above storage method, so that the memory occupation during data storage and the retrieval efficiency during data retrieval reach a better balance.
[0039] In some embodiments, the storage address includes a first storage address, and the memory space includes a first one-dimensional continuous address space; determining the data distribution feature of the storage unit corresponding to the storage address in the memory space, and determining the target storage unit from the memory space based on the data distribution feature, includes: searching for a first one-dimensional storage unit corresponding to the first storage address in the first one-dimensional continuous address space; and when the first one-dimensional storage unit does not store a first device identifier, determining the first one-dimensional storage unit as the target storage unit.
[0040] For example, the storage address includes a first storage address. For example, the target device identifier is converted into 24-bit binary data, and the lower 10 bits of the converted hexadecimal data are used as the first storage address of the target device identifier. The memory space includes a first one-dimensional continuous address space. For example, the size of the first one-dimensional continuous address space is 1K, and the first one-dimensional continuous address space includes 1024 one-dimensional storage units, and each one-dimensional storage unit has a size of 2 bytes. For example, the lower 10 bits of the hexadecimal data corresponding to the lower 10 bits of the converted 24-bit binary data of the target device identifier are used as the first storage address. In the embodiment of the present application, the first one-dimensional storage unit corresponding to the first storage address of the target device identifier is searched in the first one-dimensional continuous address space. For the convenience of description, the searched first one-dimensional storage unit is referred to as the first one-dimensional storage unit. The data distribution characteristics of the first one-dimensional storage unit are determined. When the first one-dimensional storage unit is empty, that is, the first one-dimensional storage unit does not store the first device identifier, the first one-dimensional storage unit can be directly used as the target storage unit for storing the target device identifier. It can be understood that, before the target device identifier is stored, there is no device identifier having the same lower 10 bits as the lower 10 bits of the converted 24-bit binary data of the target device identifier in the other device identifiers stored in the memory space. Therefore, the first one-dimensional storage unit is empty, and the target device identifier can be directly stored.
[0041] It should be noted that, when the first one-dimensional storage unit is used to store the target device identifier, since the storage address corresponding to the first one-dimensional storage unit represents the lower 10 bits of the converted 24-bit binary data of the target device identifier, the upper 14 bits of the converted 24-bit binary data of the target device identifier can be directly stored in the first one-dimensional storage unit.
[0042] In some embodiments, the memory space further includes a static two-dimensional continuous address space. Correspondingly, the method further includes: when the first one-dimensional storage unit stores the first device identifier, determining a first two-dimensional storage unit from the static two-dimensional continuous address space, and using a next empty two-dimensional storage unit adjacent to the first two-dimensional storage unit as a target storage unit. Before the target device identifier is stored in the target storage unit, the method further includes: storing the storage address of the first two-dimensional storage unit in the first one-dimensional storage unit, and storing the first device identifier and the storage address of the target storage unit in the first two-dimensional storage unit.
[0043] Specifically, the memory space includes not only the first one-dimensional continuous address space, but also a static two-dimensional continuous address space. When the first one-dimensional storage unit stores the first device identifier, it indicates that before the target device identifier is stored, a device identifier (i.e., the first device identifier) has been stored in the first one-dimensional storage unit. At this time, it indicates that the first device identifier and the target device identifier correspond to the same first storage address in the first one-dimensional continuous space. It can be understood that after the first device identifier and the target device identifier are respectively converted into 24-bit binary data, the lower 10 bits corresponding to the first device identifier are the same as the lower 10 bits corresponding to the target device identifier, and the higher 14 bits corresponding to the first device identifier are different from the higher 14 bits corresponding to the target device identifier. Therefore, the first device identifier is taken out from the first one-dimensional storage unit, and a certain empty two-dimensional storage unit in the static two-dimensional continuous address space is randomly determined as a two-dimensional storage unit for storing the first device identifier. For the convenience of description, the two-dimensional storage unit for storing the first device identifier can be referred to as the first two-dimensional storage unit. The next empty two-dimensional storage unit adjacent to the first two-dimensional storage unit is used as a target storage unit for storing the target device identifier. Then, the storage address of the first two-dimensional storage unit is stored in the first one-dimensional storage unit in the first one-dimensional continuous address space, the first device identifier and the storage address of the target storage unit (which can also be understood as the offset address of the target storage unit) are stored in the first two-dimensional storage unit, and the target device identifier is stored in the target storage unit. Since the current target storage unit does not store other device identifiers at the same index (corresponding to the same first storage address), "NULL" (i.e., the offset address) can be stored in the target storage unit.
[0044] In some embodiments, the memory space further includes a static two-dimensional continuous address space. Correspondingly, the method further includes: when the first one-dimensional storage unit stores a second storage address, determining a last two-dimensional storage unit associated with the second storage address from the static two-dimensional continuous address space; wherein the second storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space for storing a first device identifier same as the first storage address; and taking a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
[0045] Specifically, the memory space includes not only the first one-dimensional continuous address space, but also a static two-dimensional continuous address space. When the second storage address is stored in the first one-dimensional storage unit, it indicates that before the target device identifier is stored, at least two other device identifiers want to be stored in the first one-dimensional storage unit, and the at least two other device identifiers and the target device identifier correspond to the same first storage address in the first one-dimensional continuous space. In order to avoid storage conflicts, the at least two other device identifiers have been transferred to the static two-dimensional continuous address space, and the first address of the two-dimensional storage space in the static two-dimensional continuous address space for storing the at least two other device identifiers has been stored in the first one-dimensional storage unit in the first one-dimensional continuous address space. Wherein, the first address here can be understood as the second storage address, that is, the second storage address is the storage address of the two-dimensional storage unit in the static two-dimensional continuous address space for storing the first device identifier corresponding to the same first storage address as the target device identifier. In addition, it should be noted that when the at least two other device identifiers are transferred to the static two-dimensional continuous address space, not only the second storage address is stored in the first one-dimensional storage unit, but also the offset address of the two-dimensional storage unit for storing the next adjacent other device identifier is stored in each two-dimensional storage unit for storing the at least two other device identifiers in the static two-dimensional continuous address space. It can be understood that in the static two-dimensional continuous address space, each two-dimensional storage unit that has stored data stores two types of data, namely device identifiers and offset addresses of storage units for storing device identifiers. Therefore, when the second storage address is stored in the first one-dimensional storage unit, the last two-dimensional storage unit associated with the second storage address can be found from the static two-dimensional continuous address space.
[0046] Specifically, in the static two-dimensional continuous address space, the two-dimensional storage unit A corresponding to the second storage address is found, and the offset address d1 recorded in the two-dimensional storage unit A is determined; in the static two-dimensional continuous address space, the two-dimensional storage unit B corresponding to the offset address d1 is found, and the offset address d2 recorded in the two-dimensional storage unit B is determined; in the static two-dimensional continuous address space, the two-dimensional storage unit C corresponding to the offset address d2 is found, and the offset address d3 recorded in the two-dimensional storage unit C is determined, and so on, until the offset address recorded in a certain two-dimensional storage unit (such as the two-dimensional storage unit G) is NULL, then the two-dimensional storage unit (such as the two-dimensional storage unit G) can be determined as the last two-dimensional storage unit associated with the second storage address in the static two-dimensional continuous address space. For example, Figure 2 A structure diagram of a static two-dimensional continuous address space provided by an embodiment of the present application is shown in FIG. 1. As shown in FIG. 1, the static two-dimensional continuous address space includes a first one-dimensional continuous address space and a static two-dimensional continuous address space. Figure 2As shown, if the second storage address stored in the first one-dimensional storage unit in the first one-dimensional continuous address space is 0x000, then the last two-dimensional storage unit associated with the second storage address 0x000 in the static two-dimensional continuous address space is the two-dimensional storage unit corresponding to the offset address 0x003.
[0047] In the embodiment of the present application, the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address is used as the target storage unit for storing the target device identifier. It should be noted that when the target device identifier is stored in the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address, since the storage address corresponding to the first one-dimensional storage unit represents the lower 10 bits of the 24-bit binary data converted from the target device identifier, the upper 14 bits of the 24-bit binary data converted from the target device identifier can be directly stored in the target storage unit (i.e., the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address). In addition, the offset address recorded in the last two-dimensional storage unit associated with the second storage address is updated from "NULL" to the offset address of the target storage unit, and the offset address recorded in the target storage unit is set to "NULL".
[0048] In some embodiments, before using the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit, the method further includes: determining the number of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space; and using the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit includes: when the number of two-dimensional storage units is less than a preset number threshold, using the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
[0049] In the embodiment of the present application, when the second storage address is stored in the first one-dimensional storage unit, the number of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space is determined. The number of two-dimensional storage units associated with the second storage address can be understood as the number of other device identifiers having the same first storage address as the target device identifier that have been stored in the static two-dimensional continuous address space before the target device identifier is stored. In order to shorten the retrieval efficiency of subsequent device identifiers, when the number of two-dimensional storage units associated with the second storage address is less than a preset number threshold (such as 16), the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address in the static two-dimensional continuous address space can be directly used as the target storage unit.
[0050] In some embodiments, the storage address further comprises a third storage address, and the memory space further comprises a second one-dimensional continuous address space; wherein the first storage address and the third storage address are storage addresses determined based on different address determination manners; accordingly, the method further comprises: when the number of two-dimensional storage units is greater than the preset number threshold, searching for a second one-dimensional storage unit corresponding to the third storage address in the second one-dimensional continuous address space; when the second one-dimensional storage unit does not store a second device identifier, determining the second one-dimensional storage unit as a target storage unit; wherein the second device identifier is a device identifier that has been stored in the second one-dimensional storage unit; after storing the target device identifier in the target storage unit, further comprising: storing the first address of the second one-dimensional continuous address space in the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address.
[0051] For example, the storage address comprises a first storage address and a third storage address. For example, the two storage addresses (the first storage address and the third storage address) corresponding to the target device identifier can be determined based on two different hash algorithms. For another example, the target device identifier can be converted into 24-bit binary data, the low 10 bits of which are converted into hexadecimal data as one storage address (which can be referred to as the first storage address) of the target device identifier, and the middle 10 bits of which are converted into hexadecimal data as another storage address (which can be referred to as the third storage address) of the target device identifier. The memory space not only includes a first one-dimensional continuous address space and a static two-dimensional continuous address space, but also includes a second one-dimensional continuous address space. For example, the size of the second one-dimensional continuous address space can be 1K, which includes 1024 one-dimensional storage units, and each one-dimensional storage unit can have a size of 2 bytes. The following is an example of converting the target device identifier into 24-bit binary data, converting the low 10 bits of which into hexadecimal data as the first storage address of the target device identifier, and converting the middle 10 bits of which into hexadecimal data as the third storage address of the target device identifier.
[0052] In the embodiment of the present application, when the number of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space is greater than the preset number threshold, a one-dimensional storage unit corresponding to the third storage address of the target device identifier is searched in the secondary one-dimensional continuous address space. For the convenience of description, the one-dimensional storage unit searched in the secondary one-dimensional continuous address space is referred to as a second one-dimensional storage unit. The data distribution characteristics of the second one-dimensional storage unit are determined. When the second one-dimensional storage unit does not store the second device identifier, that is, the second one-dimensional storage unit is empty, the second one-dimensional storage unit can be directly used as a target storage unit for storing the target device identifier. The second device identifier is a device identifier already stored in the second one-dimensional storage unit, that is, a certain other device identifier already stored in the second one-dimensional storage unit. It can be understood that before the target device identifier is stored, there is already a device identifier with the same low 10 bits as the target device identifier converted into 24-bit binary data among the other device identifiers already stored in the memory space, but there is no device identifier with the same middle 10 bits as the target device identifier converted into 24-bit binary data. Therefore, the second one-dimensional storage unit is empty, and the target device identifier can be directly stored.
[0053] It should be noted that when the target device identifier is stored based on the second one-dimensional storage unit, since the storage address corresponding to the first one-dimensional storage unit represents the low 10 bits of the target device identifier converted into 24-bit binary data, and the storage address corresponding to the second one-dimensional storage unit represents the middle 10 bits of the target device identifier converted into 24-bit binary data, the high 4 bits of the target device identifier converted into 24-bit binary data can be directly stored in the second one-dimensional storage unit.
[0054] In order to facilitate the retrieval of subsequent device identifiers, after the target device identifier is stored in the target storage unit, the first address of the secondary one-dimensional continuous address space is obtained, and the first address of the secondary one-dimensional continuous address space is stored in the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address. The first address of the secondary one-dimensional continuous address space can be understood as a system address representing which secondary one-dimensional continuous address space.
[0055] In some embodiments, when the second device identifier is stored in the second one-dimensional storage unit, a second two-dimensional storage unit is determined from the static two-dimensional continuous address space, and a next empty two-dimensional storage unit adjacent to the second two-dimensional storage unit is taken as a target storage unit; before storing the target device identifier in the target storage unit, the method further comprises: storing a storage address of the second two-dimensional storage unit in the second one-dimensional storage unit, and storing the second device identifier and the storage address of the target storage unit in the second two-dimensional storage unit.
[0056] When the second device identifier is stored in the second one-dimensional storage unit, it indicates that before the target device identifier is stored, a device identifier (i.e., the second device identifier) has already been stored in the second one-dimensional storage unit. At this time, it indicates that the second device identifier and the target device identifier correspond to the same third storage address in the two-level one-dimensional continuous address space. It can be understood that after the second device identifier and the target device identifier are respectively converted into 24-bit binary data, the middle 10 bits corresponding to the second device identifier are the same as the middle 10 bits corresponding to the target device identifier, and the high 4 bits corresponding to the second device identifier are different from the high 4 bits corresponding to the target device identifier. Therefore, the second device identifier is taken out from the second one-dimensional storage unit, and a certain empty two-dimensional storage unit in the static two-dimensional continuous address space is randomly determined as a two-dimensional storage unit for storing the second device identifier. In order to facilitate description, the two-dimensional storage unit for storing the second device identifier can be referred to as a second two-dimensional storage unit. A next empty two-dimensional storage unit adjacent to the second two-dimensional storage unit is taken as a target storage unit for storing the target device identifier. Then, a storage address of the second two-dimensional storage unit is stored in the second one-dimensional storage unit in the two-level one-dimensional continuous address space, the second device identifier and the storage address of the target storage unit (which can also be understood as an offset address of the target storage unit) are stored in the second two-dimensional storage unit, and the target device identifier is stored in the target storage unit. Since no other device identifier located at the current index (corresponding to the same third storage address) exists in the target storage unit, "NULL" (i.e., an offset address) can be stored in the target storage unit.
[0057] In some embodiments, when the second one-dimensional storage unit stores the fourth storage address, a last two-dimensional storage unit associated with the fourth storage address is determined from the static two-dimensional continuous address space; the fourth storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space for storing a first device identifier identical to the third storage address; and a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address is taken as a target storage unit.
[0058] Specifically, when the fourth storage address is stored in the second one-dimensional storage unit, it indicates that before the target device identifier is stored, at least two other device identifiers want to be stored in the second one-dimensional storage unit, and the at least two other device identifiers and the target device identifier correspond to the same third storage address in the secondary one-dimensional continuous space. In order to avoid storage conflicts, the at least two other device identifiers have been transferred to the static two-dimensional continuous address space, and the first address of the two-dimensional storage space in the static two-dimensional continuous address space for storing the at least two other device identifiers has been stored in the second one-dimensional storage unit in the secondary one-dimensional continuous address space. Here, the first address can be understood as the fourth storage address, that is, the fourth storage address is the storage address of the two-dimensional storage unit in the static two-dimensional continuous address space for storing the second device identifier corresponding to the third storage address same as the target device identifier. In addition, it should be noted that when the at least two other device identifiers are transferred to the static two-dimensional continuous address space, not only the fourth storage address is stored in the second one-dimensional storage unit, but also the offset address of the two-dimensional storage unit for storing the next adjacent other device identifier is stored in each two-dimensional storage unit for storing the at least two other device identifiers in the static two-dimensional continuous address space. It can be understood that in the static two-dimensional continuous address space, each two-dimensional storage unit that has stored data stores two types of data, namely device identifiers and offset addresses of storage units for storing device identifiers. Therefore, when the fourth storage address is stored in the second one-dimensional storage unit, the last two-dimensional storage unit associated with the fourth storage address can be found from the static two-dimensional continuous address space.
[0059] Specifically, in the static two-dimensional continuous address space, the two-dimensional storage unit O corresponding to the fourth storage address is found, and the offset address d4 recorded in the two-dimensional storage unit O is determined; in the static two-dimensional continuous address space, the two-dimensional storage unit P corresponding to the offset address d4 is found, and the offset address d5 recorded in the two-dimensional storage unit P is determined; in the static two-dimensional continuous address space, the two-dimensional storage unit Q corresponding to the offset address d5 is found, and the offset address d6 recorded in the two-dimensional storage unit Q is determined, and so on until the offset address recorded in a certain two-dimensional storage unit (such as the two-dimensional storage unit I) is NULL, then the two-dimensional storage unit (such as the two-dimensional storage unit I) can be determined as the last two-dimensional storage unit associated with the fourth storage address in the static two-dimensional continuous address space. For example, Figure 2As shown, if the fourth storage address stored in the second one-dimensional storage unit in the secondary one-dimensional continuous address space is 0x004, then the last two-dimensional storage unit associated with the fourth storage address 0x004 in the static two-dimensional continuous address space is the two-dimensional storage unit corresponding to the offset address 0x005.
[0060] In the embodiment of the present application, the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address is used as the target storage unit for storing the target device identifier. It should be noted that when the target device identifier is stored in the next empty two-dimensional storage unit based on the last two-dimensional storage unit associated with the fourth storage address, since the storage address corresponding to the first one-dimensional storage unit represents the lower 10 bits of the target device identifier converted into 24-bit binary data, and the storage address corresponding to the second one-dimensional storage unit represents the middle 10 bits of the target device identifier converted into 24-bit binary data, the upper 4 bits of the target device identifier converted into 24-bit binary data can be directly stored in the target storage unit (i.e. the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address). In addition, the offset address recorded in the last two-dimensional storage unit associated with the fourth storage address is updated from "NULL" to the offset address of the target storage unit, and the offset address recorded in the target storage unit is set to "NULL".
[0061] It should be noted that the addressing mode flag is also recorded in each two-dimensional storage unit in the static two-dimensional continuous address space, as shown in Figure 2 As shown, each two-dimensional storage unit in the static two-dimensional continuous address space is a 5-byte continuous space, and the first byte can identify the addressing mode of 2, 3, 4, or 5 bytes. For example, when the addressing mode flag is "0", it indicates that the data in the two-dimensional storage unit needs to be queried in the static two-dimensional continuous address space; when the addressing mode flag is "1", it indicates that the data in the two-dimensional storage unit needs to be queried in the secondary one-dimensional continuous address space. The two-dimensional storage unit with the addressing mode flag being "1" stores the first address of the secondary one-dimensional continuous address space.
[0062] Figure 3 A flowchart of a data storage method provided by another embodiment of the present application is shown in Figure 3 As shown, the method comprises the following steps: step 310, obtaining a target device identifier to be stored.
[0063] Step 320, determining a first storage address and a third storage address corresponding to the target device identifier.
[0064] Step 330, searching for a first one-dimensional storage unit corresponding to the first storage address in a first one-dimensional continuous address space.
[0065] Step 340, when the first one-dimensional storage unit does not store the first device identifier, determining the first one-dimensional storage unit as the target storage unit.
[0066] Step 350, when the first one-dimensional storage unit stores the first device identifier, determining a first two-dimensional storage unit from a static two-dimensional continuous address space, and determining a next empty two-dimensional storage unit adjacent to the first two-dimensional storage unit as the target storage unit.
[0067] Step 360, storing a storage address of the first two-dimensional storage unit in the first one-dimensional storage unit, and storing the first device identifier and a storage address of the target storage unit in the first two-dimensional storage unit.
[0068] Step 370, when the first one-dimensional storage unit stores a second storage address, determining a number of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space.
[0069] Step 380, judging whether the number of two-dimensional storage units is less than a preset number threshold, if yes, executing step 390, otherwise executing step 3110.
[0070] Step 390, determining a last two-dimensional storage unit associated with the second storage address from the static two-dimensional continuous address space; wherein the second storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space, which is used to store a first device identifier same as the first storage address.
[0071] Step 3100, determining a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
[0072] Step 3110, searching for a second one-dimensional storage unit corresponding to a third storage address in a second one-dimensional continuous address space.
[0073] Step 3120, when the second one-dimensional storage unit does not store a second device identifier, determining the second one-dimensional storage unit as the target storage unit; wherein the second device identifier is a device identifier already stored in the second one-dimensional storage unit.
[0074] Step 3130, storing a first address of the second one-dimensional continuous address space in a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address.
[0075] Step 3140, when the second device identifier is stored in the second one-dimensional storage unit, determining the second two-dimensional storage unit from the static two-dimensional continuous address space, and taking the next empty two-dimensional storage unit adjacent to the second two-dimensional storage unit as the target storage unit.
[0076] Step 3150, storing the storage address of the second two-dimensional storage unit in the second one-dimensional storage unit, and storing the second device identifier and the storage address of the target storage unit in the second two-dimensional storage unit.
[0077] Step 3160, when the fourth storage address is stored in the second one-dimensional storage unit, determining the last two-dimensional storage unit associated with the fourth storage address from the static two-dimensional continuous address space; wherein the fourth storage address is the storage address of the two-dimensional storage unit in the static two-dimensional continuous address space for storing the same first device identifier as the third storage address.
[0078] Step 3170, taking the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address as the target storage unit.
[0079] Step 3180, storing the target device identifier in the target storage unit.
[0080] For example, each device identifier can be as shown in the following table:
[0081]
[0082]
[0083]
[0084] Figure 4 The device identifier storage result provided by the embodiment of the present application is shown in the following table: Figure 4
[0085] It should be noted that the first one-dimensional continuous address space and the second one-dimensional continuous address space can further include a data type flag corresponding to each one-dimensional storage unit. When the data type flag is "0", it indicates that the corresponding one-dimensional storage unit stores numerical value type data (i.e. device identifier); when the data type flag is "1", it indicates that the corresponding one-dimensional storage unit stores pointer type data (i.e. storage address corresponding to the device identifier).
[0086] Figure 5 The structure diagram of a data storage device provided by another embodiment of the present application is shown in the following figure: Figure 5 As shown, the apparatus comprises a device identifier acquisition module 510, a storage address determination module 520, a target storage unit determination module 530, and a device identifier storage module 540. Among them,
[0087] The device identifier acquisition module 510 is configured to acquire a target device identifier to be stored.
[0088] The storage address determination module 520 is configured to determine a storage address corresponding to the target device identifier.
[0089] The target storage unit determination module 530 is configured to determine a data distribution feature of a storage unit corresponding to the storage address in a memory space, and determine a target storage unit from the memory space based on the data distribution feature.
[0090] The device identifier storage module 540 is configured to store the target device identifier in the target storage unit.
[0091] The embodiment of the present application provides a data storage apparatus, acquires a target device identifier to be stored, determines a storage address corresponding to the target device identifier, determines a data distribution feature of a storage unit corresponding to the storage address in a memory space, and determines a target storage unit from the memory space based on the data distribution feature, and stores the target device identifier in the target storage unit. The technical scheme provided by the embodiment of the present application determines the storage address of the target device identifier to be stored, can determine a storage unit for storing the target device identifier from the memory space according to the distribution feature of the device identifier of the storage unit corresponding to the storage address in the memory space, stores the target device identifier, can effectively reduce the memory occupied by data storage, and can greatly improve the retrieval efficiency of subsequent data based on the above storage method, so that the memory occupation during data storage and the retrieval efficiency during data retrieval reach a good balance. Optionally, the storage address comprises a first storage address, and the memory space comprises a one-level one-dimensional continuous address space.
[0092] The target storage unit determination module comprises:
[0093] The first one-dimensional storage unit finding unit is configured to find a first one-dimensional storage unit corresponding to the first storage address in the one-level one-dimensional continuous address space.
[0094] The first target storage unit determination unit is configured to determine the first one-dimensional storage unit as the target storage unit when no first device identifier is stored in the first one-dimensional storage unit, wherein the first device identifier is a device identifier that has been stored in the first one-dimensional storage unit.
[0095] Optionally, the memory space further comprises a static two-dimensional continuous address space; correspondingly, the apparatus further comprises:
[0096] a second target storage unit determining unit, configured to determine a first two-dimensional storage unit from the static two-dimensional continuous address space when the first one-dimensional storage unit stores the first device identifier, and determine a next empty two-dimensional storage unit adjacent to the first two-dimensional storage unit as a target storage unit;
[0097] The apparatus further comprises:
[0098] a first storage address storing module, configured to store a storage address of the first two-dimensional storage unit in the first one-dimensional storage unit before storing the target device identifier in the target storage unit, and store the first device identifier and a storage address of the target storage unit in the first two-dimensional storage unit.
[0099] Optionally, the memory space further comprises a static two-dimensional continuous address space; correspondingly, the apparatus further comprises:
[0100] a first two-dimensional storage unit determining unit, configured to determine a last two-dimensional storage unit associated with a second storage address from the static two-dimensional continuous address space when the first one-dimensional storage unit stores the second storage address; wherein the second storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space for storing a first device identifier same as the first storage address;
[0101] a third target storage unit determining unit, configured to determine a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as a target storage unit.
[0102] Optionally, the apparatus further comprises:
[0103] a storage unit quantity determining module, configured to determine a quantity of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space before determining the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
[0104] The third target storage unit determining unit is configured to:
[0105] when the quantity of two-dimensional storage units is less than a preset quantity threshold, determine the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
[0106] Optionally, the storage addresses further include a third storage address, and the memory space further includes a second one-dimensional continuous address space; wherein the first storage address and the third storage address are storage addresses determined based on different address determination manners; correspondingly, the apparatus further includes:
[0107] a second one-dimensional storage unit searching unit, configured to search, when the number of the two-dimensional storage units is greater than the preset number threshold, a second one-dimensional storage unit corresponding to the third storage address in the second one-dimensional continuous address space;
[0108] a fourth target storage unit determining unit, configured to determine the second one-dimensional storage unit as a target storage unit when the second one-dimensional storage unit does not store a second device identifier; wherein the second device identifier is a device identifier that has been stored in the second one-dimensional storage unit;
[0109] The apparatus further includes:
[0110] a first address storing module, configured to store, after storing the target device identifier in the target storage unit, a first address of the second one-dimensional continuous address space in a next empty two-dimensional storage unit of a last two-dimensional storage unit associated with the second storage address.
[0111] Optionally, the apparatus further includes:
[0112] a fifth target storage unit determining unit, configured to determine a second two-dimensional storage unit from the static two-dimensional continuous address space when the second one-dimensional storage unit stores the second device identifier, and determine a next empty two-dimensional storage unit adjacent to the second two-dimensional storage unit as a target storage unit.
[0113] The apparatus further includes:
[0114] a second storage address storing module, configured to store, before storing the target device identifier in the target storage unit, a storage address of the second two-dimensional storage unit in the second one-dimensional storage unit, and store the second device identifier and the storage address of the target storage unit in the second two-dimensional storage unit.
[0115] Optionally, the apparatus further includes:
[0116] The second two-dimensional storage unit determining unit determines a last two-dimensional storage unit associated with the fourth storage address from the static two-dimensional continuous address space when the fourth storage address is stored in the second one-dimensional storage unit, wherein the fourth storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space for storing a first device identifier same as the third storage address.
[0117] The sixth target storage unit determining unit determines a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address as a target storage unit.
[0118] The apparatus can perform the method provided by any of the foregoing embodiments of the present application, and has the corresponding function modules and advantages of performing the foregoing method. Technical details not described in the embodiments of the present application can be referred to the method provided by any of the foregoing embodiments of the present application.
[0119] The embodiments of the present application further provide a storage medium containing computer executable instructions, which, when executed by a computer processor, are used to perform the data storage method provided by the embodiments of the present application.
[0120] Storage medium - any of various types of memory devices or storage devices. The term "storage medium" is intended to include an installation medium, e.g., a CD-ROM, floppy disks, or tape device; computer system memory or random access memory such as DRAM, DDR RAM, SRAM, EDO RAM, Rambus RAM, etc.; or a non-volatile memory such as a magnetic medium (e.g., a hard disk or optical storage); registers, or other similar types of memory elements, etc. The memory medium can also include other types of storage medium and combinations thereof. Moreover, the memory medium can reside in a first computer system's main memory, or in a second different computer system's memory, and the second computer system can provide the first computer system with a program instruction for execution via a storage medium. The term "storage medium" can also be implemented with two or more memory mediums communicating in a network, such as a network storing program instructions for execution by a first computer system. The memory medium can store program instructions executable by one or more processors (e.g., as a computer program).
[0121] Of course, the storage medium containing computer executable instructions provided by the embodiments of the present application is not limited to the data storage operation as described above, but can also perform the related operation in the data storage method provided by any of the embodiments of the present application.
[0122] The embodiment of the present application provides a server, and the server can integrate the data storage device provided by the embodiment of the present application. Figure 6 The embodiment of the present application provides a structural block diagram of a server. The server 600 can include a memory 601, a processor 602, and a computer program stored in the memory 601 and executable by the processor. When the processor executes the computer program, the data storage method is realized.
[0123] The server provided by the embodiment of the present application acquires a target device identifier to be stored, determines a storage address corresponding to the target device identifier, determines a data distribution feature of a storage unit corresponding to the storage address in a memory space, and determines a target storage unit in the memory space based on the data distribution feature. The target device identifier is stored in the target storage unit. The technical solution provided by the embodiment of the present application determines the storage address of the target device identifier to be stored, determines the storage unit for storing the target device identifier in the memory space according to the distribution feature of the device identifier of the storage unit corresponding to the storage address in the memory space, and stores the target device identifier. The data storage method can effectively reduce the memory occupied by data storage, and can greatly improve the retrieval efficiency of subsequent data based on the above storage method, so that the memory occupation during data storage and the retrieval efficiency during data retrieval reach a better balance. The data storage device, the storage medium and the server provided in the above embodiment can execute the data storage method provided by any embodiment of the present application, and have the corresponding function modules and beneficial effects of executing the method. The technical details not described in detail in the above embodiment can refer to the data storage method provided by any embodiment of the present application.
[0124] Note that the above are only the preferred embodiments of the present application and the technical principles applied. Those skilled in the art will understand that the present application is not limited to the specific embodiments described herein, and those skilled in the art can make various obvious changes, readjustments and substitutions without departing from the scope of the present application. Therefore, although the present application has been described in detail through the above embodiments, the present application is not limited to the above embodiments, and can include more other equivalent embodiments without departing from the concept of the present application, and the scope of the present application is determined by the scope of the appended claims.
Claims
1. A data storage method, characterized by, The method comprises: obtaining a target device identifier to be stored; determining a storage address corresponding to the target device identifier; determining a data distribution feature of a storage unit corresponding to the storage address in the memory space, and determining a target storage unit from the memory space based on the data distribution feature; wherein the data distribution feature comprises that the storage unit corresponding to the storage address in the memory space has already stored other device identifiers, or the storage unit corresponding to the storage address in the memory space has already stored other storage addresses, or the storage unit corresponding to the storage address in the memory space is empty; storing the target device identifier in the target storage unit; wherein the storage address comprises a first storage address, and the memory space comprises a one-dimensional continuous address space of a first level; determining a data distribution feature of a storage unit corresponding to the storage address in the memory space, and determining a target storage unit from the memory space based on the data distribution feature, comprises: finding a first one-dimensional storage unit corresponding to the first storage address in the one-dimensional continuous address space of the first level; when the first one-dimensional storage unit does not store a first device identifier, determining the first one-dimensional storage unit as the target storage unit.
2. The method of claim 1, wherein, The memory space further comprises a static two-dimensional continuous address space; accordingly, the method further comprises: when the first one-dimensional storage unit stores the first device identifier, determining a first two-dimensional storage unit from the static two-dimensional continuous address space, and determining a next empty two-dimensional storage unit adjacent to the first two-dimensional storage unit as the target storage unit; before storing the target device identifier in the target storage unit, the method further comprises: storing a storage address of the first two-dimensional storage unit in the first one-dimensional storage unit, and storing the first device identifier and a storage address of the target storage unit in the first two-dimensional storage unit.
3. The method of claim 1, wherein, The memory space further comprises a static two-dimensional continuous address space; accordingly, the method further comprises: when the first one-dimensional storage unit stores a second storage address, determining a last two-dimensional storage unit associated with the second storage address from the static two-dimensional continuous address space; wherein the second storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space, which is used to store a first device identifier identical to the first storage address; determining a next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit.
4. The method of claim 3, wherein, Before determining the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit, the method further comprises: determining a number of two-dimensional storage units associated with the second storage address in the static two-dimensional continuous address space; determining the next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the second storage address as the target storage unit, comprises: When the number of the two-dimensional storage units is less than the preset number threshold, a next empty two-dimensional storage unit of a last two-dimensional storage unit associated with the second storage address is determined as the target storage unit.
5. The method of claim 4, wherein, The storage address further includes a third storage address, and the memory space further includes a second one-dimensional continuous address space; wherein the first storage address and the third storage address are storage addresses determined based on different address determination manners; correspondingly, the method further includes: When the number of the two-dimensional storage units is greater than the preset number threshold, a second one-dimensional storage unit corresponding to the third storage address is searched in the second one-dimensional continuous address space; When the second device identifier is not stored in the second one-dimensional storage unit, the second one-dimensional storage unit is determined as the target storage unit; wherein the second device identifier is a device identifier that has been stored in the second one-dimensional storage unit; After the target device identifier is stored in the target storage unit, the method further includes: A first address of the second one-dimensional continuous address space is stored in a next empty two-dimensional storage unit of a last two-dimensional storage unit associated with the second storage address.
6. The method of claim 5, wherein, The method further includes: When the second device identifier is stored in the second one-dimensional storage unit, a second two-dimensional storage unit is determined from the static two-dimensional continuous address space, and a next empty two-dimensional storage unit adjacent to the second two-dimensional storage unit is determined as the target storage unit; Before the target device identifier is stored in the target storage unit, the method further includes: A storage address of the second two-dimensional storage unit is stored in the second one-dimensional storage unit, and the second device identifier and a storage address of the target storage unit are stored in the second two-dimensional storage unit.
7. The method of claim 5, wherein, The method further includes: When a fourth storage address is stored in the second one-dimensional storage unit, a last two-dimensional storage unit associated with the fourth storage address is determined from the static two-dimensional continuous address space; wherein the fourth storage address is a storage address of a two-dimensional storage unit in the static two-dimensional continuous address space, which is used to store a first device identifier identical to the third storage address; A next empty two-dimensional storage unit of the last two-dimensional storage unit associated with the fourth storage address is determined as the target storage unit.
8. A data storage device, characterized by The method includes: a device identifier acquisition module, configured to acquire a target device identifier to be stored; a storage address determination module, configured to determine a storage address corresponding to the target device identifier; a target storage unit determination module, configured to determine a data distribution characteristic of a storage unit corresponding to the storage address in a memory space, and determine a target storage unit from the memory space based on the data distribution characteristic; wherein the data distribution characteristic includes that the storage unit corresponding to the storage address in the memory space has already stored other device identifiers, or the storage unit corresponding to the storage address in the memory space has already stored other storage addresses, or the storage unit corresponding to the storage address in the memory space is empty. a device identifier storage module, configured to store the target device identifier in the target storage unit; wherein the storage address comprises a first storage address, and the memory space comprises a first one-dimensional continuous address space; the target storage unit determination module comprises: a first one-dimensional storage unit searching unit, configured to search for a first one-dimensional storage unit corresponding to the first storage address in the first one-dimensional continuous address space; a first target storage unit determination unit, configured to determine the first one-dimensional storage unit as the target storage unit when no first device identifier is stored in the first one-dimensional storage unit.
9. A computer readable storage medium having stored thereon a computer program, characterized in that, The program is executed by a processing device to implement the data storage method of any one of claims 1-7.
10. A server comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, wherein the computer program comprises instructions for causing the processor to perform the method of any one of claims 1 to 9. 10 The processor executes the computer program to implement the data storage method of any one of claims 1-7. The processor executes the computer program to implement the data storage method of any one of claims 1-7.
Citation Information
Patent Citations
Fast operating method for mass data based on two-dimensional hash
CN101478608A
Fast parallel circuit and method for address storage and lookup of switch chip
CN112637072A