WO2022048358A1 - Procédé et dispositif de traitement de données et support d'enregistrement - Google Patents

Procédé et dispositif de traitement de données et support d'enregistrement Download PDF

Info

Publication number
WO2022048358A1
WO2022048358A1 PCT/CN2021/109268 CN2021109268W WO2022048358A1 WO 2022048358 A1 WO2022048358 A1 WO 2022048358A1 CN 2021109268 W CN2021109268 W CN 2021109268W WO 2022048358 A1 WO2022048358 A1 WO 2022048358A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
thread
blocks
write
tasks
Prior art date
Application number
PCT/CN2021/109268
Other languages
English (en)
Chinese (zh)
Inventor
冯世伟
Original Assignee
深圳壹账通智能科技有限公司
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 深圳壹账通智能科技有限公司 filed Critical 深圳壹账通智能科技有限公司
Publication of WO2022048358A1 publication Critical patent/WO2022048358A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Definitions

  • the present application relates to the field of blockchain technology, and in particular, to a data processing method, device and storage medium.
  • Blockchain is a new application mode of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
  • MVCC Multi-Version Concurrency Control
  • Embodiments of the present application provide a data processing method, device, and storage medium, which are beneficial to improving the verification efficiency of MVCC.
  • a first aspect of the embodiments of the present application provides a data processing method, applied to a server, including:
  • the first information instruction is used to instruct the first thread to read the data set corresponding to the Mth block from the read set database, then execute the execution through the first queue to
  • the data sets corresponding to the N blocks before the M-th block generate N first tasks, wherein the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the process executes the process to the second thread.
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to separate the data sets corresponding to the P blocks Write to the write set cache, and generate P write events; synchronize the P write events to the second queue, and generate P third tasks, where P is a positive integer less than or equal to N ;
  • the current task of the third thread is to obtain Q third tasks in the second queue through the write set database, execute a third information instruction to send to the third thread, and the third information instruction is used for Instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when the execution of any third task in the Q third tasks is completed, then execute and update the current BolckID is the BlockID corresponding to the block of any one of the third tasks, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks. Three tasks correspond to a block.
  • a second aspect of an embodiment of the present application provides a data processing apparatus, which is applied to a server, and the apparatus includes: a first sending unit, a second sending unit, and a third sending unit, wherein,
  • the first sending unit is used to send a first information instruction to the first thread, and the first information instruction is used to instruct the first thread if the data corresponding to the Mth block is read from the read set database set, then execute the first queue to generate N first tasks with the data sets corresponding to the N blocks before the Mth block, wherein, the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the second sending unit is used when determining that the current task of the second thread is to obtain the P first tasks generated by the first queue from the data sets corresponding to the P blocks before the N blocks. , then execute sending a second information instruction to the second thread, where the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to perform the MVCC verification on the P blocks;
  • the data sets corresponding to the P blocks are written into the write set cache respectively, and P write events are generated; the P write events are synchronized to the second queue, and P third tasks are generated, wherein, P is a positive integer less than or equal to N;
  • the third sending unit is configured to execute a sending third information instruction to the third thread if it is determined that the current task of the third thread is to obtain Q third tasks in the second queue through the write set database , the third information instruction is used to instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when the execution of any third task in the Q third tasks is completed , then perform updating the current BolckID to be the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to P blocks before Q blocks of , each third task corresponds to a block.
  • a third aspect of the embodiments of the present application provides a server, the server includes a processor, a communication interface, a memory, and one or more programs, the processor, the communication interface, and the memory are connected to each other, wherein the memory is used for A computer program is stored, the computer program includes program instructions, the processor is configured to invoke the program instructions to perform the following method:
  • the first information instruction is used to instruct the first thread to read the data set corresponding to the Mth block from the read set database, then execute the execution through the first queue to
  • the data sets corresponding to the N blocks before the M-th block generate N first tasks, wherein the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the process executes the process to the second thread.
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to separate the data sets corresponding to the P blocks Write to the write set cache, and generate P write events; synchronize the P write events to the second queue, and generate P third tasks, where P is a positive integer less than or equal to N ;
  • the current task of the third thread is to obtain Q third tasks in the second queue through the write set database, execute a third information instruction to send to the third thread, and the third information instruction is used for Instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when the execution of any third task in the Q third tasks is completed, then execute and update the current BolckID is the BlockID corresponding to the block of any one of the third tasks, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks. Three tasks correspond to a block.
  • a fourth aspect of the embodiments of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program for electronic data exchange, wherein the computer program causes a computer to execute the following method:
  • the first information instruction is used to instruct the first thread to read the data set corresponding to the Mth block from the read set database, then execute the execution through the first queue to
  • the data sets corresponding to the N blocks before the M-th block generate N first tasks, wherein the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the process executes the process to the second thread.
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to separate the data sets corresponding to the P blocks Write to the write set cache, and generate P write events; synchronize the P write events to the second queue, and generate P third tasks, where P is a positive integer less than or equal to N ;
  • the current task of the third thread is to obtain Q third tasks in the second queue through the write set database, execute a third information instruction to send to the third thread, and the third information instruction is used for Instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when the execution of any third task in the Q third tasks is completed, then execute and update the current BolckID is the BlockID corresponding to the block of any one of the third tasks, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks. Three tasks correspond to a block.
  • the reading and writing of the database can be separated into a read-set database and a write-set database respectively, and the concept of cache is introduced; further, when each thread is running, it can access different intervals correspondingly, which realizes Multi-threaded database access is beneficial to reduce the access pressure of the database; at the same time, during MVCC verification, the above cache can be directly accessed without frequent access to the database, which is conducive to improving the verification efficiency of MVCC; in addition, the above operations only involve CPU operations, It is beneficial to improve the performance of the blockchain.
  • FIG. 1A provides a schematic diagram of a system architecture for data processing according to an embodiment of the present application
  • FIG. 1B provides a schematic flowchart of a data processing method according to an embodiment of the present application
  • FIG. 2 provides a schematic flowchart of a data processing method according to an embodiment of the present application
  • FIG. 3 provides a schematic flowchart of a data processing method according to an embodiment of the present application
  • FIG. 4 provides a schematic structural diagram of a server according to an embodiment of the present application.
  • FIG. 5 provides a schematic structural diagram of a data processing apparatus according to an embodiment of the present application.
  • This application may relate to the field of artificial intelligence technology, and may be applied to data processing scenarios based on blockchain.
  • medical data can be stored in the blockchain.
  • the medical data can include personal health records, prescriptions, inspection reports and other data, and then the blockchain can be stored in the blockchain. processing of medical data.
  • the server mentioned in the embodiments of this application may be an independent server, or may provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, Content Delivery Network (CDN), and cloud servers for basic cloud computing services such as big data and artificial intelligence platforms.
  • the server may include, but is not limited to, a background server, a component server, a cloud server, a data processing system server, or a data processing software server, etc.
  • the above are only examples, not exhaustive, including but not limited to the above devices.
  • FIG. 1A is a schematic diagram of a system architecture for data processing provided by an embodiment of the present application.
  • the embodiments of the present application are applied to a server in which a blockchain network can be deployed.
  • the blockchain is a new application mode of computer technologies such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
  • Blockchain essentially a decentralized database, is a series of data blocks associated with cryptographic methods. Each data block contains a batch of network transaction information to verify its Validity of information (anti-counterfeiting) and generation of the next block.
  • the blockchain can include the underlying platform of the blockchain, the platform product service layer, and the application service layer.
  • the FiMax blockchain platform is a blockchain network composed of S3C as the basic framework.
  • the S3C is composed of blockchain solution modules, districts A framework system composed of blockchain kernel module, blockchain privacy protection module and blockchain network management module.
  • the above system architecture may include: a read set database, a write set database, a first queue, a second queue, a write set cache, and a multi-version concurrency control (Multi-Version Concurrency Control, MVCC) module.
  • MVCC Multi-Version Concurrency Control
  • the above-mentioned MVCC module is used for version verification of transaction information in the block
  • the above-mentioned block can be the basic unit structure in the blockchain network, and each block is composed of a block header and a block body; wherein, the block header storage structure
  • the block body is generally a tree structure, which is used to record the transaction information of the block; and the above-mentioned MVCC module is mainly used to verify whether the corresponding data version in the above-mentioned transaction information is correct. If the current transaction uses the read set version If it is not equal to the read set version in the current database, the transaction is considered outdated and marked as an erroneous transaction.
  • the read and write parts in the database can be separated, and the database can be accessed through multiple threads (two or more threads), and the write set data in the database can be stored in the write set cache.
  • the above data processing method may correspond to 3 threads, the above-mentioned read set database is used to complete the task of the first thread, the above-mentioned MVCC module is used to complete the task of the second thread, and the above-mentioned write set database is used to complete the task of the third thread.
  • the above three threads can be performed at the same time, and the data in multiple blocks can be processed synchronously. In this way, the relevant operations of the above read set and write set can be understood as IO operations.
  • the above-mentioned MVCC After the above-mentioned database is separated from reading and writing, the above-mentioned MVCC The verification can be done by the CPU, and the above operations are performed synchronously by dividing into 3 threads, thereby realizing the separation of IO operations and CPU operations, which is beneficial to improve the performance of the blockchain network.
  • FIG. 1B is a schematic flowchart of a data processing method provided by an embodiment of the present application, applied to a server, and the above method includes the following steps:
  • the queue generates N first tasks from data sets corresponding to N blocks before the Mth block, where N is a positive integer less than or equal to M, and M is a positive integer.
  • the above-mentioned read set database may correspond to the read set database in the system architecture diagram as shown in FIG. 1A ; the database used for storing the corresponding information in the block may be divided into a read set database and a write set database, so as to have It is beneficial for subsequent different threads to access at different time periods, so as to relieve frequent access to the same database and reduce the access pressure of the database.
  • the first information instruction may be set by the user or the system defaults, which is not limited here; the first information instruction is used to instruct the first thread to read the data set corresponding to the block from the read set database.
  • the above-mentioned M-th block can be any block for which the above-mentioned first thread needs to perform MVCC verification on the block within a certain period of time, and the corresponding M-th block can be read from the read set database.
  • Data set which can include at least one of the following: BlockID, data version number, data key-value pair and reference count corresponding to the BlockID, etc., which are not limited here, and the above-mentioned data version number can be the corresponding block. Database version number.
  • each block in the blockchain network since the blocks in the blockchain network are arranged in a chain, each block can be numbered, and each BolckID can correspond to a block.
  • the BolckID can be arranged from small to large. The smaller the BolckID, the more Priority processing by the above-mentioned first thread.
  • the BlockID may be M, and the BlockID is used to identify the block.
  • the second thread and the third thread can process data in parallel, and the first thread, the second thread and the third thread can be combined into a data processing flow, and the may be different, but the processing steps may be the same.
  • the corresponding BlockIDs are: 1, 2, 3, 4, 5, 6, and 7; in the first time period, if the first thread In processing block 6 and block 7, at this time, the second thread can synchronize or process block 3, block 4 and block 5 in parallel; while the third thread can synchronize or process block 1 and block 2 in parallel;
  • the block can be placed in the first queue, the first queue can be used to store the block, and the first queue can provide the necessary data for executing the task.
  • Functions such as return of results, retry of tasks, etc.; for example, when the first queue receives the block sent by the first thread, it can return a result message to the subsequent thread, that is, the second thread, to inform the second thread
  • the thread block stores information such as completion, so that the second thread can implement subsequent functions. For example, MVCC verification can be performed on the block.
  • the first task can be generated. Each block may correspond to a first task.
  • the first queue stores N blocks before the Mth block at this time, and the N blocks are the first block. After a thread is processed, it is sent to the first queue to obtain, and N is an integer less than or equal to M.
  • the second thread sends a second information instruction, and the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to verify the data corresponding to the P blocks Sets are written into the write set cache respectively, and P write events are generated; and the P write events are synchronized to the second queue, and P third tasks are generated, where P is less than or equal to N positive integer.
  • the above-mentioned multi-version concurrency control (Multi-Version Concurrency Control, MVCC) verification is a method of concurrency control, which is used to verify whether the data version of the transaction data included in the above-mentioned block is correct; Whether the read set is consistent with the version in the current database ledger (that is, there is no change), if there is no change, it means that the modification of the data in the transaction write set is valid, mark the transaction as valid, and the write set of the transaction is updated to the specific database (such as writing set database).
  • MVCC Multi-Version Concurrency Control
  • the above-mentioned second information instruction can be set by the user or the system defaults, which is not limited here; after the server detects the preset trigger condition, the server can send the above-mentioned second information instruction to the second thread, and the second information instruction is used for Instruct the second thread to implement MVCC verification on the block, the above-mentioned preset trigger conditions can be set by the user or the system defaults, which is not limited here; for example, when the current task of the second thread is to obtain the first task generated by the first queue, Alternatively, when the first thread receives the first information instruction, the second thread may also be triggered to start running at the same time to implement the corresponding function.
  • the second thread can directly obtain the block from the first queue to perform MVCC verification on the block, and after the verification is completed, write it into the write set cache.
  • the write set cache can be set by the user or The system defaults and is not limited here; the write set cache can be used to store information such as the data set corresponding to the block.
  • the verification result can be generated, and the verification result can be written into the write set in the database to record the verification results for the block.
  • the second queue can be set by the user or the system defaults, which is not limited here; the structure of the second queue and the first queue can be the same, and the second queue can be used to store blocks verified by the second thread , and can provide blocks to the write set cache.
  • the second queue can generate its corresponding third task for the block, and the third task is used to notify the write set database that the previous thread processing is completed, so as to notify the write set database of the completion of the previous thread processing.
  • the write set database provides information such as data sets corresponding to blocks to help the write set database update the data sets and other information corresponding to the above blocks.
  • the MVCC module shown in Figure 1A can be used to realize the above-mentioned MVCC verification of P blocks.
  • Each block can be packaged with at least one transaction, and each transaction corresponds to transaction information.
  • the minimum unit Can be transaction information.
  • the following step may be further included: before writing the block A to the write set cache, if there is a block B The data set is associated with the data set of the block A, then the reference count in the data set of the block B in the write set cache is increased by 1 through the block A, wherein the block B Any block in the write set cache is written before the block A.
  • the previously processed block can have an impact on the currently processed block. ; For example, if a transaction information in the current block is being verified by MVCC, it may be necessary to use the transaction information in other previously processed blocks as reference data to verify the transaction status of the target block (for example: balance information, consumption information, etc.); in this way, when MVCC verification is performed, other blocks associated with this block may affect the process of its MVCC verification; therefore, before performing MVCC verification, the current The block is associated with multiple previous blocks to be judged.
  • the judgment of data association can be realized by the reference count in the data set, and the reference count is used to judge whether there is a block with associated data with its corresponding block in the write set cache.
  • the second thread if the second thread processes the current processing block, the second thread performs MVCC verification or the reference count corresponding to any block in the block processed by the third thread is not 0, it indicates that the block is If there is an association between the datasets corresponding to the blocks currently being processed, during MVCC verification, the datasets in the associated blocks can be directly called to help the blocks currently being processed realize MVCC verification.
  • the above-mentioned block A is any one of the P blocks, if after the above-mentioned MVCC verification process is performed on the block A, before the block A is written into the write set cache, if it is found that there is a block B of the block B
  • the data set is associated with the data set of the block A, then the block A can increase the reference count of the block B by 1, which means that there is a data association between the block A and the block B, and at the same time,
  • the block A can know that there is a correlation between the block B and its own data set through the reference count of the block B; wherein, the block B can be a block
  • the block B can be a block
  • the block before A in the embodiments of the present application, only two of the blocks are used as examples for description.
  • performing MVCC verification on the above-mentioned P blocks may include the following steps: based on the data set corresponding to each block, determine the data version number corresponding to each transaction information in each block, and use the data The version number is compared with the preset data version number, if the same, it is determined that the MVCC verification for the block is successful, otherwise, it is determined that the MVCC verification for the block fails; the block can be any of the above P blocks One.
  • the preset data version number may be set by the user or the system defaults, which is not limited herein.
  • the preset version number can be set by the background staff, for example, it can be 100 or 200, etc. If the MVCC verification of a transaction is successful, it means that the transaction is valid, and the block corresponding to the transaction can be stored in the In the local chain, the result data corresponding to the successful verification can be generated by the second queue to generate a third task for informing the write set database that the verification is successful, and is stored and updated in the write set database.
  • the following step may be further included: determining that when the block A accesses the corresponding data set from the read set database, the read set The data version number of the database is the first version number; according to the first version number, if the block E associated with the block A is determined, then the reference count of the block E is incremented by 1; Block A performs the MVCC verification; when the MVCC verification of the block A is completed, the reference count of the block E is decremented by 1.
  • the association between the above-mentioned blocks can be established based on the database version number, the blocks with data association can be placed in the same database in advance, or the database version number can be written into multiple data associations. in the block.
  • the first version number may be the data version number corresponding to the read set database corresponding to block A, and the corresponding associated block E may be determined according to the data version number.
  • the association between the above-mentioned blocks can be established based on the database version number. For example, when the block 100 whose BlockID is 100 accesses data from the database, at this time, the version number of the database is 60; then, The block 100 may be associated with the block 61 corresponding to the database version number 61 . In subsequent steps, the reference count of block 61 can be set to +1, and the reference count of block 61 can be set to -1 only after block 100 completes the above-mentioned MVCC verification. At this time, block 100 and block 100 are also released The association between the blocks 61, that is, there is no association between the block 100 and the block 61.
  • the current BolckID is the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks, and each A third task corresponds to a block.
  • the block corresponding to the current BolckID is the BlockID corresponding to the block currently being processed by the third thread.
  • the third thread can synchronously process the Q blocks before the BlockID corresponding to the P blocks, and the Q blocks are processed before the above-mentioned P blocks.
  • the second thread processes the completed batch of blocks.
  • the above third information instruction can be set by the user or the system defaults, which is not limited here; when the write set database acquires the Q third tasks in the above second queue, the server can be triggered to send the above third information to the third thread instruction.
  • each time the third thread processes a block it can update the current BlockID in the write set cache to the BlockID corresponding to the currently processed block, so as to identify the currently processed block number and inform other threads of the current processing
  • the block is conducive to ensuring the cooperation of the entire thread.
  • the current BlockID in the write-set cache can be updated.
  • the data set includes: a reference count
  • the above-mentioned method may further include the following steps: if the reference count corresponding to the block A is not 0, executing the determination that the data set with the block exists and the all There is an association between the data sets of the block A, wherein the block A is any one of the P blocks; if the reference count corresponding to the block A is 0, it is determined that no block exists. There is an association between the data set of the block A and the data set of the block A, then after updating the current BlockID to the BlockID of the block A, the data set corresponding to the block A is cached from the write set deleted in.
  • the above-mentioned data set may include at least one of the following: BlockID, version number, data key-value pair and reference count corresponding to the BlockID, etc., which are not limited here;
  • the block number to be processed, the above version number can be the database version number.
  • the reference count of the block A can be monitored. If the count is 0, it means that after the second thread MVCC verification, there may be data associations between other blocks and their data sets, and the block A can be retained; otherwise, if the reference count corresponding to the block A is 0, it means that there is no relationship between the block and the data set of block A, and because, in general, each block may contain thousands of transactions, the memory space required may be Therefore, in order to save the memory space of the cache, after updating the current BlockID to the BlockID of the block A, the data set corresponding to the block A can be deleted from the write set cache.
  • the method may further include the following step: if a cache reclamation mechanism is triggered when the task of the first thread, the second thread or the third thread is executed, executing the determination of the number of existing buffers in the write set cache. block and multiple reference counts corresponding to the multiple blocks, each block corresponds to one reference count; if there is a BlockID corresponding to block C that is smaller than the current BolckID, and the reference count corresponding to block C is 0 , the block C is deleted from the write set cache, wherein the block C is any one of the multiple blocks.
  • a cache recycling mechanism can also be set in the above server.
  • the cache recycling mechanism can be set by the system by default or by the user, which is not limited here; when any thread triggers the cache recycling mechanism, Then, all the blocks in the write set cache and the reference count corresponding to each block can be determined, and the data set corresponding to the block stored in the write set cache can be processed through the reference count.
  • BlockID corresponding to the above block C is smaller than the current BlockID, it means that the block C has completed the processing of the above three threads. If the reference count of the block C is 0, it indicates that there is no connection with the For the block associated with the data set of block C, the block C can be deleted from the above write set cache, so as to save the memory space of the write set cache and improve the efficiency of subsequent data acquisition from the write set cache.
  • the following step may be further included: if the data set of the block C is associated with the data set corresponding to the block D, after deleting the block C, execute the block D to be deleted.
  • the corresponding reference count is decremented by 1, and the block C and the block D are any two blocks in the write set cache.
  • the addition and subtraction of the above reference counts are actually block-to-block operations. For example, if block C finds that there is a relationship between the data set of block D and block C during MVCC verification, the block C can make the reference count corresponding to block D +1. In this way, in the subsequent process, the block C can obtain the reference count corresponding to other blocks. If it is not 0, there is an association with it. There is no association, and the reference counts of other blocks acquired by each block are relative to the block; for another example, if the reference count of a block is 5, there may be 5 blocks associated with it.
  • the reference count of the block C is 0, but the block D is associated with the data set of the block C, that is, the block C finds that the block D is related to the data between them, However, at this time, when block C is performing MVCC authentication, the data set corresponding to block D has already been used, and after the block C is deleted, the reference count corresponding to block D can be decremented by 1.
  • the data processing method described in the embodiment of the present application is applied to the server, and can send the first information instruction to the first thread, and the first information instruction is used to instruct the first thread if the The data set corresponding to the Mth block is executed to generate N first tasks from the data set corresponding to the N blocks before the Mth block through the first queue, where N is a positive integer less than or equal to M , M is a positive integer; if it is determined that the current task of the second thread is to obtain the P first tasks generated by the data sets corresponding to the P blocks before the N blocks through the first queue, then execute the task to the second thread.
  • Send a second information instruction and the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to write the data sets corresponding to the P blocks into the write set cache respectively, and generate P write events; and synchronize the P write events to the second queue to generate P third tasks, where P is a positive integer less than or equal to N; if it is determined that the current task of the third thread is to write
  • the set database acquires the Q third tasks in the second queue, it executes the sending third information instruction to the third thread.
  • the current BolckID is executed to update the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P,
  • the Q third tasks correspond to the Q blocks preceding the P blocks, and each third task corresponds to a block.
  • the reading and writing of the database can be separated into a read-set database and a write-set database, and the concept of caching is introduced; further, when each thread is running, it can access different intervals correspondingly, realizing a multi-threaded database.
  • FIG. 2 is an exemplary flowchart of a data processing method disclosed in an embodiment of the present application, applied to a server, wherein, as shown in the figure, a read set as shown in FIG. 1A may be included.
  • Database write set cache, first queue, second queue, MVCC module and write set database.
  • block 66 which is processed in the read database is processed, is the same, the write cache is processing the block 57, block 58, 90, 60, and 61, respectively, block 57, block 58, region Blocks 59, 60, and 61; the first queue is processing blocks 63, 64, and 65 with BolckIDs 63, 64, and 65, respectively; the second queue is processing BolckIDs 59, respectively , 61 and 61 blocks 59, 60 and 61; the MVCC module is processing block 62 with BolckID 62; the write set database is processing block 58 with BolckID 58.
  • the above-mentioned first thread can read the data set corresponding to block 66 from the read set database, and then execute the first queue to generate three first data sets corresponding to block 63, block 64, and block 65 through the first queue.
  • the second thread can perform MVCC verification on block 62; at this time, the data sets corresponding to block 57, block 58, block 59, block 60 and block 61 are being written in the write set cache.
  • the second queue can be placed with blocks 59, 60 and 61 that have been verified by the MVCC module; at this time, If the execution of the third task corresponding to block 58 is completed, the data set corresponding to block 58 can be written into the write set database.
  • the block processed last is block 57, and the current BolckID is updated. (57) is the BolckID of block 58, which is 58.
  • the read and write of the database is separated into a read set database and a write set database, and the concept of cache is introduced; further, when each thread is running, each thread can access different intervals correspondingly, which can realize multi-threading It is beneficial to reduce the access pressure of the database; at the same time, when MVCC verification is performed, the above cache can be directly accessed to obtain the data set corresponding to the block, without frequent access to the database, which is conducive to improving the verification efficiency of MVCC; The operation only involves CPU operations, which is beneficial to improve the performance of the blockchain.
  • FIG. 3 is an exemplary flowchart of a data processing method disclosed in an embodiment of the present application, applied to a server, and the data processing method may include the following steps:
  • the queue generates N first tasks with data sets corresponding to N blocks before the Mth block.
  • the second thread sends a second information instruction, and the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to verify the data corresponding to the P blocks Sets are written into the write set cache respectively, and P write events are generated; and the P write events are synchronized to the second queue, and P third tasks are generated, where P is less than or equal to N positive integer.
  • the current BolckID is the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks, and each A third task corresponds to a block.
  • the cache recycling mechanism is triggered when the task of the first thread, the second thread or the third thread is executed, execute and determine the multiple blocks and the multiple blocks that exist in the write set cache. Multiple reference counts corresponding to a block, and each block corresponds to a reference count.
  • BlockID corresponding to block C is smaller than the current BolckID, and the reference count corresponding to block C is 0, then delete the block C from the write set cache, wherein the block C is any one of the plurality of blocks.
  • the reference count corresponding to the block D is decremented by 1, and the block C and the block D are any two blocks in the write set cache.
  • the data processing method described in the embodiment of the present application is applied to the server, and can send the first information instruction to the first thread, and the first information instruction is used to instruct the first thread to read the first information from the read set database.
  • the first queue is executed to generate N first tasks with the data sets corresponding to the N blocks before the Mth block, where N is a positive integer less than or equal to M, M is a positive integer; if it is determined that the current task of the second thread is to obtain P first tasks generated from the data sets corresponding to the P blocks before N blocks through the first queue, then execute sending to the second thread.
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to write the data sets corresponding to the P blocks into the write set cache respectively, and generate P and synchronize P write events to the second queue to generate P third tasks, where P is a positive integer less than or equal to N; if it is determined that the current task of the third thread is through the write set
  • the database acquires the Q third tasks in the second queue, it executes the sending third information instruction to the third thread, and the third information instruction is used to instruct the third thread to execute the Q third tasks, and obtain the Current BlockID; when the execution of any third task in the Q third tasks is completed, the current BolckID is executed to update the BlockID corresponding to the block of any third task, where Q is a positive integer less than or equal to P, and Q
  • the third tasks correspond to the Q blocks before the P blocks, and each third task corresponds to a block; if the cache recycling mechanism is triggered when the tasks of the first thread, the second thread or the third thread
  • the reading and writing of the database can be separated into a read-set database and a write-set database, and the concept of caching is introduced; further, when each thread is running, it can access different intervals correspondingly, realizing a multi-threaded database.
  • FIG. 4 is a schematic structural diagram of a server provided by an embodiment of the present application. As shown in FIG. 4, it includes a processor, a communication interface, a memory, and one or more programs.
  • a processor, a communication interface and a memory are interconnected, wherein the memory is used to store a computer program, the computer program includes program instructions, the processor is configured to invoke the program instructions, the one or more programs instructions to perform the following steps:
  • the first information instruction is used to instruct the first thread to read the data set corresponding to the Mth block from the read set database, then execute the execution through the first queue to
  • the data sets corresponding to the N blocks before the M-th block generate N first tasks, wherein the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the process executes the process to the second thread.
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to separate the data sets corresponding to the P blocks Write to the write set cache, and generate P write events; synchronize the P write events to the second queue, and generate P third tasks, where P is a positive integer less than or equal to N ;
  • the current task of the third thread is to obtain Q third tasks in the second queue through the write set database, execute a third information instruction to send to the third thread, and the third information instruction is used for Instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when the execution of any third task in the Q third tasks is completed, then execute and update the current BolckID is the BlockID corresponding to the block of any one of the third tasks, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to the Q blocks before the P blocks. Three tasks correspond to a block.
  • the server described in the embodiment of the present application can send the first information instruction to the first thread, and the first information instruction is used to instruct the first thread to read the Mth block corresponding to the read set database.
  • the data set then execute the first queue to generate N first tasks with the data set corresponding to the N blocks before the Mth block, wherein, N is a positive integer less than or equal to M, and M is a positive integer;
  • the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to write the data sets corresponding to the P blocks into the write set cache respectively, and generate P write events; Synchronize P write events to the second queue, and generate P third tasks, where P is a positive integer less than or equal to N; if it is determined that the current task of the third thread
  • the reading and writing of the database can be separated into a read-set database and a write-set database, and the concept of caching is introduced; further, when each thread is running, it can access different intervals correspondingly, realizing a multi-threaded database.
  • Access which is conducive to reducing the access pressure of the database; at the same time, when MVCC verification is performed, the above cache can be directly accessed without frequent access to the database, which is conducive to improving the verification efficiency of MVCC; in addition, the above operations only involve CPU operations, which is conducive to improving the area The performance of the blockchain.
  • the data set includes: a reference count
  • the program is used to perform instructions for the following steps:
  • the reference count corresponding to the block A is 0, it is determined that there is no relationship between the data set of the block and the data set of the block A, and the current BlockID is updated to the block A. After the BlockID is specified, the data set corresponding to the block A is deleted from the write set cache.
  • the program is used to execute the instructions of the following steps:
  • the write set Before writing the block A into the write set cache, if there is a data set of the block B associated with the data set of the block A, the write set is cached through the block A The reference count in the data set of the block B is incremented by 1, wherein the block B is any block written into the write set cache before the block A.
  • the program is used to execute instructions for the following steps:
  • each block corresponds to a reference count
  • BlockID corresponding to the block C is smaller than the current BolckID, and the reference count corresponding to the block C is 0, the block C is deleted from the write set cache, wherein the block C is the Any one of multiple blocks.
  • the program is also used to execute instructions for the following steps:
  • the reference count corresponding to the block D is decremented by 1, and the block C and the The block D is any two blocks in the write set cache.
  • the data set further includes: a data version number, and in the aspect of performing the MVCC verification on the P blocks, the program is used to execute the instructions of the following steps:
  • the server includes corresponding hardware structures and/or software modules for executing each function.
  • the present application can be implemented in hardware or in the form of a combination of hardware and computer software, in combination with the units and algorithm steps of each example described in the embodiments provided herein. Whether a function is performed by hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
  • the server may be divided into functional units according to the foregoing method examples.
  • each functional unit may be divided corresponding to each function, or two or more functions may be integrated into one processing unit.
  • the above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units. It should be noted that the division of units in the embodiments of the present application is schematic, and is only a logical function division, and other division methods may be used in actual implementation.
  • FIG. 5 is a schematic structural diagram of a data processing apparatus disclosed in an embodiment of the present application, applied to a server, and the apparatus includes: a first sending unit 501, a second sending unit 502, and a third sending unit 501. sending unit 503, wherein,
  • the first sending unit 501 is configured to send a first information instruction to the first thread, where the first information instruction is used to instruct the first thread to read the Mth block corresponding to the first thread from the read set database. data set, then execute the first queue to generate N first tasks with the data sets corresponding to the N blocks before the Mth block, wherein the N is a positive integer less than or equal to M, and the M is a positive integer;
  • the second sending unit 502 is configured to, if it is determined that the current task of the second thread is to obtain the P first tasks generated by the first queue from the data sets corresponding to the P blocks before the N blocks is executed, the second information instruction is sent to the second thread, and the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to
  • the data sets corresponding to the P blocks are respectively written into the write set cache, and P write events are generated; and the P write events are synchronized to the second queue, and P third tasks are generated, wherein , P is a positive integer less than or equal to N;
  • the third sending unit 503 is configured to execute sending third information to the third thread if it is determined that the current task of the third thread is to obtain Q third tasks in the second queue through the write set database instruction, the third information instruction is used to instruct the third thread to execute the Q third tasks, and obtain the current BlockID in the write set cache; when any third task in the Q third tasks executes When completed, then execute and update the current BolckID to be the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P, and the Q third tasks correspond to P blocks For the previous Q blocks, each third task corresponds to a block.
  • the data processing apparatus described in the embodiment of the present application is applied to the server, and can send the first information instruction to the first thread.
  • the data set corresponding to the Mth block is executed to generate N first tasks from the data set corresponding to the N blocks before the Mth block through the first queue, where N is a positive integer less than or equal to M , M is a positive integer; if it is determined that the current task of the second thread is to obtain the P first tasks generated by the data sets corresponding to the P blocks before the N blocks through the first queue, then execute the task to the second thread.
  • Send a second information instruction and the second information instruction is used to instruct the second thread to perform MVCC verification on the P blocks; and instruct the second thread to write the data sets corresponding to the P blocks into the write set cache respectively, and generate P write events; and synchronize the P write events to the second queue to generate P third tasks, where P is a positive integer less than or equal to N; if it is determined that the current task of the third thread is to write
  • the set database acquires the Q third tasks in the second queue, it executes the sending third information instruction to the third thread.
  • the current BolckID is executed to update the BlockID corresponding to the block of any third task, wherein Q is a positive integer less than or equal to P,
  • the Q third tasks correspond to the Q blocks preceding the P blocks, and each third task corresponds to a block.
  • the reading and writing of the database can be separated into a read-set database and a write-set database, and the concept of caching is introduced; further, when each thread is running, it can access different intervals correspondingly, realizing a multi-threaded database.
  • the data set further includes: a data version number
  • the second sending unit 502 is specifically configured to: determine the block A When accessing the corresponding data set from the read set database, the data version number of the read set database is the first version number; according to the first version number, the block E associated with the block A is determined , then add 1 to the reference count of the block E; perform the MVCC verification on the block A; when the block A is performing the MVCC verification and complete, then determine to execute the reference to the block E Decrement the count by 1.
  • Embodiments of the present application further provide a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program for electronic data exchange, and the computer program enables a computer to execute any data as described in the foregoing method embodiments Some or all of the steps of a processing method.
  • the computer program may include program instructions, which, when executed by the processor, cause the processor to execute part or all of the steps of the above method, which will not be repeated here.
  • the storage medium involved in this application such as a computer-readable storage medium, may be non-volatile or volatile.
  • the embodiments of the present application further provide a computer program product
  • the computer program product includes a non-transitory computer-readable storage medium storing a computer program
  • the computer program is operable to cause a computer to execute the methods described in the foregoing method embodiments. Some or all of the steps of any data processing method.
  • the computer program product may be a software installation package.
  • the disclosed apparatus may be implemented in other manners.
  • the apparatus embodiments described above are only illustrative, for example, the division of the units is only a logical function division, and there may be other division methods in actual implementation, for example, multiple units or components may be combined or Integration into another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical or other forms.
  • the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware, and can also be implemented in the form of software program modules.
  • the integrated unit if implemented in the form of a software program module and sold or used as a stand-alone product, may be stored in a computer readable memory.
  • the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art, or all or part of the technical solution, and the computer software product is stored in a memory.
  • a computer device which may be a personal computer, a server, or a network device, etc.
  • the aforementioned memory includes: U disk, read-only memory (ROM), random access memory (random access memory, RAM), mobile hard disk, magnetic disk or optical disk and other media that can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

La présente demande se rapporte au domaine technique de l'intelligence artificielle et à la technologie des chaînes de blocs; plus particulièrement, elle se rapporte à un procédé et à un dispositif de traitement de données, ainsi qu'à un support d'enregistrement. Le procédé et le dispositif sont appliqués à un serveur. Le procédé comprend les étapes suivantes : la lecture et l'écriture d'une base de données sont divisées respectivement en une base de données d'ensemble de lecture et une base de données d'ensemble d'écriture et un concept d'une mémoire cache est introduit; ainsi, lorsque chaque fil est en cours d'exécution, un accès peut, de manière correspondante, se faire à différents intervalles, ce qui permet de réaliser un accès multifil à la base de données et d'aider à réduire la pression d'accès à la base de données; pendant ce temps, lors de la réalisation d'une vérification de protocole de contrôle de concurrence multi-version (MVCC), l'accès à la mémoire cache peut se faire directement sans accès fréquent à la base de données, ce qui aide à améliorer l'efficience de vérification du MVCC; en outre, les opérations décrites ci-dessus se rapportent uniquement à l'exploitation de CPU, ce qui permet d'améliorer les performances de la chaîne de blocs.
PCT/CN2021/109268 2020-09-03 2021-07-29 Procédé et dispositif de traitement de données et support d'enregistrement WO2022048358A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010913919.5A CN111984421B (zh) 2020-09-03 2020-09-03 数据处理方法、装置及存储介质
CN202010913919.5 2020-09-03

Publications (1)

Publication Number Publication Date
WO2022048358A1 true WO2022048358A1 (fr) 2022-03-10

Family

ID=73447432

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/109268 WO2022048358A1 (fr) 2020-09-03 2021-07-29 Procédé et dispositif de traitement de données et support d'enregistrement

Country Status (2)

Country Link
CN (1) CN111984421B (fr)
WO (1) WO2022048358A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984421B (zh) * 2020-09-03 2022-09-16 深圳壹账通智能科技有限公司 数据处理方法、装置及存储介质
CN113505000B (zh) * 2021-09-08 2021-12-21 广东卓启云链科技有限公司 区块链中的多线程处理方法、装置、系统和存储介质
CN114297109B (zh) * 2021-12-28 2024-05-24 中汽创智科技有限公司 一种基于订阅发布模式的数据处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190288850A1 (en) * 2016-08-12 2019-09-19 ALTR Solutions, Inc. Decentralized database optimizations
CN111241061A (zh) * 2020-01-09 2020-06-05 平安科技(深圳)有限公司 状态数据库的写入方法、数据处理装置及存储介质
CN111414389A (zh) * 2020-03-19 2020-07-14 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质
CN111984421A (zh) * 2020-09-03 2020-11-24 深圳壹账通智能科技有限公司 数据处理方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017173099A1 (fr) * 2016-03-30 2017-10-05 Ping Identity Corporation Procédés et appareil pour évaluer un risque d'authentification et mettre en œuvre une signature unique (sso) à l'aide d'une base de données de consensus distribuée
CN106598549B (zh) * 2016-12-08 2019-02-01 天津米游科技有限公司 一种基于区块链的智能合约系统及实现方法
WO2020014512A1 (fr) * 2018-07-11 2020-01-16 Americorp Investments Llc Système d'exploitation de chaîne de blocs
CN109271258B (zh) * 2018-08-28 2020-11-17 百度在线网络技术(北京)有限公司 读写锁重入的实现方法、装置、终端及存储介质
CN109471734A (zh) * 2018-10-27 2019-03-15 哈尔滨工业大学(威海) 一种新型缓存优化多线程确定性方法
CN109493223B (zh) * 2018-11-07 2021-12-21 联动优势科技有限公司 一种记账方法及装置
CN109933632B (zh) * 2019-04-04 2021-04-27 杭州数梦工场科技有限公司 一种数据库的数据迁移方法、装置及设备
CN110245006B (zh) * 2019-05-07 2023-05-02 深圳壹账通智能科技有限公司 区块链事务的处理方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190288850A1 (en) * 2016-08-12 2019-09-19 ALTR Solutions, Inc. Decentralized database optimizations
CN111241061A (zh) * 2020-01-09 2020-06-05 平安科技(深圳)有限公司 状态数据库的写入方法、数据处理装置及存储介质
CN111414389A (zh) * 2020-03-19 2020-07-14 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质
CN111984421A (zh) * 2020-09-03 2020-11-24 深圳壹账通智能科技有限公司 数据处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN111984421A (zh) 2020-11-24
CN111984421B (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
WO2022048358A1 (fr) Procédé et dispositif de traitement de données et support d'enregistrement
US20200241613A1 (en) Persistent reservations for virtual disk using multiple targets
US10375167B2 (en) Low latency RDMA-based distributed storage
US11422907B2 (en) Disconnected operation for systems utilizing cloud storage
EP2877942B1 (fr) Nouvel essai de transaction automatique après un échec de session
US7783601B2 (en) Replicating and sharing data between heterogeneous data systems
US9990225B2 (en) Relaxing transaction serializability with statement-based data replication
WO2017066110A1 (fr) Gestionnaire de valeur de clé d'arbre équilibré à base rdma auto-dirigé et distribué
WO2020181810A1 (fr) Procédé et appareil de traitement de données appliqués à une mise en cache multi-niveau dans une grappe
US10970311B2 (en) Scalable snapshot isolation on non-transactional NoSQL
US9589153B2 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
US11226876B2 (en) Non-blocking backup in a log replay node for tertiary initialization
US20150277966A1 (en) Transaction system
US10031948B1 (en) Idempotence service
US20240134758A1 (en) Smart coalescing in data management systems
US10025680B2 (en) High throughput, high reliability data processing system
US11561957B2 (en) In-place garbage collection for state machine replication
US11886439B1 (en) Asynchronous change data capture for direct external transmission
US11438415B2 (en) Managing hash tables in a storage system
US11593030B2 (en) Cross-stream transactions in a streaming data storage system
US12007857B2 (en) Non-blocking backup in a log replay node for tertiary initialization
US11947568B1 (en) Working set ratio estimations of data items in a sliding time window for dynamically allocating computing resources for the data items
US11874796B1 (en) Efficient garbage collection in optimistic multi-writer database systems
US11243930B2 (en) System and method for scalable and space efficient hardening of a fixed sized hash table over an unreliable tier
EP3391223B1 (fr) Systeme de traitement d'information a haut debit et haute fiabilite

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21863426

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 30/06/2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21863426

Country of ref document: EP

Kind code of ref document: A1