CN112650441B - Stripe cache allocation method and device, electronic equipment and storage medium - Google Patents

Stripe cache allocation method and device, electronic equipment and storage medium Download PDF

Info

Publication number
CN112650441B
CN112650441B CN201910965240.8A CN201910965240A CN112650441B CN 112650441 B CN112650441 B CN 112650441B CN 201910965240 A CN201910965240 A CN 201910965240A CN 112650441 B CN112650441 B CN 112650441B
Authority
CN
China
Prior art keywords
stripe
cache
allocated
raid
strip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910965240.8A
Other languages
Chinese (zh)
Other versions
CN112650441A (en
Inventor
吴琦
卢政
张斌
严杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910965240.8A priority Critical patent/CN112650441B/en
Publication of CN112650441A publication Critical patent/CN112650441A/en
Application granted granted Critical
Publication of CN112650441B publication Critical patent/CN112650441B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

The embodiment of the application provides a stripe cache allocation method and a device, wherein the method comprises the following steps: when read-write operation is carried out on data to be processed in the RAID to be allocated, determining the target data volume of the data to be processed, wherein the RAID to be allocated is any RAID in the system; determining the quantity to be allocated of the strip caches required by the RAID to be allocated based on the target data quantity and the granularity of each strip cache in a pre-established strip cache pool; and selecting the strip cache with the quantity to be allocated from a pre-established strip cache pool, and allocating the strip cache to the RAID to be allocated. The allocated stripe cache is determined according to the data volume of the data to be processed, so that the corresponding number of the stripe caches are allocated according to the number of the data to be processed in the RAID to be allocated, the waste of stripe cache resources is reduced, and the performance of the RAID is improved.

Description

Stripe cache allocation method and device, electronic equipment and storage medium
Technical Field
The present application relates to the field of data storage technologies, and in particular, to a method and an apparatus for allocating a stripe cache, an electronic device, and a storage medium.
Background
RAID (Redundant Arrays of Independent Disks) is a disk array that manages data storage, where one disk array includes multiple Disks, and different RAID levels, such as RAID0, RAID1, RAID4, RAID5, and RAID6, may be formed due to different combination manners of the Disks in the disk array. In addition, different RAID levels can be combined to construct more RAID levels. For example, RAID5 and RAID0 in combination may construct RAID50.
For RAID4, RAID5, RAID6, and other RAID levels formed by combining at least one of the three RAID levels, striping storage may be performed, that is, data to be stored is divided into a plurality of small blocks of data, and then the plurality of small blocks of data are stored on different disks of the RAID, respectively. Therefore, the effect of load balancing is achieved, parallel processing can be performed in the data storage and data extraction processes, and the data processing efficiency is improved. Whether data processing is performed during data storage or data extraction, the stripe cache allocated for RAID is relied upon. The stripe cache can be regarded as a basic unit for reading, writing, synchronizing, reconstructing, checking, repairing, expanding and the like of the RAID, and the stripe cache affects the performance of the RAID to a certain extent, thereby affecting the data processing capability of the RAID.
Currently, each RAID is allocated with a fixed number of stripe caches during creation, and each RAID can only perform corresponding processing by using the allocated stripe caches. However, in the same system, the RAID may have different needs for the stripe cache in different scenarios, such as different RAID load services, different performance requirements for each RAID, different pressure for each RAID, and a change in RAID load services. For example, for a RAID storing an image, the smaller the image makes the RAID less demanding of stripe caching. For a RAID that stores video, the larger video makes the RAID more demanding on the stripe cache, which results in insufficient performance when insufficient stripe cache is allocated.
Based on different needs of the RAIDs for the stripe cache in different scenes, some RAIDs only need less stripe caches, so that the allocated stripe caches are more surplus, and the waste of stripe cache resources is caused.
Disclosure of Invention
An object of the present invention is to provide a method and an apparatus for allocating a stripe cache, so as to solve the problem of wasting stripe cache resources. The specific technical scheme is as follows:
in a first aspect, an embodiment of the present application provides a stripe cache allocation method, which is applied to a system including multiple redundant arrays of independent disks RAID, where the method includes:
when reading and writing operation is carried out on data to be processed in a RAID to be allocated, determining the target data volume of the data to be processed, wherein the RAID to be allocated is any one RAID in the system;
determining the quantity to be allocated of the strip caches required by the RAID to be allocated based on the target data volume and the granularity of each strip cache in a strip cache pool established in advance;
and selecting the strip cache with the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
Optionally, the stripe cache pool includes stripe caches of multiple granularities;
the determining the to-be-allocated number of the stripe caches required by the to-be-allocated RAID based on the target data amount and the granularity of each stripe cache in the stripe cache pool established in advance includes:
selecting a granularity matched with the target data amount from the multiple granularities as a first granularity based on the size relation between the target data amount and the multiple granularities;
determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data quantity and the first granularity;
the selecting the stripe cache of the quantity to be allocated from the pre-established stripe cache pool, and allocating the stripe cache to the RAID to be allocated comprises:
and selecting the strip cache with the first granularity of the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
Optionally, the method further includes:
determining a remaining data amount when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, wherein the remaining data amount is a difference value between the target data amount and a total data amount of each first-granularity stripe cache in the stripe cache pool;
determining a particle size of the plurality of particle sizes that is smaller than and closest to the first particle size as a second particle size;
calculating a quotient value of the residual data amount and the second granularity to obtain a target amount;
selecting a target number of stripe caches with a second granularity from the stripe cache pool;
and allocating the selected stripe cache with the target number and the second granularity and the stripe cache with the first granularity in the stripe cache pool to the RAID to be allocated.
Optionally, the method further includes:
and after the to-be-processed data is processed by utilizing the allocated stripe cache in the to-be-allocated RAID, releasing the allocated stripe cache in the to-be-allocated RAID to the stripe cache pool.
Optionally, the method further includes:
when the number of the available strip caches in the strip cache pool is smaller than a first preset number, determining to-be-released RAID from the RAID distributed with the strip caches;
and releasing the stripe cache allocated to the RAID to be released into the stripe cache pool after the data processing in the RAID to be released is completed.
Optionally, the determining a RAID to be released from the RAID allocated with the stripe cache includes:
and in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence that the quantity of the distributed strip caches is higher to lower.
Optionally, the method further includes:
when the number of the available stripe caches in the stripe cache pool is smaller than the number to be distributed, acquiring a temporary stripe cache from a memory of the system, and adding the temporary stripe cache into the stripe cache pool, so that the number of the available stripe caches in the stripe cache pool is not smaller than the number to be distributed;
and releasing the temporary strip cache to the memory after the data processing in the RAID distributed with the temporary strip cache is completed.
Optionally, the step of pre-establishing the stripe cache pool includes:
acquiring the number of the stripe caches of each granularity to be created;
and respectively creating a corresponding number of the strip caches with each granularity according to the number of the strip caches with each granularity, wherein each strip cache forms the strip cache pool.
In a second aspect, an embodiment of the present application provides a stripe cache allocation apparatus, which is applied to a system including multiple RAIDs, where the apparatus includes:
the system comprises a first determining module and a second determining module, wherein the first determining module is used for determining the target data volume of data to be processed when the data to be processed is read and written in the RAID to be allocated, and the RAID to be allocated is any RAID in the system;
a second determining module, configured to determine, based on the target data amount and a granularity of each stripe cache in a stripe cache pool established in advance, a to-be-allocated number of the stripe caches required by the to-be-allocated RAID;
and the allocation module is used for selecting the strip cache with the quantity to be allocated from a strip cache pool established in advance and allocating the strip cache to the RAID to be allocated.
Optionally, the stripe cache pool includes stripe caches of multiple granularities;
the second determining module is specifically configured to:
selecting a granularity matched with the target data size from the multiple granularities as a first granularity based on the size relation between the target data size and the multiple granularities;
determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data quantity and the first granularity;
the allocation module is specifically configured to:
and selecting the strip cache with the first granularity of the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
Optionally, the allocation module is further configured to:
determining a remaining data amount when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, wherein the remaining data amount is a difference value between the target data amount and a total data amount of each first-granularity stripe cache in the stripe cache pool;
determining a particle size smaller than and closest to the first particle size among the plurality of particle sizes as a second particle size;
calculating a quotient value of the residual data volume and the second granularity to obtain a target quantity;
selecting a target number of stripe caches with a second granularity from the stripe cache pool;
and allocating the selected stripe cache with the target quantity and the selected stripe cache with the second granularity and the selected stripe cache with the first granularity in the stripe cache pool to the RAID to be allocated.
Optionally, the apparatus further comprises:
the first releasing module is configured to release the allocated stripe cache in the to-be-allocated RAID to the stripe cache pool after the to-be-processed data is processed by using the allocated stripe cache in the to-be-allocated RAID.
Optionally, the apparatus further comprises:
a third determining module, configured to determine, when the number of available stripe caches in the stripe cache pool is smaller than a first preset number, a RAID to be released from the RAID allocated with the stripe cache;
and the second releasing module is used for releasing the stripe cache allocated to the RAID to be released into the stripe cache pool after the data processing in the RAID to be released is finished.
Optionally, the third determining module is specifically configured to:
in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence from high to low of the quantity of the distributed strip caches.
Optionally, the apparatus further comprises:
an adding module, configured to, when the number of available stripe caches in the stripe cache pool is smaller than the number to be allocated, obtain a temporary stripe cache from a memory of the system, and add the temporary stripe cache to the stripe cache pool, so that the number of available stripe caches in the stripe cache pool is not smaller than the number to be allocated;
and a third releasing module, configured to release the temporary stripe cache to the memory after data processing in the RAID allocated with the temporary stripe cache is completed.
Optionally, the apparatus further comprises:
the cache pool establishing module is used for acquiring the number of the stripe caches of all granularities to be established; and respectively creating a corresponding number of the strip caches of all granularities according to the number of the strip caches of all granularities, wherein each strip cache forms the strip cache pool.
In a third aspect, an embodiment of the present application provides an electronic device, including a processor, a communication interface, a memory, and a communication bus, where the processor, the communication interface, and the memory complete mutual communication through the communication bus;
a memory for storing a computer program;
a processor, configured to implement the method for allocating a stripe cache according to any of the first aspect described above when executing a program stored in a memory.
In a fourth aspect, an embodiment of the present application provides a machine-readable storage medium, where a computer program is stored in the machine-readable storage medium, and when the computer program is executed by a processor, the stripe cache allocation method according to any one of the first aspect is implemented.
The stripe cache allocation method, the stripe cache allocation device, the electronic equipment and the storage medium are applied to a system comprising a plurality of RAID, and when read-write operation is performed on data to be processed in the RAID to be allocated, the target data volume of the data to be processed is determined, wherein the RAID to be allocated is any one RAID in the system; determining the quantity to be allocated of the strip caches required by the RAID to be allocated based on the target data quantity and the granularity of each strip cache in a pre-established strip cache pool; and selecting the strip cache with the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed. The stripe cache pool allocates stripe caches to the RAID to be processed, wherein the number of the allocated stripe caches is determined according to the data volume of the data to be processed, and the allocated stripe caches are used for processing the data to be processed in the RAID to be allocated. Therefore, when the data to be processed in the RAID to be allocated needs to be processed, the corresponding number of strip caches are allocated, the waste of strip cache resources is reduced, and the performance of the RAID can be improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a flowchart of a stripe cache allocation method according to an embodiment of the present disclosure;
fig. 2 is a schematic structural diagram of a stripe cache allocation apparatus according to an embodiment of the present disclosure;
fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described clearly and completely with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only some embodiments of the present application, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
In order to solve the problem of waste of stripe cache resources, an embodiment of the present application provides a stripe cache allocation method and an apparatus, where the stripe cache allocation method is applied to a system including multiple RAIDs, and the stripe cache allocation method includes:
when read-write operation is performed on data to be processed in a RAID to be allocated, determining a target data volume of the data to be processed, wherein the RAID to be allocated is any one RAID in the system;
determining the quotient of the target data volume and the granularity of the to-be-allocated stripe cache as the to-be-allocated quantity of the to-be-allocated stripe cache required to be allocated to the to-be-allocated RAID;
and allocating the strip cache of the quantity to be allocated to the RAID to be allocated from a strip cache pool established in advance.
In the technical scheme provided by the embodiment of the application, when read-write operation is performed on data to be processed in the RAID to be allocated, the target data volume of the data to be processed is determined, wherein the RAID to be allocated is any RAID in the system; determining the quantity to be allocated of the strip caches required by the RAID to be allocated based on the target data quantity and the granularity of each strip cache in a pre-established strip cache pool; and selecting the strip cache with the quantity to be allocated from a pre-established strip cache pool, and allocating the strip cache to the RAID to be allocated. According to the technical scheme of the embodiment of the application, the strip cache pool allocates the strip caches to the RAID to be processed, wherein the RAID to be processed needs to process the data, the number of the allocated strip caches is determined according to the data volume of the data to be processed, and the allocated strip caches are used for processing the data to be processed in the RAID to be allocated. Therefore, when the data to be processed in the RAID to be allocated needs to be processed, the corresponding number of stripe caches are allocated, and the waste of stripe cache resources is reduced. Compared with the method that a fixed number of strip caches are distributed for each RAID, the number of the strip caches is determined according to the data volume, the method can be better suitable for certain high-concurrency scenes of the RAID, and the performance of the whole RAID can be improved.
First, a stripe cache allocation method provided in an embodiment of the present application is described below. The stripe cache allocation method provided by the embodiment of the application can be applied to a system comprising a plurality of RAID. The system may be a set of a plurality of servers, or may be a server including a plurality of RAIDs. The method for allocating a stripe cache according to the embodiment of the present application may be implemented by an electronic device, and specifically, the electronic device may be a management node for managing a stripe cache pool in a system including multiple RAIDs, or may be a server.
In addition, the system also comprises a RAID, the RAID in the system can be preset, and the number of the RAIDs in the system can be multiple. The stripe cache pool is used for providing the required stripe cache for the RAID which needs the stripe cache in the system. Generally, when data to be processed in RAID needs to be processed, the RAID needs a stripe cache.
In one embodiment, a stripe cache pool may be created in advance in a system, a storage space may be applied from a memory of the system, and the applied storage space may be used as a stripe cache in the stripe cache pool. In addition, a structure body can be created in the system driver, and the structure body is used for continuously managing the strip cache in the strip cache pool.
As shown in fig. 1, a stripe cache allocation method provided in this embodiment of the present application includes the following steps.
S101, when read-write operation is carried out on data to be processed in the RAID to be distributed, the target data volume of the data to be processed is determined, wherein the RAID to be distributed is any RAID in the system.
The RAID to be allocated may be any one of multiple RAIDs included in the system. Performing read/write operations on data to be processed in the RAID to be allocated may include two cases: in the first case, the data to be processed is stored in the RAID to be distributed; in the second case, the data to be processed is read from the RAID to be allocated.
In an embodiment, when data to be processed needs to be processed in a RAID to be allocated, an application request may be sent, where the application request may be used to apply for a stripe cache for the RAID to be allocated, where the application request may be triggered by a driver of the RAID to be allocated. In addition, the application request may carry a data volume of the to-be-processed data, and after the application request is obtained, the data volume of the to-be-processed data, that is, the target data volume, may be obtained from the application request.
And S102, determining the quantity to be allocated of the strip cache required by the RAID to be allocated based on the target data quantity and the granularity of each strip cache in a strip cache pool established in advance.
The granularity of the stripe cache refers to the capacity of the stripe cache, for example, the granularity of a 4K stripe cache is 4K. The pre-established stripe cache pool comprises a plurality of cache stripes, and the granularity of the stripe cache can be set by self-definition. The quantity to be allocated may be calculated according to the target data quantity and the granularity of the stripe cache, for example, after the target data quantity of the data to be processed is determined, the target data quantity may be divided by the granularity of the stripe cache to be allocated to obtain a quotient value, and the quotient value may be regarded as the quantity to be allocated of the stripe cache to be allocated to the RAID to be allocated. Optionally, the total capacity of the to-be-allocated number of stripe buffers is not less than the target data amount.
For example, if the stripe cache pool includes a stripe cache with a granularity of 4K, the data to be processed needs to be stored in the RAID to be allocated, the data amount of the data to be processed is 64K, and the granularity of the stripe cache allocated to the RAID to be allocated is 4K, a quotient obtained by dividing 64K by 4K is 16, and the number to be allocated is 16, that is, 16 stripe caches with 4K need to be allocated to the RAID to be allocated.
And S103, selecting the strip cache with the quantity to be distributed from a strip cache pool established in advance, and distributing the strip cache to the RAID to be distributed.
After determining the amount to be allocated, the amount of the stripe cache to be allocated may be determined from the stripe cache pool, and the determined stripe cache may be allocated to the RAID to be allocated. The granularity of the stripe cache allocated to the RAID to be allocated is the dividend of the quotient with the data amount. For example, in the above example, if the dividend is 4K, the granularity allocated to the stripe cache to be allocated to RAID is 4K.
In this embodiment of the present application, the stripe cache pool allocates stripe caches to RAIDs to be processed for data to be processed, and the number of the allocated stripe caches is determined according to the data amount of the data to be processed, and the allocated stripe caches are used for processing the data to be processed in the RAID to be allocated. Therefore, if the amount of data to be processed in the RAID to be allocated needs to be processed, the corresponding amount of stripe cache is allocated, the waste of stripe cache resources is reduced, and the performance of the RAID can be improved.
In one possible implementation, the stripe cache pool comprises stripe caches of multiple granularities;
the stripe cache pool comprises stripe caches with various granularities, and the types of the granularity of the stripe caches in the stripe cache pool can be set by self-definition. For example, the stripe cache pool may include 4K stripe cache and 128K stripe cache, and may further include 4K stripe cache, 64K stripe cache and 128K stripe cache.
The determining the to-be-allocated number of the stripe caches required by the to-be-allocated RAID based on the target data amount and the granularity of each stripe cache in the stripe cache pool established in advance includes:
selecting a granularity matched with the target data amount from the multiple granularities as a first granularity based on the size relation between the target data amount and the multiple granularities;
determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data quantity and the first granularity;
the selecting the stripe cache of the number to be allocated from the pre-established stripe cache pool to allocate to the RAID to be allocated includes:
and selecting the strip cache with the first granularity of the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
In the case where the stripe cache pool includes a plurality of granularities, a granularity matching the data amount among the plurality of granularities may be determined as the first granularity based on a size relationship between the data amount and the plurality of granularities. In one implementation, a granularity smaller than and closest to the target data amount among the plurality of granularities may be determined as the first granularity.
For example, the stripe cache pool includes 4K stripe caches and 128K stripe caches, and when the data amount of the data to be processed is 512K, the data amount is smaller than 512K and the granularity closest to 512K is 128K, 128K is determined as the first granularity.
For another example, the stripe cache pool includes a 4K stripe cache, a 32K stripe cache, and a 128K stripe cache, and when the data amount of the data to be processed is 64K, the granularity is smaller than 64K and closest to 64K is 32K, the 32K is determined as the first granularity.
After determining the first granularity, a quotient value of the data amount and the first granularity may be determined as the to-be-allocated amount of the stripe cache required by the to-be-allocated RAID. And selecting the strip caches with the quantity to be allocated from the strip caches with the first granularity in the strip cache pool, and allocating the selected strip caches to the RAID to be allocated.
For example, the stripe cache pool includes 4K stripe caches, 32K stripe caches and 128K stripe caches, and when the first granularity is 32K, the stripe caches of the number to be allocated are selected from the 32K stripe caches, and the selected stripe caches are allocated to the RAID to be allocated.
On the basis of the foregoing embodiment, in an embodiment, after the first granularity and the number to be allocated are determined, when the number of the stripe caches of the first granularity in the stripe cache pool is smaller than the number to be allocated, it indicates that the number of the stripe caches of the first granularity in the current stripe cache is not enough to be allocated to the RAID to be allocated. The second granularity may be determined as a granularity smaller than and closest to the first granularity among the plurality of granularities.
When the total capacity of all the first-granularity stripe caches in the stripe cache pool is smaller than the target data amount, optionally, the method further includes:
step one, when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, determining the residual data amount, wherein the residual data amount is the difference between the target data amount and the total data amount of each first-granularity stripe cache in the stripe cache pool.
And step two, determining the granularity which is smaller than the first granularity and is closest to the first granularity from the plurality of granularities as a second granularity.
And step three, calculating a quotient value of the residual data amount and the second granularity to obtain the target amount.
And step four, selecting the target number of the strip caches with the second granularity from the strip cache pool.
And fifthly, allocating the selected second-granularity stripe cache of the target quantity and each first-granularity stripe cache in the stripe cache pool to the RAID to be allocated.
For example, if the stripe cache pool includes 4K stripe caches, 64K stripe caches, and 128K stripe caches, and if the first granularity is 128K and the number of 128K stripe caches is less than the number to be allocated, the granularity smaller than 128K and closest to 128K is 64K, 64K may be determined as the second granularity.
Wherein the total data amount of the stripe cache of the second granularity is not less than the remaining data amount. If the total data of the stripe cache of the second granularity is still smaller than the residual data quantity, continuously determining the granularity which is smaller than the second granularity and is closest to the second granularity from the multiple granularities, and selecting the stripe cache of the granularity until the total data quantity of the stripe cache is found to be not smaller than the target data quantity.
When the second granularity is determined and the number of the stripe caches of the second granularity is not less than the number to be allocated, the stripe caches of the number to be allocated may be selected from the stripe caches of the second granularity included in the stripe cache pool, and the selected stripe caches may be allocated to the RAID to be allocated.
Through the embodiment, the stripe cache pool can provide stripe caches with various granularities, so that the granularity close to the data quantity can be selected according to the data quantity of the data to be processed, and the times of splitting the data to be processed can be further reduced. For example, the data amount of the to-be-processed data is 512K, and if only 4K stripe caches are included in the stripe cache pool, the to-be-processed data needs to be split 128 times. And when the stripe cache pool comprises 4K and 128K stripe caches, the 128K stripe cache can be selected to be allocated, so that the data to be processed needs to be split 4 times. Therefore, the times of splitting and processing the data to be processed are reduced, and the influence on the RAID performance is further reduced.
In one embodiment, the stripe cache pool may provide stripe caches for a plurality of RAIDs at the same time, and for a RAID allocated with a stripe cache, the allocated stripe cache may be used to process data to be processed. After completing processing of the data to be processed in the RAID to be allocated using the allocated stripe cache, the allocated stripe cache may be released into the stripe cache pool. Optionally, after the to-be-processed data is processed by using the allocated stripe cache in the to-be-allocated RAID, the allocated stripe cache in the to-be-allocated RAID is released to the stripe cache pool.
The stripe cache released to the stripe cache pool can be reallocated to other RAIDs requiring the stripe cache.
After the allocated stripe cache is released to the stripe cache pool, if there is still data to be processed in the RAID to be allocated, the stripe cache needs to be allocated again for the RAID to be allocated from the stripe cache pool.
In one implementation, the stripe cache pool may adopt a data structure of a linked list, and each node on the linked list represents one stripe cache in the stripe cache pool. For each RAID, a linked list data structure is also used.
When the strip cache in the strip cache pool is allocated to the RAID to be allocated, the information in the node corresponding to the strip cache is obtained from the linked list, and the information of the node is given to the strip cache, namely the information is placed on the node of the linked list of the RAID to be allocated. Therefore, when the data to be processed in the RAID to be distributed needs to be processed, the strip cache can be obtained from the linked list.
After the data to be processed in the RAID to be allocated is processed, the information of the node in the linked list of the RAID to be allocated may be put back into the linked list of the stripe cache pool, so that the release of the allocated stripe cache into the stripe cache pool is completed.
In order to ensure that there are always available stripe caches in the stripe cache pool and that there are always a sufficient number of available stripe caches for allocation, and avoid a situation that the number of available stripe caches in the stripe cache pool is not enough for allocation, in one embodiment, when the number of available stripe caches in the stripe cache pool is less than a first preset number, determining a RAID to be released from RAIDs to which the stripe caches have been allocated; and releasing the stripe cache allocated to the RAID to be released into the stripe cache pool after the data processing in the RAID to be released is completed.
The first preset number may be set by a user, and the first preset number is smaller than the total number of the stripe caches in the stripe cache pool.
In the case where multiple granularities of stripe caches are included in the stripe cache pool, the first predetermined number is for each granularity of stripe cache. That is, the number of available stripe caches in each granularity of stripe caches needs to be not less than a first preset number, and if the number of available stripe caches in one granularity of stripe caches is less than the first preset number, the RAID to be released may be determined from the RAID to which the stripe caches of the granularity have been allocated.
In an embodiment, the determining a RAID to be released from the RAIDs allocated with the stripe cache includes: and in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence that the quantity of the distributed strip caches is higher to lower.
The second preset number can be set in a user-defined mode. For example, if the second preset number is 1, it indicates that the RAID with the largest number of allocated stripe caches is determined as the RAID to be released.
For another example, the second predetermined number is 2, and the RAID with allocated stripe cache includes: the method comprises RAID1, RAID2, RAID3 and RAID4, wherein RAID1 is allocated with 128 strip caches, RAID2 is allocated with 4 strip caches, RAID3 is allocated with 64 strip caches, and RAID4 is allocated with 32 strip caches, so that the first two RAIDs with the largest quantity of strip caches are allocated as RAID1 and RAID3, and RAID1 and RAID3 can be determined as to-be-released RAIDs.
By this embodiment, more stripe caches may be released to the stripe cache pool, and thus, the stripe cache pool may also include more available stripe caches.
After determining the RAID to be released, the to-be-released RAID may be processed on the to-be-released RAID using the stripe cache allocated to the RAID to be released, and the stripe cache allocated to the RAID to be released is released to the stripe cache pool after the processing is completed.
The RAID to be released is a RAID that already occupies the stripe cache, and the stripe cache released to the stripe cache pool may be reallocated. In one implementation, the driving degree of the to-be-released RAID may be triggered to process the data to be processed in the to-be-released RAID using the stripe cache allocated to the to-be-released RAID, and release the stripe cache allocated to the to-be-released RAID to the stripe cache pool after the processing is completed.
In one embodiment, the method further comprises: when the number of the available stripe caches in the stripe cache pool is smaller than the number to be allocated, acquiring a temporary stripe cache from a memory of the system, and adding the temporary stripe cache to the stripe cache pool, so that the number of the available stripe caches in the stripe cache pool is not smaller than the number to be allocated; and releasing the temporary strip cache to the memory after the data processing in the RAID distributed with the temporary strip cache is completed. In this way, the number of available stripe caches in the stripe cache pool is increased, and the number of available stripe caches in the stripe cache pool is not less than the number to be allocated.
In an implementation manner, when the stripe cache pool includes stripe caches of multiple granularities and the granularity of the stripe cache to be allocated is determined, when the number of available stripe caches of the granularity in the stripe cache pool is smaller than the number to be allocated, the temporary stripe cache of the granularity may be obtained from the memory of the system, and the temporary stripe cache is added to the stripe cache pool. In this way, the number of available stripe caches of the granularity in the stripe cache pool is not less than the number to be allocated, and the available stripe caches of the granularity can be allocated to the RAID to be allocated.
After the temporary stripe cache is added to the stripe cache pool and allocated to the RAID from the stripe cache pool, the temporary stripe cache may be released to the memory after the data to be processed in the RAID allocated with the temporary stripe cache is processed.
By the embodiment, when the available stripe cache in the stripe cache pool is insufficient, the temporary stripe cache can be applied from the system memory, and the condition that the insufficient available stripe cache is allocated to RAID is avoided. And after the temporary stripe cache is used up, the temporary stripe cache is released back to the memory. In this way, the stripe cache pool may provide stripe caching for the RAID using the temporary stripe cache without continuously occupying the temporary stripe cache.
In one possible embodiment, the step of pre-establishing the stripe cache pool includes:
and step A, acquiring the number of the stripe caches of each granularity to be created.
The number of the stripe caches of each granularity to be created can be input by a user or preset, and can be set according to the scale of the RAID and the application scene.
And step B, respectively establishing a corresponding number of the strip caches of all granularities according to the number of the strip caches of all granularities, wherein all the strip caches form a strip cache pool.
For example, if the number of the 4K stripe caches to be created is 10000, and the number of the 128K stripe caches to be created is 5000, 10000 4K stripe caches are created, and 5000 128K stripe caches are created, where the stripe cache pool is formed by the 10000 4K stripe caches and the 5000 128K stripe caches.
In the technical scheme provided by the embodiment of the application, when read-write operation is performed on data to be processed in the RAID to be allocated, the target data volume of the data to be processed is determined, wherein the RAID to be allocated is any RAID in the system; determining the quotient of the target data volume and the granularity of the to-be-distributed stripe cache as the to-be-distributed number of the stripe cache required to be distributed for the to-be-distributed RAID; and allocating the stripe cache of the quantity to be allocated for the RAID to be allocated from the pre-established stripe cache pool. According to the technical scheme of the embodiment of the application, the strip cache pool allocates the strip caches to the RAID to be processed, the number and the granularity of the allocated strip caches are determined according to the data volume of the data to be processed, and the allocated strip caches are used for processing the data to be processed in the RAID to be allocated. Therefore, when the data to be processed in the RAID to be allocated needs to be processed, the corresponding number of strip caches are allocated, and the waste of strip cache resources is reduced. And the number of the strip caches is determined according to the data volume, so that the method can be better suitable for some high-concurrency scenes of the RAID, and the performance of the whole RAID is improved.
Corresponding to the foregoing stripe cache allocation method embodiment, an embodiment of the present application further provides a stripe cache allocation apparatus, as shown in fig. 2, which is applied to a system including multiple RAIDs, where the stripe cache allocation apparatus includes: a first determination module 210, a second determination module 220, and an assignment module 230.
A first determining module 210, configured to determine a target data volume of data to be processed when performing a read-write operation on the data to be processed in an RAID to be allocated, where the RAID to be allocated is any RAID in the system;
a second determining module 220, configured to determine, based on the target data amount and a granularity of each stripe cache in a pre-established stripe cache pool, a to-be-allocated number of the stripe caches required by the to-be-allocated RAID;
the allocating module 230 is configured to select the number of the stripe caches to be allocated from a pre-established stripe cache pool, and allocate the selected stripe caches to the RAID to be allocated.
In a possible embodiment, the stripe cache pool includes stripe caches with multiple granularities;
the second determining module 220 is specifically configured to:
selecting a granularity matched with the target data quantity from the multiple granularities as a first granularity based on the size relation between the target data quantity and the multiple granularities;
determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data volume and the first granularity;
the distribution module is specifically configured to:
and selecting the strip cache with the first granularity of the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
In a possible implementation, the allocating module 230 is specifically configured to:
determining a remaining data amount when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, wherein the remaining data amount is a difference value between the target data amount and a total data amount of each first-granularity stripe cache in the stripe cache pool;
determining a particle size smaller than the first particle size and closest to the first particle size among the plurality of particle sizes as a second particle size;
calculating a quotient value of the residual data amount and the second granularity to obtain a target amount;
selecting a target number of stripe caches with a second granularity from the stripe cache pool;
and allocating the selected second-granularity stripe cache of the target number and each first-granularity stripe cache in the stripe cache pool to the RAID to be allocated.
In a possible embodiment, the above apparatus further comprises:
a first releasing module, configured to release the allocated stripe cache in the to-be-allocated RAID to the stripe cache pool after the to-be-processed data is processed by using the allocated stripe cache in the to-be-allocated RAID.
In a possible embodiment, the above apparatus further comprises:
a third determining module, configured to determine, when the number of available stripe caches in the stripe cache pool is smaller than a first preset number, a RAID to be released from the RAID allocated with the stripe cache;
and the second releasing module is used for releasing the stripe cache allocated to the to-be-released RAID into the stripe cache pool after the data processing in the to-be-released RAID is finished.
In a possible implementation manner, the third determining module is specifically configured to:
in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence from high to low of the quantity of the distributed strip caches.
In a possible embodiment, the above apparatus further comprises:
an adding module, configured to, when the number of available stripe caches in the stripe cache pool is smaller than the number to be allocated, obtain a temporary stripe cache from a memory of the system, and add the temporary stripe cache to the stripe cache pool, so that the number of available stripe caches in the stripe cache pool is not smaller than the number to be allocated;
and a third releasing module, configured to release the temporary stripe cache to the memory after data processing in the RAID allocated with the temporary stripe cache is completed.
In a possible embodiment, the above apparatus further comprises: the cache pool establishing module is used for acquiring the number of the stripe caches of each granularity to be established; and respectively creating a corresponding number of the strip caches with each granularity according to the number of the strip caches with each granularity, wherein each strip cache forms the strip cache pool.
In the technical solution provided in the embodiment of the present application, when data to be processed needs to be processed in a to-be-allocated RAID, a data amount of the to-be-processed data is determined, a quotient of the data amount and a granularity of a stripe cache to be allocated is determined as a request amount for applying for the stripe cache, and the stripe cache of the request amount is allocated to the to-be-allocated RAID from a stripe cache pool. According to the technical scheme of the embodiment of the application, the strip cache pool allocates the strip caches to the RAID to be processed, the number and the granularity of the allocated strip caches are determined according to the data volume of the data to be processed, and the allocated strip caches are used for processing the data to be processed in the RAID to be allocated. Therefore, when the data to be processed in the RAID to be allocated needs to be processed, the corresponding number of stripe caches are allocated, and the waste of stripe cache resources is reduced. Compared with the method that a fixed number of strip caches are distributed for each RAID, the number of the strip caches is determined according to the data volume, the method can be better suitable for certain high-concurrency scenes of the RAID, and the performance of the whole RAID can be improved.
Corresponding to the foregoing stripe cache allocation method embodiment, an embodiment of the present application further provides an electronic device, as shown in fig. 3, including a processor 310, a communication interface 320, a memory 330, and a communication bus 340, where the processor 310, the communication interface 320, and the memory 330 complete communication with each other through the communication bus 340;
a memory 330 for storing a computer program;
the processor 310, when executing the program stored in the memory 330, implements the following steps:
when data to be processed is read and written in a RAID to be allocated, determining the target data volume of the data to be processed, wherein the RAID to be allocated is any RAID in the system;
determining the quantity to be allocated of the strip caches required by the RAID to be allocated based on the target data quantity and the granularity of each strip cache in a pre-established strip cache pool;
and selecting the strip cache with the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed.
In the technical scheme provided by the embodiment of the application, when read-write operation is performed on data to be processed in the RAID to be allocated, the target data volume of the data to be processed is determined, wherein the RAID to be allocated is any RAID in the system; determining the quotient of the target data volume and the granularity of the to-be-allocated stripe cache as the to-be-allocated quantity of the to-be-allocated stripe cache required to be allocated for the to-be-allocated RAID; allocating the strip cache with the quantity to be allocated for the RAID to be allocated from a pre-established strip cache pool. According to the technical scheme of the embodiment of the application, the strip cache pool allocates strip caches to the RAID to be processed, wherein the data to be processed needs to be processed, the number of the allocated strip caches is determined according to the data volume of the data to be processed, and the allocated strip caches are used for processing the data to be processed in the RAID to be allocated. Therefore, when the data to be processed in the RAID to be allocated needs to be processed, the corresponding number of stripe caches are allocated, and the waste of stripe cache resources is reduced. Compared with the method that a fixed number of strip caches are distributed for each RAID, the number of the strip caches is determined according to the data volume, the method can be better suitable for certain high-concurrency scenes of the RAID, and the performance of the whole RAID can be improved.
Optionally, the processor 310, when configured to execute the program stored in the memory 330, may also implement any of the stripe cache allocation methods described above.
The communication bus mentioned in the electronic device may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The communication bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown, but this is not intended to represent only one bus or type of bus.
The communication interface is used for communication between the electronic equipment and other equipment.
The Memory may include a Random Access Memory (RAM) or a Non-Volatile Memory (NVM), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the processor.
The Processor may be a general-purpose Processor, including a Central Processing Unit (CPU), a Network Processor (NP), and the like; but also Digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components.
Corresponding to the foregoing stripe cache allocation method embodiment, an embodiment of the present application further provides a machine-readable storage medium, where a computer program is stored in the machine-readable storage medium, and when the computer program is executed by a processor, the computer program implements any of the foregoing stripe cache allocation methods.
It should be noted that, in this document, relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrases "comprising one of 8230; \8230;" 8230; "does not exclude the presence of additional like elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on differences from other embodiments. In particular, as for the apparatus embodiment, since it is substantially similar to the method embodiment, the description is relatively simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only for the preferred embodiment of the present application, and is not intended to limit the scope of the present application. Any modification, equivalent replacement, improvement and the like made within the spirit and principle of the present application are included in the scope of protection of the present application.

Claims (14)

1. A stripe cache allocation method is applied to a system comprising a plurality of Redundant Array of Independent Disks (RAID), and the method comprises the following steps:
when reading and writing operation is carried out on data to be processed in a RAID to be allocated, determining the target data volume of the data to be processed, wherein the RAID to be allocated is any one RAID in the system; the strip cache pool comprises strip caches with various granularities;
selecting a granularity matched with the target data amount from the multiple granularities as a first granularity based on the size relation between the target data amount and the multiple granularities;
determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data quantity and the first granularity;
selecting the strip cache with the first granularity of the quantity to be distributed from a pre-established strip cache pool, and distributing the strip cache to the RAID to be distributed;
determining a remaining data amount when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, wherein the remaining data amount is a difference value between the target data amount and a total data amount of each first-granularity stripe cache in the stripe cache pool;
determining a particle size of the plurality of particle sizes that is smaller than and closest to the first particle size as a second particle size;
calculating a quotient value of the residual data volume and the second granularity to obtain a target quantity;
selecting a target number of stripe caches with second granularity from the stripe cache pool;
and allocating the selected stripe cache with the target quantity and the selected stripe cache with the second granularity and the selected stripe cache with the first granularity in the stripe cache pool to the RAID to be allocated.
2. The method of claim 1, further comprising:
and after the to-be-processed data is processed by utilizing the allocated stripe cache in the to-be-allocated RAID, releasing the allocated stripe cache in the to-be-allocated RAID to the stripe cache pool.
3. The method of claim 1, further comprising:
when the number of the available strip caches in the strip cache pool is smaller than a first preset number, determining to-be-released RAID from the RAID distributed with the strip caches;
and releasing the stripe cache allocated to the RAID to be released into the stripe cache pool after the data processing in the RAID to be released is completed.
4. The method of claim 3, wherein determining the to-be-released RAID from the RAID allocated with the stripe cache comprises:
in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence from high to low of the quantity of the distributed strip caches.
5. The method of claim 1, further comprising:
when the number of the available stripe caches in the stripe cache pool is smaller than the number to be allocated, acquiring a temporary stripe cache from a memory of the system, and adding the temporary stripe cache to the stripe cache pool, so that the number of the available stripe caches in the stripe cache pool is not smaller than the number to be allocated;
and releasing the temporary strip cache to the memory after the data processing in the RAID distributed with the temporary strip cache is completed.
6. The method of claim 1, wherein the step of pre-establishing a stripe cache pool comprises:
acquiring the number of the stripe caches of each granularity to be created;
and respectively creating a corresponding number of the strip caches of all granularities according to the number of the strip caches of all granularities, wherein each strip cache forms the strip cache pool.
7. A stripe cache allocation device applied to a system comprising a plurality of RAID (redundant array of independent disks), the device comprising:
the system comprises a first determining module and a second determining module, wherein the first determining module is used for determining the target data volume of data to be processed when the data to be processed is read and written in the RAID to be allocated, and the RAID to be allocated is any one RAID in the system; the strip cache pool comprises strip caches with various granularities;
a second determining module, configured to select, as the first granularity, a granularity that matches the target data amount from the multiple granularities based on a size relationship between the target data amount and the multiple granularities; determining the quantity to be allocated of the stripe cache required by the RAID to be allocated based on the target data quantity and the first granularity;
the allocation module is used for selecting the strip cache with the first granularity of the quantity to be allocated from a pre-established strip cache pool and allocating the strip cache with the first granularity to the RAID to be allocated;
the allocation module is further configured to:
determining a remaining data amount when the number of the first-granularity stripe caches in the stripe cache pool is smaller than the number to be allocated, wherein the remaining data amount is a difference value between the target data amount and a total data amount of each first-granularity stripe cache in the stripe cache pool;
determining a particle size of the plurality of particle sizes that is smaller than and closest to the first particle size as a second particle size;
calculating a quotient value of the residual data amount and the second granularity to obtain a target amount;
selecting a target number of stripe caches with second granularity from the stripe cache pool;
and allocating the selected stripe cache with the target quantity and the selected stripe cache with the second granularity and the selected stripe cache with the first granularity in the stripe cache pool to the RAID to be allocated.
8. The apparatus of claim 7, further comprising:
the first releasing module is configured to release the allocated stripe cache in the to-be-allocated RAID to the stripe cache pool after the to-be-processed data is processed by using the allocated stripe cache in the to-be-allocated RAID.
9. The apparatus of claim 7, further comprising:
a third determining module, configured to determine, when the number of available stripe caches in the stripe cache pool is smaller than a first preset number, a RAID to be released from the RAID allocated with the stripe cache;
and the second releasing module is used for releasing the stripe cache allocated to the RAID to be released into the stripe cache pool after the data processing in the RAID to be released is finished.
10. The apparatus of claim 9, wherein the third determining module is specifically configured to:
in the RAID distributed with the strip cache, selecting a second preset number of RAIDs as the RAIDs to be released according to the sequence from high to low of the quantity of the distributed strip caches.
11. The apparatus of claim 7, further comprising:
an adding module, configured to, when the number of available stripe caches in the stripe cache pool is smaller than the number to be allocated, obtain a temporary stripe cache from a memory of the system, and add the temporary stripe cache to the stripe cache pool, so that the number of available stripe caches in the stripe cache pool is not smaller than the number to be allocated;
and a third releasing module, configured to release the temporary stripe cache to the memory after data processing in the RAID allocated with the temporary stripe cache is completed.
12. The apparatus of claim 7, further comprising:
the cache pool establishing module is used for acquiring the number of the stripe caches of each granularity to be established; and respectively creating a corresponding number of the strip caches with each granularity according to the number of the strip caches with each granularity, wherein each strip cache forms the strip cache pool.
13. An electronic device is characterized by comprising a processor, a communication interface, a memory and a communication bus, wherein the processor and the communication interface are used for realizing mutual communication by the memory through the communication bus;
a memory for storing a computer program;
a processor for implementing the method steps of any one of claims 1 to 6 when executing a program stored in a memory.
14. A machine readable storage medium, characterized in that a computer program is stored in the machine readable storage medium, which computer program, when being executed by a processor, carries out the method steps of any one of claims 1 to 6.
CN201910965240.8A 2019-10-11 2019-10-11 Stripe cache allocation method and device, electronic equipment and storage medium Active CN112650441B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910965240.8A CN112650441B (en) 2019-10-11 2019-10-11 Stripe cache allocation method and device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910965240.8A CN112650441B (en) 2019-10-11 2019-10-11 Stripe cache allocation method and device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN112650441A CN112650441A (en) 2021-04-13
CN112650441B true CN112650441B (en) 2022-11-04

Family

ID=75343526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910965240.8A Active CN112650441B (en) 2019-10-11 2019-10-11 Stripe cache allocation method and device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN112650441B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327272A (en) * 2021-12-28 2022-04-12 深圳大普微电子科技有限公司 Data processing method, solid state disk controller and solid state disk

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526886B (en) * 2009-04-27 2011-09-07 杭州华三通信技术有限公司 Data operating method of redundant arrays of independent disk and device
US9021229B2 (en) * 2010-04-14 2015-04-28 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
CN108628541B (en) * 2017-03-22 2020-07-07 华为技术有限公司 File storage method, device and storage system
CN109213420A (en) * 2017-06-29 2019-01-15 杭州海康威视数字技术股份有限公司 Date storage method, apparatus and system

Also Published As

Publication number Publication date
CN112650441A (en) 2021-04-13

Similar Documents

Publication Publication Date Title
US10223010B2 (en) Dynamic storage device provisioning
CN102650931B (en) Method and system for writing data
US11010079B2 (en) Concept for storing file system metadata within solid-stage storage devices
CN102185929A (en) Storage area network (SAN)-resource-based video monitoring data storage method and device
CN109358809B (en) RAID data storage system and method
CN110688256B (en) Metadata power-on recovery method and device, electronic equipment and storage medium
WO2017050064A1 (en) Memory management method and device for shared memory database
US11385828B2 (en) Method and apparatus for calculating storage system available capacity
JP2019531559A (en) System and method for allocating input / output bandwidth within a storage system
CN110851427A (en) Database capacity changing method and device
CN107544863B (en) Data storage method and device
CN112650441B (en) Stripe cache allocation method and device, electronic equipment and storage medium
WO2019072250A1 (en) Document management method, document management system, electronic device and storage medium
CN113434470B (en) Data distribution method and device and electronic equipment
US11385814B2 (en) Method and device for allocating resource of hard disk in distributed storage system
CN109739688B (en) Snapshot resource space management method and device and electronic equipment
CN115599313B (en) Disk array capacity expansion method, system, storage medium and equipment
US11226738B2 (en) Electronic device and data compression method thereof
CN105183375A (en) Control method and apparatus for service quality of hot spot data
CN111475277A (en) Resource allocation method, system, equipment and machine readable storage medium
CN108228079B (en) Storage management method and device
CN112269665A (en) Memory processing method and device, electronic equipment and storage medium
CN116540949B (en) Dynamic allocation method and device for storage space of redundant array of independent disks
CN109542671A (en) Verify data creation method and solid state hard disk
US11016685B2 (en) Method and defragmentation module for defragmenting resources

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant