US11200109B2 - Method, device and computer program product for processing data - Google Patents

Method, device and computer program product for processing data Download PDF

Info

Publication number
US11200109B2
US11200109B2 US16/884,226 US202016884226A US11200109B2 US 11200109 B2 US11200109 B2 US 11200109B2 US 202016884226 A US202016884226 A US 202016884226A US 11200109 B2 US11200109 B2 US 11200109B2
Authority
US
United States
Prior art keywords
data
compressed
file
data block
analyzed
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
US16/884,226
Other versions
US20210117258A1 (en
Inventor
Haohan ZHANG
Dezheng Zhang
Liangliang Liu
Lei Shi
Wangyuan Li
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Assigned to EMC IP Holding Company LLC reassignment EMC IP Holding Company LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIU, Liangliang, ZHANG, DEZHENG, SHI, LEI, ZHANG, Haohan, LI, WANGYUAN
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH SECURITY AGREEMENT Assignors: DELL PRODUCTS L.P., EMC IP Holding Company LLC
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DELL PRODUCTS L.P., EMC IP Holding Company LLC
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DELL PRODUCTS L.P., EMC IP Holding Company LLC
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DELL PRODUCTS L.P., EMC IP Holding Company LLC
Publication of US20210117258A1 publication Critical patent/US20210117258A1/en
Assigned to EMC IP Holding Company LLC, DELL PRODUCTS L.P. reassignment EMC IP Holding Company LLC RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Assignors: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Publication of US11200109B2 publication Critical patent/US11200109B2/en
Application granted granted Critical
Assigned to EMC IP Holding Company LLC, DELL PRODUCTS L.P. reassignment EMC IP Holding Company LLC RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Assigned to EMC IP Holding Company LLC, DELL PRODUCTS L.P. reassignment EMC IP Holding Company LLC RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Assigned to DELL PRODUCTS L.P., EMC IP Holding Company LLC reassignment DELL PRODUCTS L.P. RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks

Definitions

  • Embodiments of the present disclosure relate to the field of computers, and specifically to a method, device and computer program product for processing data.
  • a running operating system does not always operate stably.
  • the content of a memory needs to be saved to form a data file, such as a dump file.
  • This data file is then used to analyze the cause of the failure so that the failure in the system can be reduced to better run the operating system.
  • the memory data in the storage system needs to be saved to analyze the failure of the operating system.
  • the computing device is configured with more powerful CPU cores and more memory. At this time, more and more memory data needs to be managed. Therefore, if the operating system fails, it will result in a larger data file for the storage system. For ease of processing, these data files are usually compressed into a compressed file. However, there are still many issues that need to be addressed when analyzing the failure of the operating system.
  • Embodiments of the present disclosure provide a method, device and computer program product for processing data.
  • a method of processing data includes in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request including a position of the to-be-analyzed data block in the data file.
  • the method further includes determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block.
  • the method further includes sending the compressed data block to the failure analysis device for analyzing the failure.
  • a method for analyzing a failure includes: determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file.
  • the method further includes sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request including a position of the to-be-analyzed data block in the data file.
  • the method further includes receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
  • an electronic device includes a processor; and a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the device to perform acts including: in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request including a position of the to-be-analyzed data block in the data file; determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block; and sending the compressed data block to the failure analysis device for analyzing the failure.
  • an electronic device includes a processor; and a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the device to perform acts including: determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file; sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request including a position of the to-be-analyzed data block in the data file; and receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
  • a computer program product being tangibly stored on a non-volatile computer-readable medium and including machine-executable instructions that, when executed, cause the machine to perform steps of the method according to the first aspect of the present disclosure.
  • a computer program product being tangibly stored on a non-volatile computer-readable medium and including machine-executable instructions that, when executed, cause the machine to perform steps of the method according to the second aspect of the present disclosure.
  • FIG. 1 illustrates a schematic diagram of an example environment 100 in which devices and/or methods according to embodiments of the present disclosure may be implemented;
  • FIG. 2 illustrates a flowchart of a method 200 for processing data according to an embodiment of the present disclosure
  • FIG. 3 illustrates a flowchart of a method 300 for determining position information of a data block according to an embodiment of the present disclosure
  • FIG. 4 illustrates a flowchart of a method 400 for analyzing the failure according to an embodiment of the present disclosure
  • FIG. 5 illustrates a schematic diagram of an example environment 500 in which devices and/or methods according to embodiments of the present disclosure may be implemented;
  • FIG. 6 illustrates a schematic block diagram of an example device 600 adapted to implement embodiments of the present disclosure.
  • the specialized circuitry that performs one or more of the various operations disclosed herein may be formed by one or more processors operating in accordance with specialized instructions persistently stored in memory.
  • Such components may be arranged in a variety of ways such as tightly coupled with each other (e.g., where the components electronically communicate over a computer bus), distributed among different locations (e.g., where the components electronically communicate over a computer network), combinations thereof, and so on.
  • the terms “includes”, “comprises” or like terms should be understood as open-ended terms that mean “includes, but is not limited to.”
  • the term “based on” is to be read as “based at least in part on.”
  • the term “an embodiment” or “the embodiment” should be understood as “at least one embodiment”.
  • the terms “first”, “second”, etc. may refer to different or the same objects. Other explicit and implicit definitions might be included below.
  • the memory data will be saved as a data file.
  • the data file is then compressed to form a compressed file.
  • the data processing device sends the entire compressed file to a failure analysis device for analyzing the failure.
  • the failure analysis device After receiving the compressed file, the failure analysis device first decompresses the compressed file to obtain a decompressed file, and then debugs the decompressed file to analyze the failure.
  • the increase of device processor cores and memory causes a larger compressed file. It takes a lot of time to upload the compressed file from a data processing device to the failure analysis device. Similarly, the failure analysis device needs a larger disk space to decompress the uploaded compressed file, and then uses a debugger (such as gdb) for final post-analysis, which reduces the efficiency of the disk space usage. In addition, because the analysis is performed after the decompression is completed, a long wait time is also caused.
  • a debugger such as gdb
  • the present disclosure proposes a solution for processing data.
  • the data processing device receives, from a failure analysis device, a request for obtaining a to-be-analyzed data block related to an operating system failure.
  • the data processing device determines, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block.
  • the compressed data block is sent to the failure analysis device to determine the operating system failure.
  • the time for analyzing the analysis can be saved by causing the failure analysis device to start analysis based on the received partial compressed data, without receiving all the compressed files. Since many failures might be determined without using all the data, the amount of data transmission and the resources occupied by decompression are reduced, and the processing efficiency is improved.
  • FIG. 1 illustrates a schematic diagram of an example environment 100 in which devices and/or methods according to embodiments of the present disclosure may be implemented.
  • the environment 100 includes a data processing device 100 and a failure analysis device 102 .
  • An operating system runs on the data processing device 101 .
  • the data processing device 101 saves the data in the memory in the data processing device 101 .
  • the data in the memory is stored in a data file such as a memory dump file or a core dump file related to the operating system failure.
  • the operating system failure includes failures occurring in applications developed on the operating system.
  • the data related to the operating system failure includes data related to the application.
  • the data processing device 101 compresses the data file to generate a compressed file 103 .
  • the data processing device 101 stores the compressed file 103 in a storage device associated with the data processing device 101 , for example, a disk array for storing data.
  • the data processing device 101 may send the compressed file 103 to the failure analysis device 102 for analyzing the failure.
  • the data processing device 101 may be implemented as any type of data processing device, including but not limited to mobile phones (e.g., smartphones), laptop computers, Portable Digital Assistants (PDAs), E-book readers, portable game machine, portable media players, game machines, set-top boxes (STB), smart televisions (TV), personal computers, laptop computers, on-board computers (e.g., navigation units), and the like.
  • mobile phones e.g., smartphones
  • laptop computers Portable Digital Assistants (PDAs), E-book readers, portable game machine, portable media players, game machines, set-top boxes (STB), smart televisions (TV), personal computers, laptop computers, on-board computers (e.g., navigation units), and the like.
  • the data processing device 101 Upon storing data in the memory to a data file related to the operating system failure, the data processing device 101 forms a set of raw data blocks based on the data in the memory.
  • the set of raw data blocks includes two parts.
  • the first part is a first data block subset related to the application of the operating system, such as the compiled code of the application of the operating system, the parameters of the application, and the like.
  • the second part is a second data block subset related to the input and output operations of the application.
  • the data processing device 101 will further determine original position information of the position of the set of raw data blocks in the data file, such as an offset and a length of the data block in the data file.
  • the data processing device 101 further determines other information related to the set of raw data blocks, such as the position of the data block in the memory, such as the offset and length of the data block in the memory, and the like.
  • the data processing device 101 sequentially stores the original position information of the set of raw data blocks, the first subset of data blocks and the second subset of data blocks into the data file.
  • the data processing device 101 when failure analysis is performed on the compressed file 103 , the data processing device 101 obtains the compressed file 103 .
  • the data processing device 101 performs decompression and scanning for the compressed file 103 .
  • the data processing device 101 then generates file metadata for the compressed file 103 .
  • the file metadata includes at least the original position information of the set of raw data blocks in the data file and compressed position information related to the set of raw data blocks.
  • the compressed position information indicates a position of a set of compressed data blocks in the compressed file 103 which corresponds to the set of raw data blocks.
  • the data processing device 101 transmits at least a portion of the compressed file 103 to the failure analysis device 102 .
  • the data processing device 101 may include a hardware processor, including but not limited to a hardware Central Processing Unit (CPU), a Field Programmable Gate Array (FPGA), a Complex Programmable Logic Device (CPLD), and an Application Specific Integrated Circuit (ASIC), System-on-chip (SoC), or a combination thereof.
  • a hardware processor including but not limited to a hardware Central Processing Unit (CPU), a Field Programmable Gate Array (FPGA), a Complex Programmable Logic Device (CPLD), and an Application Specific Integrated Circuit (ASIC), System-on-chip (SoC), or a combination thereof.
  • CPU Central Processing Unit
  • FPGA Field Programmable Gate Array
  • CPLD Complex Programmable Logic Device
  • ASIC Application Specific Integrated Circuit
  • SoC System-on-chip
  • the failure analysis device 102 may perform failure analysis for a portion of the received compressed file 103 .
  • the portion at least includes the original position information and the first subset of data blocks.
  • the failure analysis device 102 performs decompression processing for this portion, and then analyzes the decompressed file to determine the operating system failure.
  • the failure analysis device 102 has a debugger therein, which analyzes the received decompressed file 103 .
  • the failure analysis device 102 includes, but is not limited to, personal computers, server computers, handheld or laptop devices, mobile devices (such as mobile phones, Personal Digital Assistants (PDAs), media players, etc.), multiprocessor systems, consumable electronic products, small computers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.
  • mobile devices such as mobile phones, Personal Digital Assistants (PDAs), media players, etc.
  • multiprocessor systems multiprocessor systems, consumable electronic products, small computers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.
  • the failure analysis device 102 no longer receives the remaining data in the compressed file 103 after receiving a portion of the compressed file 103 .
  • the failure analysis device 102 performs decompression processing for the received portion.
  • the failure analysis device 102 determines whether a failure of the operating system is in this portion.
  • the position of the to-be-analyzed data block in the data file may be determined based on the original position information in the decompressed portion.
  • the failure analysis device 102 sends the position to the data processing device 101 to obtain a compressed data block 104 corresponding to the position.
  • the data processing device 101 finds the position from the original position information, and then finds the corresponding compressed position in the compressed position information to determine the corresponding compressed data block 104 .
  • the failure analysis device 102 continues to receive the remaining data in the compressed file 103 after receiving a portion of the compressed file 103 .
  • the failure analysis device 102 decompresses the portion to analyze the failure of the operating system, for example, the failure of an application developed on the operating system.
  • the failure analysis device 102 may determine the position of the to-be-analyzed data block in the data file based on the original position information in the portion. The failure analysis device 102 then determines, based on the position, such as the offset and length of the data block in the data file, whether there is a compressed data block in the compressed data block already received by the failure analysis device 102 which corresponds to the data block.
  • the failure analysis device 102 sends the position to the data processing device 101 to obtain a compressed data block 104 corresponding to the position. If there is the compressed data block, the corresponding compressed data block is decompressed for analyzing the failure.
  • FIG. 1 illustrates an example environment 100 for processing data
  • a method 100 for processing data is described in detail below with reference to FIG. 2 . It should be understood that the method in FIG. 2 may be executed by the data processing device 101 , and may also be executed by other appropriate devices.
  • the data processing device 101 determines whether a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of the operating system is received from the failure analysis device 102 .
  • the request includes the position of the to-be-analyzed data block in the data file.
  • the failure analysis device 102 analyzes the failure of the operating system according to a partial data file of the received data file. If there is no failure in the analyzed data file, the failure analysis device 102 determines the to-be-analyzed data block. If the to-be-analyzed data block does not exist in the failure analysis device 102 , the failure analysis device 102 will send the data processing device 101 a request to obtain the to-be-analyzed data block.
  • the failure analysis device 102 may determine the position of the to-be-analyzed data block in the data file, for example, the offset and length of the to-be-analyzed data block in the data file.
  • the failure analysis device 102 includes a debugger. The debugger analyzes the obtained partial data file. When the partial data file is analyzed and no failure is determined, the debugger determines the position of the to-be-analyzed data block in the data file.
  • the data processing device 101 when the operating system of the data processing device 101 fails, for example, when the system crashes or an application developed on the operating system fails, the data processing device 101 generates a data file such as a core dump file or a memory dump file related to the failure of the operating system.
  • the data processing device 101 will determine a set of raw data blocks from the data related to the failure, and the set of raw data blocks includes a first subset of data blocks related to the application in the operating system (e.g., a linux operating system) and a second subset of data blocks related to an input/output operation of the application.
  • the operating system e.g., a linux operating system
  • the data in the first subset of data blocks includes a compiled text of the application and parameters for the application, etc.; the data in the second subset of data blocks includes input/output data stored in a storage space dynamically allocated for the application.
  • the data processing device 101 further determines the original position information according to the positions of the first subset of data blocks and the second subset of data blocks in the data file.
  • the original position information indicates the position of the set of raw data blocks in the data file, for example, the length and offset of the set of raw data blocks in a data file.
  • the data processing device 101 may further generate other information related to the first subset of data blocks and the second subset of data blocks, such as the position and offset of the data blocks in the memory, and so on.
  • the data processing device 101 then stores the original position information, the first subset of data blocks and the second subset of data blocks in the data file.
  • the original position information, the first subset of data blocks and the second subset of data blocks are sequentially stored in the data file.
  • the data file includes header information and file content information.
  • the header information may include information related to the data file, such as an identification of the data file and original position information of the data block.
  • the file content information includes the first subset of data blocks and the second subset of data blocks.
  • the header information, the first subset of data blocks and the second subset of data blocks are stored sequentially.
  • the data processing device 101 compresses the data file into the compressed file 103 .
  • the data processing device 101 stores the compressed file 103 on a storage device associated therewith, such as a disk array.
  • the data processing device 101 needs to send the compressed file 103 of the data file related to the operating system to the failure analysis device 102 for analyzing the failure.
  • the data processing device 101 obtains the compressed file 103 of the data file, and then transmits the compressed file 103 to the failure analysis device 102 .
  • the transmitted data includes the compressed data in the compressed file 103 which corresponds to the original position information.
  • the failure analysis device 102 determines that the to-be-analyzed data block needs to be obtained from the data processing device 101 based on the original position information.
  • the data processing device 101 determines a position of the to-be-analyzed data block in the compressed file 103 for the data file. According to the position of the to-be-analyzed data block in the data file, the data processing device 101 may determine a first offset and a first length of the to-be-analyzed data block in the data file. In some embodiments, the position of the to-be-analyzed data block in the data file includes a first offset and a first length of the to-be-analyzed data block in the data file.
  • the data processing device 101 may determine a second offset and a second length of the to-be-analyzed data block in the compressed file 103 .
  • the data processing device 101 performs decompression scanning for the compressed file 103 to generate file metadata for the compressed file 103 , where the file metadata includes the original position information of the set of raw data blocks in the data file and compressed position information of the compressed data blocks in the compressed file 103 which correspond to the set of raw data blocks. Therefore, the file metadata includes a correspondence relationship between the first offset and the first length and the second offset and the second length of the to-be-analyzed data block.
  • the data processing device 101 determines, based on the position of the to-be-analyzed data block in the compressed file 103 , a compressed data block 104 in the compressed file 103 corresponding to the to-be-analyzed data block.
  • the data processing device 101 determines, based on the position of the to-be-analyzed data block in the compressed file 103 , the second offset and the second length of the to-be-analyzed data block in the compressed file 103 . Then, the data processing device 101 finds the compressed data block 104 from the compressed file 103 according to the second offset and the second length.
  • the data processing device 101 sends the compressed data block 104 to the failure analysis device 102 for analyzing the failure. After obtaining the compressed data block 104 corresponding to the to-be-analyzed data block, the data processing device 101 sends the found compressed data block 104 to the failure analysis device.
  • the failure analysis device 102 can start analysis based on the received partial compressed data, without receiving all the compressed files, thereby saving the time for failure analysis. Since many failures can be determined without using all the data, the amount of data transmission and the resources occupied by decompression are reduced, and the processing efficiency is improved.
  • FIG. 3 illustrates a flowchart of a method 300 for determining position information of a data block according to an embodiment of the present disclosure.
  • the method of FIG. 3 may be executed for example by the data processing device 101 .
  • the data processing device 101 obtains the compressed file 103 of the data file, the data file includes original position information.
  • the original position information indicates the position of the set of raw data blocks in the data file.
  • the data processing device 101 reads the compressed file 103 from a storage device associated with the data processing device 101 .
  • the data processing device 101 decompresses the compressed file 103 to obtain original position information.
  • a debugging assistant in the data processing device 101 performs decompression scanning for the compressed file 103 to obtain the original position information in the data file.
  • the data processing device 101 may further obtain any information in the compressed file 103 .
  • the data processing device 101 determines the compressed position information based on the compressed file 103 and the original position information.
  • the compressed position information indicates the position of a set of compressed data blocks in the compressed file 103 corresponding to the set of raw data blocks. After obtaining the original position information of the set of raw data blocks, the compressed position information of a set of compressed data blocks in the compressed file 103 which corresponds to the set of raw data blocks can be determined.
  • the correspondence relationship between the positions of the raw data blocks in the data file and the compressed data blocks in the compressed file can be generated at the data processing device. Therefore, the compressed positions in the compressed file related to the raw data blocks may be quickly determined based on the positions of the raw data blocks in the data file, which improves the efficiency of obtaining the compressed data block, and saves the time for obtaining data.
  • FIG. 4 illustrates a flowchart of a method 400 for processing data according to an embodiment of the present disclosure. The method of FIG. 4 may be performed, for example, by the failure analysis device 102 .
  • the failure analysis device 102 determines, based on the original position information of the set of raw data blocks in the data file related to the failure of the operating system, the position of the to-be-analyzed data block in the set of raw data blocks in the data file.
  • the failure analysis device 102 receives at least one portion of the compressed file 103 for the data file, the at least one portion including the compressed data corresponding to the original position information and compressed data blocks corresponding to the received data blocks in the set of raw data blocks. Then, the failure analysis device 102 uses the at least one portion to determine the original position and the compressed position corresponding to the received data blocks.
  • the at least one portion is the compressed data corresponding to the original position information and the compressed data blocks corresponding to the received data blocks in the set of raw data blocks, received by the failure analysis device 102 .
  • the failure analysis device 102 only decompresses the portion to analyze the failure. During the analysis, the failure analysis device 102 no longer receives the data of the compressed file 103 from the data processing device 101 .
  • the at least one portion not only includes the compressed data corresponding to the original position information and the compressed data blocks corresponding to the received data blocks in the set of raw data blocks, received by the failure analysis device 102 , but also includes the data of the compressed file 103 received by the failure analysis device 102 constantly while the failure analysis device 102 decompresses the portion to analyze the failure.
  • the failure analysis device 102 performs decompression scanning for the at least one portion of the compressed file 103 , and then determines the original position information included in the portion and the received data blocks, for example, the first subset of data blocks. Then, the failure analysis device 102 determines the original position of the received data block based on the original position information and the received data blocks. The failure analysis device 102 determines the compressed positions of the compressed data blocks corresponding to the received data blocks based on the original positions of the received data blocks and the at least one portion of the compressed file 103 .
  • the failure analysis device 102 sends the data processing device 101 a request for obtaining the to-be-analyzed data block, the request including the position of the to-be-analyzed data block in the data file.
  • the failure analysis device 102 after determining the position of the to-be-analyzed data block in the data file, the failure analysis device 102 directly sends the request to the data processing device 101 .
  • the failure analysis device 102 determines whether the to-be-analyzed data block is in the received data blocks in the set of raw data blocks based on the position of the to-be-analyzed data block in the data file. If the failure analysis device 102 determines that the to-be-analyzed data block is not in the received data blocks, the failure analysis device 102 sends, to the data processing device 101 , a request for obtaining the to-be-analyzed data block. If the failure analysis device 102 determines that the to-be-analyzed data block is in the received data blocks, the failure analysis device 102 decompresses the compressed data block 104 corresponding to the to-be-analyzed data block to continue to analyze the failure.
  • the position of the to-be-analyzed data block in the data file is compared with the original positions of the determined received data blocks in the failure analysis device 102 . If the position of the to-be-analyzed data block is in the original positions of the received data blocks, this indicates that the to-be-analyzed data block has been received. Then, a compressed position corresponding to the position of the to-be-analyzed data block may be determined at this time. Thereby, the compressed data block 104 in at least one portion of the received compressed file 103 that corresponds to the compressed position is decompressed for analyzing the failure. If the position of the to-be-analyzed data block is not in the original positions of the received data blocks, this indicates that the to-be-analyzed data block has not yet been received.
  • the failure analysis device 102 receives, from the data processing device 101 , the compressed data block 104 corresponding to the to-be-analyzed data block for analyzing the failure. After receiving the request from the failure analysis device 102 , the data processing device 101 sends the compressed data block 104 to the failure analysis device 102 based on the request. After receiving the compressed data block 104 , the failure analysis device 102 decompresses it for analyzing the failure.
  • the failure analysis device may quickly perform failure analysis, and save the time for analysis. Furthermore, the data is requested from the data processing device, thereby the data transmitted from the data processing device to the failure analysis device is reduced, and the efficiency is improved.
  • FIG. 5 illustrates a schematic diagram of an example environment 500 in which devices and/or methods according to embodiments of the present disclosure may be implemented.
  • the example environment 500 shown in FIG. 5 is a specific example of the example environment 100 in FIG. 1 .
  • the data processing device 101 , failure analysis device 102 , compressed file 103 and compressed data block 104 included in the environment 500 have been described in detail in FIG. 1 and will not be described in detail any longer here.
  • the data processing device 101 includes a debugging assistant 501 .
  • the debugging assistant 501 is configured to perform decompression scanning for the compressed file 103 and then generate file metadata 504 for the compressed file 103 .
  • the file metadata 504 includes original position information and compressed position information corresponding to the set of raw data blocks.
  • the original position information indicates the positions of the set of raw data blocks in the data file
  • the compressed position information indicates the position of a set of compressed data blocks in the compressed file 103 corresponding to the set of raw data blocks.
  • the original position information includes the offset and length of the raw data blocks in the data file
  • the compressed position information includes the offset and length of the compressed data block in the compressed file 103 .
  • the file metadata 504 may further include an identification of the file metadata 504 , a virtual address range, and so on.
  • the debugging assistant 501 may further determine, based on the position of the to-be-analyzed data block in the data file received from the failure analysis device 102 and the file metadata 504 , the compressed data block 104 corresponding to the to-be-analyzed data block.
  • the failure analysis device 102 at least receives partial data 506 of the compressed file 103 .
  • the partial data 506 at least includes the original position information and the first subset of data blocks.
  • the failure analysis device 103 decompresses the partial data 506 to generate decompressed partial data 507 . Then, failure analysis is performed on the decompressed partial data 507 by the debugger 503 .
  • the debugger 503 analyzes the decompressed partial data 507 . If no failure is determined, the debugger 503 may determine the to-be-analyzed data block based on the decompressed partial data 507 , for example, determine the position of the to-be-analyzed data block in the data file.
  • the failure analysis device 102 no longer receives data after receiving the partial data 506 . After determining the position of the to-be-analyzed data block in the data file, the position is sent to the data processing device 101 to obtain the compressed data block 104 corresponding to the data block.
  • the failure analysis device 102 further includes a debugging assistant 502 .
  • the debugger 503 analyzes the decompressed partial data 507
  • the failure analysis device 102 continues to receive the compressed data of the compressed file 103 from the data processing device 101 .
  • the debugging assistant 502 performs decompression scanning for the partial data 506 and subsequently-received data to generate file metadata 505 .
  • the file metadata 505 includes partial original position information and partial compressed position information of the received data blocks.
  • the debugging assistant 502 determines whether the to-be-analyzed data block has been received based on the position and the file metadata 505 . If the to-be-analyzed data block has been received, the corresponding compressed data block 104 is decompressed for use by the debugger 503 . If the to-be-analyzed data block has not yet been received, a request is sent to the data processing device 101 to obtain the to-be-analyzed data block.
  • FIG. 6 illustrates a schematic block diagram of an example device 500 that may be used to implement an embodiment of the content of the present disclosure.
  • the data processing device 101 and failure analysis device 102 shown in FIG. 1 and FIG. 5 may be implemented by the device 600 .
  • the device 600 includes a central processing unit (CPU) 601 which is capable of performing various proper actions and processes in accordance with a computer program instruction stored in a read only memory (ROM) 602 or a computer program instruction loaded from a storage unit 608 to a random access memory (RAM) 603 .
  • ROM read only memory
  • RAM random access memory
  • Various programs and data needed in the operation of the device 600 may also be stored in the RAM 603 .
  • the CPU 601 , the ROM 602 and the RAM 603 are connected to one another via a bus 604 .
  • An input/output (I/O) interface 605 is also connected to the bus 604 .
  • the following components in the device 600 are connected to the I/O interface 605 : an input unit 606 including a keyboard, a mouse, or the like; an output unit 607 , e.g., various displays and loudspeakers; a storage unit 608 such as a magnetic disk, an optical disk or the like; and a communication unit 609 such as a network card, a modem, a radio communication transceiver.
  • the communication unit 609 allows the device 600 to exchange information/data with other devices via a computer network such as Internet and/or various telecommunication networks.
  • the above-described procedures and processes such as methods 200 , 300 and 400 may be implemented by the processing unit 601 .
  • the methods 200 , 300 and 400 may be implemented as a computer software program, which is tangibly included in a machine-readable medium such as the storage unit 608 .
  • part or all of the computer program may be loaded and/or installed on the device 600 via the ROM 602 and/or the communication unit 609 .
  • the computer program is uploaded to the RAM 603 and executed by the CPU 601 , one or more acts of the above methods 200 , 300 and 400 may be implemented.
  • the present disclosure may be a method, a device, a system and/or a computer program product.
  • the computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for carrying out aspects of the present disclosure.
  • the computer-readable storage medium may be a tangible device that may retain and store instructions for use by an instruction execution device.
  • the computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • a non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • SRAM static random access memory
  • CD-ROM compact disc read-only memory
  • DVD digital versatile disk
  • memory stick a floppy disk
  • a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
  • a computer-readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer-readable program instructions described herein may be downloaded to respective computing/processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device.
  • Computer-readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
  • These computer-readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means (e.g., specialized circuitry) for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer-readable program instructions may also be stored in a computer-readable storage medium that may direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein includes an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

Techniques involve in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request comprising a position of the to-be-analyzed data block in the data file. The techniques further involve determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block. The techniques further involve sending the compressed data block to the failure analysis device for analyzing the failure. Accordingly, the time for analyzing the failure may be saved, the amount of data transmission and the resources occupied by decompression may be reduced, and the processing efficiency may be improved.

Description

CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority to Chinese Patent Application No. CN201911002251.2, on file at the China National Intellectual Property Administration (CNIPA), having a filing date of Oct. 21, 2019, and having “METHOD, DEVICE AND COMPUTER PROGRAM PRODUCT FOR PROCESSING DATA” as a title, the contents and teachings of which are herein incorporated by reference in their entirety.
FIELD
Embodiments of the present disclosure relate to the field of computers, and specifically to a method, device and computer program product for processing data.
BACKGROUND
For computing devices, a running operating system does not always operate stably. In some important fields, if the running operating system fails, the content of a memory needs to be saved to form a data file, such as a dump file. This data file is then used to analyze the cause of the failure so that the failure in the system can be reduced to better run the operating system. For example, in some storage systems, when the system crashes, the memory data in the storage system needs to be saved to analyze the failure of the operating system.
However, in order to improve the performance of a computing device, the computing device is configured with more powerful CPU cores and more memory. At this time, more and more memory data needs to be managed. Therefore, if the operating system fails, it will result in a larger data file for the storage system. For ease of processing, these data files are usually compressed into a compressed file. However, there are still many issues that need to be addressed when analyzing the failure of the operating system.
SUMMARY
Embodiments of the present disclosure provide a method, device and computer program product for processing data.
According to a first aspect of the present disclosure, there is provided a method of processing data. The method includes in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request including a position of the to-be-analyzed data block in the data file. The method further includes determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block. The method further includes sending the compressed data block to the failure analysis device for analyzing the failure.
According to a second aspect of the present disclosure, there is provided a method for analyzing a failure. The method includes: determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file. The method further includes sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request including a position of the to-be-analyzed data block in the data file. The method further includes receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
According to a third aspect of the present disclosure, there is provided an electronic device. The device includes a processor; and a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the device to perform acts including: in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request including a position of the to-be-analyzed data block in the data file; determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block; and sending the compressed data block to the failure analysis device for analyzing the failure.
According to a fourth aspect of the present disclosure, there is provided an electronic device. The device includes a processor; and a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the device to perform acts including: determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file; sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request including a position of the to-be-analyzed data block in the data file; and receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
According to a fifth aspect of the present disclosure, there is provided a computer program product being tangibly stored on a non-volatile computer-readable medium and including machine-executable instructions that, when executed, cause the machine to perform steps of the method according to the first aspect of the present disclosure.
According to a sixth aspect of the present disclosure, there is provided a computer program product being tangibly stored on a non-volatile computer-readable medium and including machine-executable instructions that, when executed, cause the machine to perform steps of the method according to the second aspect of the present disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other features, advantages and aspects of embodiments of the present disclosure will be made more apparent by describing example embodiments of the present disclosure in more detail with reference to figures. In the example embodiments of the present disclosure, the same reference signs usually represent the same element, wherein,
FIG. 1 illustrates a schematic diagram of an example environment 100 in which devices and/or methods according to embodiments of the present disclosure may be implemented;
FIG. 2 illustrates a flowchart of a method 200 for processing data according to an embodiment of the present disclosure;
FIG. 3 illustrates a flowchart of a method 300 for determining position information of a data block according to an embodiment of the present disclosure;
FIG. 4 illustrates a flowchart of a method 400 for analyzing the failure according to an embodiment of the present disclosure;
FIG. 5 illustrates a schematic diagram of an example environment 500 in which devices and/or methods according to embodiments of the present disclosure may be implemented;
FIG. 6 illustrates a schematic block diagram of an example device 600 adapted to implement embodiments of the present disclosure.
In all figures, the same or corresponding reference signs represent the same or corresponding parts.
DETAILED DESCRIPTION OF EMBODIMENTS
The individual features of the various embodiments, examples, and implementations disclosed within this document can be combined in any desired manner that makes technological sense. Furthermore, the individual features are hereby combined in this manner to form all possible combinations, permutations and variants except to the extent that such combinations, permutations and/or variants have been explicitly excluded or are impractical. Support for such combinations, permutations and variants is considered to exist within this document.
It should be understood that the specialized circuitry that performs one or more of the various operations disclosed herein may be formed by one or more processors operating in accordance with specialized instructions persistently stored in memory. Such components may be arranged in a variety of ways such as tightly coupled with each other (e.g., where the components electronically communicate over a computer bus), distributed among different locations (e.g., where the components electronically communicate over a computer network), combinations thereof, and so on.
Preferred embodiments of the present disclosure will be described below in more detail with reference to figures. Although figures show preferred embodiments of the present disclosure, it should be appreciated that the present disclosure may be implemented in various forms and should not be limited by embodiments stated herein. On the contrary, these embodiments are provided to make the present disclosure more apparent and complete. It should be appreciated that figures and embodiments of the present disclosure are only used for example purposes and not to the limit protection scope of the present disclosure.
As described in embodiments of the present disclosure, the terms “includes”, “comprises” or like terms should be understood as open-ended terms that mean “includes, but is not limited to.” The term “based on” is to be read as “based at least in part on.” The term “an embodiment” or “the embodiment” should be understood as “at least one embodiment”. The terms “first”, “second”, etc. may refer to different or the same objects. Other explicit and implicit definitions might be included below.
The principles of the present disclosure are described below with reference to several example embodiments illustrated in the drawings. Although preferred embodiments of the present invention have been shown in the drawings, it should be understood that these embodiments are only intended to enable those skilled in the art to better understand and thereby implement the present disclosure, not to limit the scope of the present disclosure in any manner.
Usually, when an operating system crashes, the memory data will be saved as a data file. The data file is then compressed to form a compressed file. In order to analyze the operating system failure, the data processing device sends the entire compressed file to a failure analysis device for analyzing the failure. After receiving the compressed file, the failure analysis device first decompresses the compressed file to obtain a decompressed file, and then debugs the decompressed file to analyze the failure.
The increase of device processor cores and memory causes a larger compressed file. It takes a lot of time to upload the compressed file from a data processing device to the failure analysis device. Similarly, the failure analysis device needs a larger disk space to decompress the uploaded compressed file, and then uses a debugger (such as gdb) for final post-analysis, which reduces the efficiency of the disk space usage. In addition, because the analysis is performed after the decompression is completed, a long wait time is also caused.
In order to solve the above problems, the present disclosure proposes a solution for processing data. In this solution, the data processing device receives, from a failure analysis device, a request for obtaining a to-be-analyzed data block related to an operating system failure. The data processing device determines, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block. The compressed data block is sent to the failure analysis device to determine the operating system failure. According to the method, the time for analyzing the analysis can be saved by causing the failure analysis device to start analysis based on the received partial compressed data, without receiving all the compressed files. Since many failures might be determined without using all the data, the amount of data transmission and the resources occupied by decompression are reduced, and the processing efficiency is improved.
FIG. 1 illustrates a schematic diagram of an example environment 100 in which devices and/or methods according to embodiments of the present disclosure may be implemented.
The environment 100 includes a data processing device 100 and a failure analysis device 102. An operating system runs on the data processing device 101. When the operating system of the data processing device 101 fails, for example, when the system crashes, the data processing device 101 saves the data in the memory in the data processing device 101. The data in the memory is stored in a data file such as a memory dump file or a core dump file related to the operating system failure.
In some embodiments, the operating system failure includes failures occurring in applications developed on the operating system. At this time, the data related to the operating system failure includes data related to the application.
In some embodiments, since the generated data file is relatively large, the data processing device 101 compresses the data file to generate a compressed file 103. The data processing device 101 stores the compressed file 103 in a storage device associated with the data processing device 101, for example, a disk array for storing data. The data processing device 101 may send the compressed file 103 to the failure analysis device 102 for analyzing the failure.
The data processing device 101 may be implemented as any type of data processing device, including but not limited to mobile phones (e.g., smartphones), laptop computers, Portable Digital Assistants (PDAs), E-book readers, portable game machine, portable media players, game machines, set-top boxes (STB), smart televisions (TV), personal computers, laptop computers, on-board computers (e.g., navigation units), and the like.
Upon storing data in the memory to a data file related to the operating system failure, the data processing device 101 forms a set of raw data blocks based on the data in the memory. The set of raw data blocks includes two parts. The first part is a first data block subset related to the application of the operating system, such as the compiled code of the application of the operating system, the parameters of the application, and the like. The second part is a second data block subset related to the input and output operations of the application. The data processing device 101 will further determine original position information of the position of the set of raw data blocks in the data file, such as an offset and a length of the data block in the data file. The data processing device 101 further determines other information related to the set of raw data blocks, such as the position of the data block in the memory, such as the offset and length of the data block in the memory, and the like.
In some embodiments, upon generating the data file, the data processing device 101 sequentially stores the original position information of the set of raw data blocks, the first subset of data blocks and the second subset of data blocks into the data file.
In some embodiments, when failure analysis is performed on the compressed file 103, the data processing device 101 obtains the compressed file 103. The data processing device 101 performs decompression and scanning for the compressed file 103. The data processing device 101 then generates file metadata for the compressed file 103. The file metadata includes at least the original position information of the set of raw data blocks in the data file and compressed position information related to the set of raw data blocks. The compressed position information indicates a position of a set of compressed data blocks in the compressed file 103 which corresponds to the set of raw data blocks.
When the compressed file 103 needs to be transmitted to the failure analysis device 102 for analyzing the failure, the data processing device 101 transmits at least a portion of the compressed file 103 to the failure analysis device 102.
The data processing device 101 may include a hardware processor, including but not limited to a hardware Central Processing Unit (CPU), a Field Programmable Gate Array (FPGA), a Complex Programmable Logic Device (CPLD), and an Application Specific Integrated Circuit (ASIC), System-on-chip (SoC), or a combination thereof.
The failure analysis device 102 may perform failure analysis for a portion of the received compressed file 103. The portion at least includes the original position information and the first subset of data blocks. The failure analysis device 102 performs decompression processing for this portion, and then analyzes the decompressed file to determine the operating system failure. In some embodiments, the failure analysis device 102 has a debugger therein, which analyzes the received decompressed file 103.
The failure analysis device 102 includes, but is not limited to, personal computers, server computers, handheld or laptop devices, mobile devices (such as mobile phones, Personal Digital Assistants (PDAs), media players, etc.), multiprocessor systems, consumable electronic products, small computers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.
In some embodiments, the failure analysis device 102 no longer receives the remaining data in the compressed file 103 after receiving a portion of the compressed file 103. The failure analysis device 102 performs decompression processing for the received portion. The failure analysis device 102 then determines whether a failure of the operating system is in this portion. When the failure analysis device 102 cannot determine the operating system failure according to the received portion, the position of the to-be-analyzed data block in the data file may be determined based on the original position information in the decompressed portion. Then, the failure analysis device 102 sends the position to the data processing device 101 to obtain a compressed data block 104 corresponding to the position. The data processing device 101 finds the position from the original position information, and then finds the corresponding compressed position in the compressed position information to determine the corresponding compressed data block 104.
In some embodiments, the failure analysis device 102 continues to receive the remaining data in the compressed file 103 after receiving a portion of the compressed file 103. After receiving the portion, the failure analysis device 102 decompresses the portion to analyze the failure of the operating system, for example, the failure of an application developed on the operating system. When the failure analysis device 102 cannot determine the operating system failure according to the received portion, the failure analysis device 102 may determine the position of the to-be-analyzed data block in the data file based on the original position information in the portion. The failure analysis device 102 then determines, based on the position, such as the offset and length of the data block in the data file, whether there is a compressed data block in the compressed data block already received by the failure analysis device 102 which corresponds to the data block. If there is no the compressed data block, the failure analysis device 102 sends the position to the data processing device 101 to obtain a compressed data block 104 corresponding to the position. If there is the compressed data block, the corresponding compressed data block is decompressed for analyzing the failure.
In the above, FIG. 1 illustrates an example environment 100 for processing data, and a method 100 for processing data is described in detail below with reference to FIG. 2. It should be understood that the method in FIG. 2 may be executed by the data processing device 101, and may also be executed by other appropriate devices.
At block 202, the data processing device 101 determines whether a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of the operating system is received from the failure analysis device 102. The request includes the position of the to-be-analyzed data block in the data file. The failure analysis device 102 analyzes the failure of the operating system according to a partial data file of the received data file. If there is no failure in the analyzed data file, the failure analysis device 102 determines the to-be-analyzed data block. If the to-be-analyzed data block does not exist in the failure analysis device 102, the failure analysis device 102 will send the data processing device 101 a request to obtain the to-be-analyzed data block.
In some embodiments, the failure analysis device 102 may determine the position of the to-be-analyzed data block in the data file, for example, the offset and length of the to-be-analyzed data block in the data file. Alternatively or additionally, the failure analysis device 102 includes a debugger. The debugger analyzes the obtained partial data file. When the partial data file is analyzed and no failure is determined, the debugger determines the position of the to-be-analyzed data block in the data file.
In some embodiments, when the operating system of the data processing device 101 fails, for example, when the system crashes or an application developed on the operating system fails, the data processing device 101 generates a data file such as a core dump file or a memory dump file related to the failure of the operating system.
In the process of generating the data file, the data processing device 101 will determine a set of raw data blocks from the data related to the failure, and the set of raw data blocks includes a first subset of data blocks related to the application in the operating system (e.g., a linux operating system) and a second subset of data blocks related to an input/output operation of the application.
For example, the data in the first subset of data blocks includes a compiled text of the application and parameters for the application, etc.; the data in the second subset of data blocks includes input/output data stored in a storage space dynamically allocated for the application.
The data processing device 101 further determines the original position information according to the positions of the first subset of data blocks and the second subset of data blocks in the data file. The original position information indicates the position of the set of raw data blocks in the data file, for example, the length and offset of the set of raw data blocks in a data file. Alternatively or additionally, the data processing device 101 may further generate other information related to the first subset of data blocks and the second subset of data blocks, such as the position and offset of the data blocks in the memory, and so on.
The data processing device 101 then stores the original position information, the first subset of data blocks and the second subset of data blocks in the data file. Alternatively or additionally, the original position information, the first subset of data blocks and the second subset of data blocks are sequentially stored in the data file. In some embodiments, the data file includes header information and file content information. The header information may include information related to the data file, such as an identification of the data file and original position information of the data block. The file content information includes the first subset of data blocks and the second subset of data blocks. Alternatively or additionally, the header information, the first subset of data blocks and the second subset of data blocks are stored sequentially.
In some embodiments, the data processing device 101 compresses the data file into the compressed file 103. Alternatively or additionally, the data processing device 101 stores the compressed file 103 on a storage device associated therewith, such as a disk array.
In some embodiments, the data processing device 101 needs to send the compressed file 103 of the data file related to the operating system to the failure analysis device 102 for analyzing the failure. The data processing device 101 obtains the compressed file 103 of the data file, and then transmits the compressed file 103 to the failure analysis device 102. The transmitted data includes the compressed data in the compressed file 103 which corresponds to the original position information. The failure analysis device 102 determines that the to-be-analyzed data block needs to be obtained from the data processing device 101 based on the original position information.
When it is determined that the data processing device 101 receives a request for obtaining a to-be-analyzed data block, at block 204, the data processing device 101 determines a position of the to-be-analyzed data block in the compressed file 103 for the data file. According to the position of the to-be-analyzed data block in the data file, the data processing device 101 may determine a first offset and a first length of the to-be-analyzed data block in the data file. In some embodiments, the position of the to-be-analyzed data block in the data file includes a first offset and a first length of the to-be-analyzed data block in the data file.
Based on the first offset and the first length, the data processing device 101 may determine a second offset and a second length of the to-be-analyzed data block in the compressed file 103. In some embodiments, the data processing device 101 performs decompression scanning for the compressed file 103 to generate file metadata for the compressed file 103, where the file metadata includes the original position information of the set of raw data blocks in the data file and compressed position information of the compressed data blocks in the compressed file 103 which correspond to the set of raw data blocks. Therefore, the file metadata includes a correspondence relationship between the first offset and the first length and the second offset and the second length of the to-be-analyzed data block.
At block 206, the data processing device 101 determines, based on the position of the to-be-analyzed data block in the compressed file 103, a compressed data block 104 in the compressed file 103 corresponding to the to-be-analyzed data block.
In some embodiments, the data processing device 101 determines, based on the position of the to-be-analyzed data block in the compressed file 103, the second offset and the second length of the to-be-analyzed data block in the compressed file 103. Then, the data processing device 101 finds the compressed data block 104 from the compressed file 103 according to the second offset and the second length.
At block 208, the data processing device 101 sends the compressed data block 104 to the failure analysis device 102 for analyzing the failure. After obtaining the compressed data block 104 corresponding to the to-be-analyzed data block, the data processing device 101 sends the found compressed data block 104 to the failure analysis device.
Through the above method, the failure analysis device 102 can start analysis based on the received partial compressed data, without receiving all the compressed files, thereby saving the time for failure analysis. Since many failures can be determined without using all the data, the amount of data transmission and the resources occupied by decompression are reduced, and the processing efficiency is improved.
The process of processing data at the data processing device 101 is described above with reference to FIG. 1 and FIG. 2, and the process of determining the position information of the data block is described in detail below with reference to FIG. 1 and FIG. 3, where FIG. 3 illustrates a flowchart of a method 300 for determining position information of a data block according to an embodiment of the present disclosure. The method of FIG. 3 may be executed for example by the data processing device 101.
At block 302, the data processing device 101 obtains the compressed file 103 of the data file, the data file includes original position information. The original position information indicates the position of the set of raw data blocks in the data file.
In some embodiments, the data processing device 101 reads the compressed file 103 from a storage device associated with the data processing device 101.
At block 304, the data processing device 101 decompresses the compressed file 103 to obtain original position information. When obtaining the original position information, a debugging assistant in the data processing device 101 performs decompression scanning for the compressed file 103 to obtain the original position information in the data file. Alternatively or additionally, the data processing device 101 may further obtain any information in the compressed file 103.
At block 306, the data processing device 101 determines the compressed position information based on the compressed file 103 and the original position information. The compressed position information indicates the position of a set of compressed data blocks in the compressed file 103 corresponding to the set of raw data blocks. After obtaining the original position information of the set of raw data blocks, the compressed position information of a set of compressed data blocks in the compressed file 103 which corresponds to the set of raw data blocks can be determined.
Through the above method, the correspondence relationship between the positions of the raw data blocks in the data file and the compressed data blocks in the compressed file can be generated at the data processing device. Therefore, the compressed positions in the compressed file related to the raw data blocks may be quickly determined based on the positions of the raw data blocks in the data file, which improves the efficiency of obtaining the compressed data block, and saves the time for obtaining data.
The process of determining the position information of the data block at the data processing device 101 is described above with reference to FIG. 1 and FIG. 3, and a process of processing data at the failure analysis device 102 is described in detail below with reference to FIG. 1 and FIG. 4. FIG. 4 illustrates a flowchart of a method 400 for processing data according to an embodiment of the present disclosure. The method of FIG. 4 may be performed, for example, by the failure analysis device 102.
At block 402, the failure analysis device 102 determines, based on the original position information of the set of raw data blocks in the data file related to the failure of the operating system, the position of the to-be-analyzed data block in the set of raw data blocks in the data file.
In some embodiments, the failure analysis device 102 receives at least one portion of the compressed file 103 for the data file, the at least one portion including the compressed data corresponding to the original position information and compressed data blocks corresponding to the received data blocks in the set of raw data blocks. Then, the failure analysis device 102 uses the at least one portion to determine the original position and the compressed position corresponding to the received data blocks.
In some embodiments, the at least one portion is the compressed data corresponding to the original position information and the compressed data blocks corresponding to the received data blocks in the set of raw data blocks, received by the failure analysis device 102. The failure analysis device 102 only decompresses the portion to analyze the failure. During the analysis, the failure analysis device 102 no longer receives the data of the compressed file 103 from the data processing device 101.
In some embodiments, the at least one portion not only includes the compressed data corresponding to the original position information and the compressed data blocks corresponding to the received data blocks in the set of raw data blocks, received by the failure analysis device 102, but also includes the data of the compressed file 103 received by the failure analysis device 102 constantly while the failure analysis device 102 decompresses the portion to analyze the failure.
In some embodiments, the failure analysis device 102 performs decompression scanning for the at least one portion of the compressed file 103, and then determines the original position information included in the portion and the received data blocks, for example, the first subset of data blocks. Then, the failure analysis device 102 determines the original position of the received data block based on the original position information and the received data blocks. The failure analysis device 102 determines the compressed positions of the compressed data blocks corresponding to the received data blocks based on the original positions of the received data blocks and the at least one portion of the compressed file 103.
At block 404, the failure analysis device 102 sends the data processing device 101 a request for obtaining the to-be-analyzed data block, the request including the position of the to-be-analyzed data block in the data file.
In some embodiments, after determining the position of the to-be-analyzed data block in the data file, the failure analysis device 102 directly sends the request to the data processing device 101.
In some embodiments, the failure analysis device 102 determines whether the to-be-analyzed data block is in the received data blocks in the set of raw data blocks based on the position of the to-be-analyzed data block in the data file. If the failure analysis device 102 determines that the to-be-analyzed data block is not in the received data blocks, the failure analysis device 102 sends, to the data processing device 101, a request for obtaining the to-be-analyzed data block. If the failure analysis device 102 determines that the to-be-analyzed data block is in the received data blocks, the failure analysis device 102 decompresses the compressed data block 104 corresponding to the to-be-analyzed data block to continue to analyze the failure.
In some embodiments, when determining whether the to-be-analyzed data block is in the received data blocks, the position of the to-be-analyzed data block in the data file is compared with the original positions of the determined received data blocks in the failure analysis device 102. If the position of the to-be-analyzed data block is in the original positions of the received data blocks, this indicates that the to-be-analyzed data block has been received. Then, a compressed position corresponding to the position of the to-be-analyzed data block may be determined at this time. Thereby, the compressed data block 104 in at least one portion of the received compressed file 103 that corresponds to the compressed position is decompressed for analyzing the failure. If the position of the to-be-analyzed data block is not in the original positions of the received data blocks, this indicates that the to-be-analyzed data block has not yet been received.
At block 406, the failure analysis device 102 receives, from the data processing device 101, the compressed data block 104 corresponding to the to-be-analyzed data block for analyzing the failure. After receiving the request from the failure analysis device 102, the data processing device 101 sends the compressed data block 104 to the failure analysis device 102 based on the request. After receiving the compressed data block 104, the failure analysis device 102 decompresses it for analyzing the failure.
Through the method described above, the failure analysis device may quickly perform failure analysis, and save the time for analysis. Furthermore, the data is requested from the data processing device, thereby the data transmitted from the data processing device to the failure analysis device is reduced, and the efficiency is improved.
The process for processing data on the side of the failure analysis device 102 is described above with reference to FIG. 1 and FIG. 4, and a specific example environment for processing data is described in detail below with reference to FIG. 5. FIG. 5 illustrates a schematic diagram of an example environment 500 in which devices and/or methods according to embodiments of the present disclosure may be implemented. The example environment 500 shown in FIG. 5 is a specific example of the example environment 100 in FIG. 1.
The data processing device 101, failure analysis device 102, compressed file 103 and compressed data block 104 included in the environment 500 have been described in detail in FIG. 1 and will not be described in detail any longer here.
The data processing device 101 includes a debugging assistant 501. The debugging assistant 501 is configured to perform decompression scanning for the compressed file 103 and then generate file metadata 504 for the compressed file 103. In some embodiments, the file metadata 504 includes original position information and compressed position information corresponding to the set of raw data blocks. The original position information indicates the positions of the set of raw data blocks in the data file, and the compressed position information indicates the position of a set of compressed data blocks in the compressed file 103 corresponding to the set of raw data blocks. For example, the original position information includes the offset and length of the raw data blocks in the data file, and the compressed position information includes the offset and length of the compressed data block in the compressed file 103. Alternatively or additionally, the file metadata 504 may further include an identification of the file metadata 504, a virtual address range, and so on.
The debugging assistant 501 may further determine, based on the position of the to-be-analyzed data block in the data file received from the failure analysis device 102 and the file metadata 504, the compressed data block 104 corresponding to the to-be-analyzed data block.
The failure analysis device 102 at least receives partial data 506 of the compressed file 103. The partial data 506 at least includes the original position information and the first subset of data blocks. The failure analysis device 103 decompresses the partial data 506 to generate decompressed partial data 507. Then, failure analysis is performed on the decompressed partial data 507 by the debugger 503.
The debugger 503 analyzes the decompressed partial data 507. If no failure is determined, the debugger 503 may determine the to-be-analyzed data block based on the decompressed partial data 507, for example, determine the position of the to-be-analyzed data block in the data file.
In some embodiments, the failure analysis device 102 no longer receives data after receiving the partial data 506. After determining the position of the to-be-analyzed data block in the data file, the position is sent to the data processing device 101 to obtain the compressed data block 104 corresponding to the data block.
In some embodiments, optionally, the failure analysis device 102 further includes a debugging assistant 502. When the debugger 503 analyzes the decompressed partial data 507, the failure analysis device 102 continues to receive the compressed data of the compressed file 103 from the data processing device 101. Optionally, the debugging assistant 502 performs decompression scanning for the partial data 506 and subsequently-received data to generate file metadata 505. The file metadata 505 includes partial original position information and partial compressed position information of the received data blocks.
After determining the position of the to-be-analyzed data block in the data file, the debugging assistant 502 determines whether the to-be-analyzed data block has been received based on the position and the file metadata 505. If the to-be-analyzed data block has been received, the corresponding compressed data block 104 is decompressed for use by the debugger 503. If the to-be-analyzed data block has not yet been received, a request is sent to the data processing device 101 to obtain the to-be-analyzed data block.
FIG. 6 illustrates a schematic block diagram of an example device 500 that may be used to implement an embodiment of the content of the present disclosure. For example, the data processing device 101 and failure analysis device 102 shown in FIG. 1 and FIG. 5 may be implemented by the device 600. As shown, the device 600 includes a central processing unit (CPU) 601 which is capable of performing various proper actions and processes in accordance with a computer program instruction stored in a read only memory (ROM) 602 or a computer program instruction loaded from a storage unit 608 to a random access memory (RAM) 603. Various programs and data needed in the operation of the device 600 may also be stored in the RAM 603. The CPU 601, the ROM 602 and the RAM 603 are connected to one another via a bus 604. An input/output (I/O) interface 605 is also connected to the bus 604.
The following components in the device 600 are connected to the I/O interface 605: an input unit 606 including a keyboard, a mouse, or the like; an output unit 607, e.g., various displays and loudspeakers; a storage unit 608 such as a magnetic disk, an optical disk or the like; and a communication unit 609 such as a network card, a modem, a radio communication transceiver. The communication unit 609 allows the device 600 to exchange information/data with other devices via a computer network such as Internet and/or various telecommunication networks.
The above-described procedures and processes such as methods 200, 300 and 400 may be implemented by the processing unit 601. For example, in some embodiments, the methods 200, 300 and 400 may be implemented as a computer software program, which is tangibly included in a machine-readable medium such as the storage unit 608. In some embodiments, part or all of the computer program may be loaded and/or installed on the device 600 via the ROM 602 and/or the communication unit 609. When the computer program is uploaded to the RAM603 and executed by the CPU601, one or more acts of the above methods 200, 300 and 400 may be implemented.
The present disclosure may be a method, a device, a system and/or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for carrying out aspects of the present disclosure.
The computer-readable storage medium may be a tangible device that may retain and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer-readable program instructions described herein may be downloaded to respective computing/processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device.
Computer-readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means (e.g., specialized circuitry) for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that may direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein includes an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (23)

We claim:
1. A method of processing data, comprising:
in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request comprising a position of the to-be-analyzed data block in the data file;
determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block; and
sending the compressed data block to the failure analysis device for analyzing the failure.
2. The method according to claim 1, wherein determining the position of the to-be-analyzed data block in the compressed file for the data file comprises:
determining, based on the position of the to-be-analyzed data block in the data file, a first offset and a first length of the to-be-analyzed data block in the data file; and
determining, based on the first offset and the first length, a second offset and a second length of the to-be-analyzed data block in the compressed file.
3. The method according to claim 1, wherein determining the compressed data block corresponding to the to-be-analyzed data block comprises:
determining, based on the position of the to-be-analyzed data block in the compressed file, a second offset and a second length of the to-be-analyzed data block in the compressed file; and
determining, based on the second offset and the second length, the compressed data block in the compressed file.
4. The method according to claim 1, further comprising:
obtaining the compressed file of the data file, the data file comprising original position information, the original position information indicating positions of the set of raw data blocks in the data file;
decompressing the compressed file to obtain the original position information; and
determining compressed position information based on the compressed file and the original position information, the compressed position information indicating positions of a set of compressed data blocks in the compressed file, the compressed data blocks corresponding to the set of raw data blocks.
5. The method according to claim 1, further comprising:
transmitting, to the failure analysis device, compressed data which is in the compressed file and corresponds to original position information.
6. The method according to claim 1, further comprising:
determining the set of raw data blocks from data related to the failure, the set of raw data blocks comprising a first subset of data blocks related to an application in the operating system and a second subset of data blocks related to an input/output operation of the application;
determining original position information based on positions of the first subset of data blocks and the second subset of data blocks in the data file; and
storing the original position information, the first subset of data blocks and the second subset of data blocks in the data file.
7. The method according to claim 1, wherein the failure of the operating system occurs within a storage system; and
wherein sending the compressed data block to the failure analysis device includes:
communicating the compressed data block from a disk array accessed by the storage system to the failure analysis device.
8. A method for analyzing a failure, comprising:
determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file;
sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request comprising a position of the to-be-analyzed data block in the data file; and
receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
9. The method according to claim 8, further comprising:
receiving at least one portion of a compressed file for the data file, the at least one portion comprising compressed data corresponding to the original position information and compressed data blocks corresponding to received data blocks in the set of raw data blocks; and
determining, based on the at least one portion, original positions and compressed positions corresponding to the received data blocks.
10. The method according to claim 9, wherein determining the original positions and the compressed positions comprises:
determining the original position information and the received data blocks based on the at least one portion of the compressed file;
determining the original positions based on the original position information and the received data blocks; and
determining the compressed positions based on the original positions and the at least one portion of the compressed file.
11. The method according to claim 8, wherein sending the request for obtaining the to-be-analyzed data block comprises:
determining, based on the position of the to-be-analyzed data block in the data file, whether the to-be-analyzed data block is in received data blocks in the set of raw data blocks; and
in response to determining that the to-be-analyzed data block is not in the received data blocks, sending, to the data processing device, the request for obtaining the to-be-analyzed data block.
12. An electronic device, comprising:
a processor; and
a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the electronic device to perform acts comprising:
in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request comprising a position of the to-be-analyzed data block in the data file;
determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block; and
sending the compressed data block to the failure analysis device for analyzing the failure.
13. The device according to claim 12, wherein determining the position of the to-be-analyzed data block in the compressed file for the data file comprises:
determining, based on the position of the to-be-analyzed data block in the data file, a first offset and a first length of the to-be-analyzed data block in the data file; and
determining, based on the first offset and the first length, a second offset and a second length of the to-be-analyzed data block in the compressed file.
14. The device according to claim 12, wherein determining the compressed data block corresponding to the to-be-analyzed data block comprises:
determining, based on the position of the to-be-analyzed data block in the compressed file, a second offset and a second length of the to-be-analyzed data block in the compressed file; and
determining, based on the second offset and the second length, the compressed data block in the compressed file.
15. The device according to claim 12, the acts further comprising:
obtaining the compressed file of the data file, the data file comprising original position information, the original position information indicating positions of the set of raw data blocks in the data file;
decompressing the compressed file to obtain the original position information; and
determining compressed position information based on the compressed file and the original position information, the compressed position information indicating positions of a set of compressed data blocks in the compressed file, the compressed data blocks corresponding to the set of raw data blocks.
16. The device according to claim 12, the acts further comprising:
transmitting, to the failure analysis device, compressed data which is in the compressed file and corresponds to original position information.
17. The device according to claim 12, the acts further comprising:
determining the set of raw data blocks from data related to the failure, the set of raw data blocks comprising a first subset of data blocks related to an application in the operating system and a second subset of data blocks related to an input/output operation of the application;
determining original position information based on positions of the first subset of data blocks and the second subset of data blocks in the data file; and
storing the original position information, the first subset of data blocks and the second subset of data blocks in the data file.
18. An electronic device, comprising:
a processor; and
a memory storing computer program instructions, and the processor running the computer program instructions in the memory to control the electronic device to perform acts comprising:
determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file;
sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request comprising a position of the to-be-analyzed data block in the data file; and
receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
19. The device according to claim 18, the acts further comprising:
receiving at least one portion of a compressed file for the data file, the at least one portion comprising compressed data corresponding to the original position information and compressed data blocks corresponding to received data blocks in the set of raw data blocks; and
determining, based on the at least one portion, original positions and compressed positions corresponding to the received data blocks.
20. The device according to claim 19, wherein determining the original positions and the compressed positions comprises:
determining the original position information and the received data blocks based on the at least one portion of the compressed file;
determining the original positions based on the original position information and the received data blocks; and
determining the compressed positions based on the original positions and the at least one portion of the compressed file.
21. The device according to claim 18, wherein sending the request for obtaining the to-be-analyzed data block comprises:
determining, based on the position of the to-be-analyzed data block in the data file, whether the to-be-analyzed data block is in received data blocks in the set of raw data blocks; and
in response to determining that the to-be-analyzed data block is not in the received data blocks, sending, to the data processing device, the request for obtaining the to-be-analyzed data block.
22. A computer program product having a non-transitory computer readable medium which stores a set of instructions to process data, the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
in response to receiving, from a failure analysis device, a request for obtaining a to-be-analyzed data block in a set of raw data blocks in a data file related to a failure of an operating system, determining a position of the to-be-analyzed data block in a compressed file for the data file, the request comprising a position of the to-be-analyzed data block in the data file;
determining, based on the position of the to-be-analyzed data block in the compressed file, a compressed data block in the compressed file corresponding to the to-be-analyzed data block; and
sending the compressed data block to the failure analysis device for analyzing the failure.
23. A computer program product having a non-transitory computer readable medium which stores a set of instructions to analyze a failure, the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
determining, based on original position information of a set of raw data blocks in a data file related to a failure of an operating system, a position of a to-be-analyzed data block in the set of raw data blocks in the data file;
sending, to a data processing device, a request for obtaining the to-be-analyzed data block, the request comprising a position of the to-be-analyzed data block in the data file; and
receiving, from the data processing device, a compressed data block corresponding to the to-be-analyzed data block for analyzing the failure.
US16/884,226 2019-10-21 2020-05-27 Method, device and computer program product for processing data Active US11200109B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911002251.2A CN112765111A (en) 2019-10-21 2019-10-21 Method, apparatus and computer program product for processing data
CN201911002251.2 2019-10-21

Publications (2)

Publication Number Publication Date
US20210117258A1 US20210117258A1 (en) 2021-04-22
US11200109B2 true US11200109B2 (en) 2021-12-14

Family

ID=75492400

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/884,226 Active US11200109B2 (en) 2019-10-21 2020-05-27 Method, device and computer program product for processing data

Country Status (2)

Country Link
US (1) US11200109B2 (en)
CN (1) CN112765111A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591193A (en) * 2023-07-27 2024-02-23 北京智芯微电子科技有限公司 Method and device for downloading after application, system on chip, terminal and storage medium

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813522B1 (en) 2000-12-29 2004-11-02 Emc Corporation Method of sharing memory in a multi-processor system including a cloning of code and data
US7020669B2 (en) 2001-09-27 2006-03-28 Emc Corporation Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption
US7636804B2 (en) * 2003-04-28 2009-12-22 Quantum Corporation Data storage and protection apparatus and methods of data storage and protection
US7849350B2 (en) 2006-09-28 2010-12-07 Emc Corporation Responding to a storage processor failure with continued write caching
US8713356B1 (en) 2011-09-02 2014-04-29 Emc Corporation Error detection and recovery tool for logical volume management in a data storage system
US20140215170A1 (en) * 2013-01-31 2014-07-31 Futurewei Technologies, Inc. Block Compression in a Key/Value Store
US8935560B2 (en) 2010-08-17 2015-01-13 Emc Corporation System and method of file locking in a network file system federated namespace
US8949221B1 (en) 2011-12-30 2015-02-03 Emc Corporation System and method of distributed query execution
US9158540B1 (en) 2011-11-14 2015-10-13 Emc Corporation Method and apparatus for offloading compute resources to a flash co-processing appliance
US9223679B1 (en) 2014-02-25 2015-12-29 Emc Corporation Lightweight, non-intrusive, and flexible apparatus to obtain system and process state
US9286261B1 (en) 2011-11-14 2016-03-15 Emc Corporation Architecture and method for a burst buffer using flash technology
US9313091B1 (en) 2013-09-26 2016-04-12 Emc Corporation Analytics platform for automated diagnosis, remediation, and proactive supportability
US9652568B1 (en) 2011-11-14 2017-05-16 EMC IP Holding Company LLC Method, apparatus, and computer program product for design and selection of an I/O subsystem of a supercomputer
US10091297B1 (en) 2016-05-18 2018-10-02 EMC IP Holding Company LLC Data processing and data movement in cloud computing environment
US10114731B2 (en) 2013-12-30 2018-10-30 EMC IP Holding Company LLC Including kernel object information in a user dump
US20180364949A1 (en) * 2017-06-15 2018-12-20 Hitachi, Ltd. Data storage system and process for data compression of distributed data in a scalable cluster system and computer program for such data storage system
US10229017B1 (en) 2015-10-01 2019-03-12 EMC IP Holding Company LLC Resetting fibre channel devices for failover in high availability backup systems
US10235234B2 (en) 2015-12-29 2019-03-19 EMC IP Holding Company LLC Method and apparatus for determining failure similarity in computing device
US10372560B2 (en) 2016-06-22 2019-08-06 EMC IP Holding Company LLC Cloud storage write cache management system and method
US10860483B2 (en) 2019-04-30 2020-12-08 EMC IP Holding Company LLC Handling metadata corruption to avoid data unavailability
US10860481B2 (en) 2018-01-18 2020-12-08 EMC IP Holding Company LLC Data recovery method, data recovery system, and computer program product

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893191B (en) * 2014-12-19 2019-12-17 伊姆西公司 Computing device and method for obtaining fault-related information
US20170109367A1 (en) * 2015-10-16 2017-04-20 International Business Machines Corporation Early compression related processing with offline compression
CN105373448B (en) * 2015-10-27 2018-11-02 北京百度网讯科技有限公司 The restoration methods and system of fault data in database
CN105718354A (en) * 2016-01-20 2016-06-29 上海斐讯数据通信技术有限公司 Fault information reproducing method and device
CN107122371A (en) * 2016-02-25 2017-09-01 伊姆西公司 Method and apparatus for data processing
CN107526743B (en) * 2016-06-21 2020-08-07 伊姆西Ip控股有限责任公司 Method and apparatus for compressing file system metadata
CN107643906B (en) * 2016-07-22 2021-01-05 华为技术有限公司 Data processing method and device
CN109582653B (en) * 2018-11-14 2020-12-08 网易(杭州)网络有限公司 Method and device for compressing and decompressing files

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813522B1 (en) 2000-12-29 2004-11-02 Emc Corporation Method of sharing memory in a multi-processor system including a cloning of code and data
US7020669B2 (en) 2001-09-27 2006-03-28 Emc Corporation Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption
US7636804B2 (en) * 2003-04-28 2009-12-22 Quantum Corporation Data storage and protection apparatus and methods of data storage and protection
US7849350B2 (en) 2006-09-28 2010-12-07 Emc Corporation Responding to a storage processor failure with continued write caching
US8935560B2 (en) 2010-08-17 2015-01-13 Emc Corporation System and method of file locking in a network file system federated namespace
US8713356B1 (en) 2011-09-02 2014-04-29 Emc Corporation Error detection and recovery tool for logical volume management in a data storage system
US9286261B1 (en) 2011-11-14 2016-03-15 Emc Corporation Architecture and method for a burst buffer using flash technology
US9158540B1 (en) 2011-11-14 2015-10-13 Emc Corporation Method and apparatus for offloading compute resources to a flash co-processing appliance
US9652568B1 (en) 2011-11-14 2017-05-16 EMC IP Holding Company LLC Method, apparatus, and computer program product for design and selection of an I/O subsystem of a supercomputer
US8949221B1 (en) 2011-12-30 2015-02-03 Emc Corporation System and method of distributed query execution
US20140215170A1 (en) * 2013-01-31 2014-07-31 Futurewei Technologies, Inc. Block Compression in a Key/Value Store
US9313091B1 (en) 2013-09-26 2016-04-12 Emc Corporation Analytics platform for automated diagnosis, remediation, and proactive supportability
US9983924B2 (en) 2013-09-26 2018-05-29 EMC IP Holding Company LLC Analytics platform for automated diagnosis, remediation, and proactive supportability
US10114731B2 (en) 2013-12-30 2018-10-30 EMC IP Holding Company LLC Including kernel object information in a user dump
US9223679B1 (en) 2014-02-25 2015-12-29 Emc Corporation Lightweight, non-intrusive, and flexible apparatus to obtain system and process state
US10229017B1 (en) 2015-10-01 2019-03-12 EMC IP Holding Company LLC Resetting fibre channel devices for failover in high availability backup systems
US10235234B2 (en) 2015-12-29 2019-03-19 EMC IP Holding Company LLC Method and apparatus for determining failure similarity in computing device
US10091297B1 (en) 2016-05-18 2018-10-02 EMC IP Holding Company LLC Data processing and data movement in cloud computing environment
US10469585B2 (en) 2016-05-18 2019-11-05 EMC IP Holding Company LLC Data processing and data movement in cloud computing environment
US10372560B2 (en) 2016-06-22 2019-08-06 EMC IP Holding Company LLC Cloud storage write cache management system and method
US20180364949A1 (en) * 2017-06-15 2018-12-20 Hitachi, Ltd. Data storage system and process for data compression of distributed data in a scalable cluster system and computer program for such data storage system
US10860481B2 (en) 2018-01-18 2020-12-08 EMC IP Holding Company LLC Data recovery method, data recovery system, and computer program product
US10860483B2 (en) 2019-04-30 2020-12-08 EMC IP Holding Company LLC Handling metadata corruption to avoid data unavailability

Also Published As

Publication number Publication date
US20210117258A1 (en) 2021-04-22
CN112765111A (en) 2021-05-07

Similar Documents

Publication Publication Date Title
EP3333704B1 (en) Method and apparatus for repairing kernel vulnerability
US11126353B2 (en) Method and apparatus for data copy
US9336001B2 (en) Dynamic instrumentation
JP6960993B2 (en) Data sharing method between applications and web browser
CN107404418B (en) Internet product testing method, device, equipment and storage medium
CN109873735B (en) Performance test method and device for H5 page and computer equipment
CN109831466B (en) Micro-service business processing method and nginx server
US9219800B2 (en) Method and system for a web server transmitting a response to an access request
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN111666497A (en) Application program loading method and device, electronic equipment and readable storage medium
US11200109B2 (en) Method, device and computer program product for processing data
US20190129743A1 (en) Method and apparatus for managing virtual machine
US20200133583A1 (en) Method, apparatus and computer program product for storing data
US8090769B2 (en) Dynamically generating web contents
CN110740138B (en) Data transmission method and device
US20200341653A1 (en) Method, network adapter and computer program product for processing data
CN112764668A (en) Method, electronic device and computer program product for expanding GPU memory
CN113377376A (en) Data packet generation method, data packet generation device, electronic device, and storage medium
CN111460020B (en) Method, device, electronic equipment and medium for resolving message
CN108288135B (en) System compatibility method and device, computer readable storage medium and electronic equipment
US11494100B2 (en) Method, device and computer program product for storage management
CN111831620B (en) Method, apparatus and computer program product for storage management
CN110568994B (en) Logic block device access method and device and electronic device
CN109086066B (en) Application program updating method and device, computer equipment and storage medium
CN107911248B (en) Upgrading method and device

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZHANG, HAOHAN;ZHANG, DEZHENG;LIU, LIANGLIANG;AND OTHERS;SIGNING DATES FROM 20200505 TO 20200518;REEL/FRAME:053126/0914

AS Assignment

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NORTH CAROLINA

Free format text: SECURITY AGREEMENT;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053531/0108

Effective date: 20200818

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053574/0221

Effective date: 20200817

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053573/0535

Effective date: 20200817

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053578/0183

Effective date: 20200817

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

AS Assignment

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0371

Effective date: 20211101

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0371

Effective date: 20211101

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0001

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0001

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060332/0864

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060332/0864

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0106

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0106

Effective date: 20220329