WO2013091167A1 - 日志存储方法及系统 - Google Patents

日志存储方法及系统 Download PDF

Info

Publication number
WO2013091167A1
WO2013091167A1 PCT/CN2011/084255 CN2011084255W WO2013091167A1 WO 2013091167 A1 WO2013091167 A1 WO 2013091167A1 CN 2011084255 W CN2011084255 W CN 2011084255W WO 2013091167 A1 WO2013091167 A1 WO 2013091167A1
Authority
WO
WIPO (PCT)
Prior art keywords
log
key
key value
storage address
log file
Prior art date
Application number
PCT/CN2011/084255
Other languages
English (en)
French (fr)
Inventor
周训淼
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201180003108.0A priority Critical patent/CN103270499B/zh
Priority to PCT/CN2011/084255 priority patent/WO2013091167A1/zh
Publication of WO2013091167A1 publication Critical patent/WO2013091167A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Definitions

  • the present invention relates to the field of information technology, and in particular, to a log storage method and system.
  • a log storage system is included in the communication device, and is used to generate a log file for storage according to a specific operation when the communication device is operated, so that the communication device can be implemented according to the recorded log file when the communication device fails.
  • the traditional log storage system includes a disk system and a file operating system.
  • the file operating system can operate the disk system to store or update or delete log files.
  • a log file can only be processed by a processing process in the file operating system. Processing, that is, when a processing process is processing a log file, the log file needs to be locked to prevent other processing processes from processing the log file.
  • the log file when the log file is written to the disk system, the log file is stored according to the log object, for example, the log corresponding to each user identifier is recorded into a corresponding file, so that one is
  • a log file corresponding to a log object is read or deleted, it can only be processed by one processing process, so that the processing speed of the log file is limited by the log storage mode.
  • the embodiment of the invention provides a log storage method and system, which improves the processing speed of the log file, thereby improving the performance of the log storage system.
  • An embodiment of the present invention provides a log storage method, including:
  • the log file requested by the write request is stored in the disk system according to the storage address of the log file.
  • An embodiment of the present invention provides a log storage system, including:
  • a sequence number generating unit configured to acquire a write request of the log file, and generate a log sequence number corresponding to the write request
  • An address obtaining unit configured to use, as a key, the identifier information of the log object to which the log file requested to be written by the write request belongs, and the log sequence number generated by the sequence number generating unit, and obtain the request by the write request by using the key The storage address of the written log file;
  • a writing unit configured to store, according to a storage address of the log file acquired by the log obtaining unit, a log file requested by the write request to a disk system
  • the disk system is used to store log files in the storage address corresponding to the key.
  • the log file is stored by the Key-Value storage system. Specifically, when the Key-Value storage system receives the write request for obtaining the log file, generates a log sequence number corresponding to the write request, and writes the request.
  • the identification information of the log object to which the log file requested to be written belongs to the log sequence number as a key
  • the storage address of the log file requested to be written by the write request is calculated by the key
  • the write request is requested to be written according to the storage address of the log file.
  • the log files are saved to the disk system.
  • the log file is stored by a conventional storage system, that is, a log object is only corresponding to one log file.
  • the Key-Value storage system is used to store the file, that is, the log object identifier and the dynamic
  • the generated log sequence number is used as a key, so that multiple log files corresponding to one log object can be stored in different storage addresses, so that a log file corresponding to a log object can be processed by multiple processing processes, thereby improving the processing speed of the log file.
  • the Zhizhi storage system improves the performance of the Zhizhi storage system.
  • FIG. 1 is a flowchart of a log storage method according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram showing the relationship between cached log file information and stored log files in the embodiment of the present invention
  • FIG. 3 is a flow chart showing a method for updating log file information stored in a disk system in an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a log storage system according to an embodiment of the present invention
  • FIG. 6 is a schematic structural diagram of another log storage system according to an embodiment of the present invention
  • FIG. 7 is a schematic structural diagram of another log storage system according to an embodiment of the present invention.
  • the embodiment of the present invention provides a log storage method, which mainly stores a log file by using a key-value storage system.
  • the method in this embodiment is a method performed by a Key-Value storage system (ie, a log storage system).
  • the flow chart is shown in Figure 1, including:
  • Step 101 Acquire a write request of the log file, and generate a log sequence number corresponding to the write request.
  • the Key-Value storage system is a system for storing data, that is, a value.
  • Each Value in this embodiment, a log file corresponding to a write request
  • Each Value is calculated by using a Key and a certain policy, and can be simultaneously Operate multiple Values without affecting each other, with high concurrent high performance advantages.
  • the key file is stored in the Key-Value storage system, and the method in this embodiment may be triggered by an interface provided by the device including the Key-Value storage system, or may be included in the pair.
  • the device of the Value storage system When the device of the Value storage system operates, it triggers the storage of the log files generated during the operation.
  • the log sequence number may be generated in an incremental (or decremental) manner. If the log sequence number is generated in an incremental (or decremental) manner, the log is allocated for the current write request. The sequence number is: add (or subtract) m to the log number generated for the last acquired write request, where m is a positive number.
  • the key-value storage system may also generate a log sequence number according to the log object to which the log file requested by the write request belongs. For example, if the write request is a log file corresponding to the request of the user a, the currently generated log sequence number is: Add (or subtract) m to the log sequence number generated by the last write request for user a (write request of log file).
  • Step 102 The identifier information of the log object to which the log file requested to be written by the write request belongs and the log sequence number are used as keys, and the storage address of the log file requested by the write request is obtained by the key calculation.
  • the log file of the same application, etc. can store at least one log object log file, where the identification information of the log object to which the file belongs belongs is information that can uniquely identify a log object, such as identifying a log object by user name and application name.
  • a log file of a type such as domain name (DOMAIN) of a user USER can be identified by "DB_USER_DOMAIN”
  • DB_USER_DOMAIN is a The identification information of the log object.
  • the log object is combined with the log sequence number generated in step 101 as a key, wherein the log sequence number can be regarded as a key value, and when the storage address is calculated by the key, the Key-Value storage system can pass the key through the hash.
  • the hash method is calculated and can be calculated by other calculations.
  • Step 103 Store the log file requested by the write request to the disk system of the Key-Value storage system according to the storage address of the log file.
  • the key file is stored by the Key-Value storage system.
  • the Key-Value storage system receives the write request for obtaining the log file, the log sequence corresponding to the write request is generated, and The identification information of the log object to which the log file requested by the write request belongs and the log sequence number are used as keys, and the storage address of the log file requested by the write request is calculated by the key, and finally the request address is written according to the storage address of the log file.
  • the log file requested to be written is stored in the disk system.
  • the log file is stored by a conventional storage system, that is, a log object is only corresponding to one log file.
  • the log file is stored by the Key-Value storage system, that is, the log object identifier and the dynamic generation are generated.
  • the log sequence number is used as a key, so that multiple log files corresponding to one log object can be stored to different storage addresses, so that a log file corresponding to a log object can be processed by multiple processing processes, thereby improving the processing speed of the log file, thereby Improve the performance of your storage system.
  • the Key-Value storage system may perform the above steps 101 to 103, and may first cache the log objects stored in the disk system in the memory.
  • the log file information, the log file information may include the identification information of the target object, the maximum key value and the minimum key value of the log file corresponding to the log object (that is, the generated log sequence number), and the log file corresponding to the cached log object
  • the information is periodically stored in the disk system of the Key-Value storage system, that is, the persistence process of the log file information.
  • the log information is combined with the assigned log sequence number as a key, and the log sequence number can be regarded as a corresponding key value.
  • the maximum key value of the log file corresponding to a log object is constantly changing, and the maximum key value may indicate the Key-Value storage system.
  • the log file will be deleted, and the minimum key value of the log file corresponding to a log object will change with the storage time.
  • the minimum key value can indicate the next time in the disk system of the Key-Value storage system. Delete the location of the log file. If the log file corresponding to the log object is stored in the disk system, the maximum key value corresponding to the log object may be updated according to the storage address corresponding to the added log file, that is, the storage address corresponding to the added log file is updated. If the log file corresponding to a certain target object in the disk system is deleted, the minimum key value corresponding to the target object may be updated according to the storage address corresponding to the deleted log file, that is, the log file is updated to be larger than the deleted log file. The storage address corresponds to the minimum key value of the key value.
  • the minimum key value of the log file corresponding to a log object is constantly changing, and the minimum key
  • the value can indicate the location of the next time the log file is to be inserted in the disk system of the Key-Value storage system.
  • the maximum key value of the log file corresponding to a log object changes according to the storage time. The maximum key value indicates the location of the next log file to be deleted in the disk system of the Key-Value storage system.
  • the minimum key value corresponding to the log object may be updated according to the storage address corresponding to the added log file, that is, the storage address corresponding to the added log file is updated.
  • the maximum key value corresponding to the log object may be updated according to the storage address corresponding to the deleted log file, that is, the storage is smaller than the deleted log file. The address corresponds to the maximum key value of the key value.
  • the log file information corresponding to each log object needs to be stored in the disk system, because the maximum key value and the minimum key value included therein are included. It is constantly changing as the Key-Value storage system continuously receives write requests. This requires the Key-Value storage system to update the log file information corresponding to the corresponding log object when receiving each write request.
  • the log file information is cached first, so that each time the log file information is updated, the disk system may not be accessed, and the update is performed directly in the cache, thereby improving the update speed; and in order to enhance the reliability of the log file information. Sex, reduce the workload during fault recovery, need to store the cached log file information periodically (for example, at certain intervals or at a certain frequency interval) to the disk system; and the log file information can be in the disk system Stored as Log Meta Data.
  • the log file information such as the identifier of the log object, the maximum key value n, and the minimum key value 1 are cached in the memory, and the target object is stored in the storage address corresponding to the n keys in the disk system.
  • the fault recovery can be implemented as follows:
  • Step 104 The first key value corresponding to the first log object corresponding to the location of the disk system to be inserted in the disk system is read from the disk system.
  • the application in the failure is restarted next time or its service.
  • the first key value can be read from the log file information corresponding to the log object stored in the Key-Value storage system.
  • Step 105 sequentially read, in the disk system, data stored in a storage address corresponding to one round of N key values greater than or smaller than the first key value, where N is a positive integer.
  • the log sequence number is generated in step 101 in an incremental manner, it is necessary to sequentially read data stored in the corresponding storage address of the N key values greater than the first key value according to the order of the key values, such as If the first key value is 0, the data corresponding to the key value 1 to N is read; if the generated sequence number is generated in a decreasing manner, the N key values corresponding to the first key value are sequentially read and stored.
  • the data stored in the address, where N can be preset in the disk system according to the actual situation, generally 10 or 100. If the data stored in the storage address corresponding to the N key values is empty, it is considered that no log file is stored in the storage system when the failure occurs, and the update system may not be used.
  • the first key value stored in the system ends the flow; if at least one of the storage addresses corresponding to the N key values read is not empty, it is considered that the system is positive when the fault occurs.
  • Step 106 sequentially read data stored in a storage address corresponding to at least one round of N key values greater than or less than N key values, until the current round of N key values correspond to data stored in the storage address. Is empty.
  • step 101 If the log sequence number is generated in step 101, the data is stored in an incremental manner, and the data stored in the storage address corresponding to the N key values is sequentially read, for example, the first key value is used. 0, in step 105, reading data corresponding to a round of key values 1 to N, then reading data corresponding to at least another round of key values N+1 to 2N in this step, if another round of N If the data corresponding to the key values are all empty, step 107 is performed. If the data stored in at least one of the storage addresses is not empty, step 106 is continued. If the log sequence number is generated in step 101, the data stored in the corresponding storage address of the N key values is sequentially read in this step.
  • the first key corresponding to the first log object is updated by using a key value corresponding to a storage address of a non-empty data that is recently read, among the storage addresses corresponding to the N key values read in the previous round of the current round. value.
  • the data stored in the storage address corresponding to the current round key value 2N+1 to 3N is empty, and the storage address corresponding to the previous round key value N+1 to 2N is stored in the storage address corresponding to the key value N+7.
  • the stored data is not empty, and from the storage address, the data stored in the subsequent storage address is empty, and is updated to N+7 when the first key value is updated.
  • the log file information in the cache is not stored in the disk system in time, and the log file and the log file currently stored in the disk system can be used.
  • the log file corresponding to the storage address is used to update the log file information.
  • the Key-Value storage system may, when failing to perform the above step 103, associate the storage address calculated in step 102 with information of the key (such as a key value, and a key included)
  • the information such as the identity of the target object is stored in the list of keys that failed to operate in the disk system. It should be noted that during the process of storing the log file, the log file information in the cache is not stored in the disk system due to the underlying system, or the log file is too large due to the timeout of the log file to be stored. Saved to the disk system without updating the log file information, in the process of failure recovery:
  • the steps 105 to 107 may not be performed first, but first, whether the key list corresponding to the first log object is stored in the key list of the operation failure in the disk system is greater than or a key value smaller than the first key value. If not, the description is not a failure that occurs when the log file is stored, and the above steps 105 to 107 are continued; if yes, it indicates that a failure occurs during the storage of the log file, and the update may be performed.
  • the first key value is the key value of the lookup, and after the key value is updated, steps 105 through 107 can be performed with the updated first key value.
  • the Key-Value storage system can also read the third key value indicating the location of the log file to be deleted in the disk system, and find the disk system. Whether the key value corresponding to the first log object and smaller or larger than the third key value is stored in the key list in which the operation fails, and if so, the third key value is updated to find the key value, if not, then The third key value will be updated.
  • step 101 If the log sequence number is generated in increments in step 101, it is necessary to find whether the key value greater than the first key value is stored in the key list in which the operation fails. The key value of the third key value. If the log sequence number generated in step 101 is generated in a descending manner, it is necessary to find whether the key value smaller than the first key value is stored in the key list of the failed operation; and whether the search key list needs to be stored in the key list is greater than the first The key value of the three-key value.
  • the log file information can be updated by the log file stored in the disk system, the key value corresponding to the storage address of the log file, and the key list of the operation failure.
  • the following steps may be performed to operate the files in the disk system of the Key-Value storage system, such as Read or delete operations:
  • Step 201 Acquire an operation request of the log file, where the operation request includes the identifier information of the second log object and the second key value.
  • the operation flow of the log file in this embodiment may be triggered by an interface provided by a device including a Key-Value storage system, wherein the operation request of the log file may be reading or deleting the log file.
  • the second key value included in the operation request may be a log sequence number generated by the system when the log file corresponding to the second log object is stored.
  • Step 202 The identification information corresponding to the second log and the second key value are used as keys, and the storage address of the log file requested by the operation request is calculated.
  • Step 203 Perform a corresponding operation on the log file stored in the storage address of the request operation according to the operation request.
  • the log file stored in the storage address may be deleted, and the log file information stored in the system may be updated.
  • the identifier of the log object to be operated and the key value of the storage address corresponding to the storage log file are carried in the operation request, so that the corresponding log file can be found and performed. The corresponding operation.
  • first key value, second key value and third key value do not indicate the order relationship, but are to explain different key values.
  • first log object and the second log object do not indicate a sequential relationship, but to illustrate different log objects.
  • the embodiment of the present invention further provides a log storage system, that is, a Key-Value storage system, and a schematic structural diagram is shown in FIG. 5, including:
  • the sequence number generating unit 10 is configured to obtain a write request of the log file, generate a log sequence number corresponding to the write request, and generate a log sequence number by incrementing (or decrementing);
  • the address obtaining unit 11 is configured to use the identifier information of the log object to which the log file requested to be written by the write request and the log sequence number generated by the sequence number generating unit 10 as keys, and calculate the write request by using the key
  • the storage address of the log file requested to be written, specifically, the key may be calculated by a hash hash method, and may also be calculated by other calculations;
  • the writing unit 12 is configured to store the log file requested by the write request to the disk system 13 according to the storage address of the log file acquired by the log obtaining unit;
  • the disk system 13 is configured to store the log file in the storage address corresponding to the key.
  • the sequence number generating unit 10 when the sequence number generating unit 10 receives the write request for acquiring the log file, generates a log sequence number corresponding to the write request, and obtains an address acquisition list.
  • the element 11 uses the identification information of the log object to which the log file requested to be written by the write request and the log sequence number as keys, and calculates the storage address of the log file requested by the write request by the key calculation, and finally writes the unit 12 according to the log file.
  • the storage address stores the log file requested by the write request to the disk system 13.
  • the log file is stored by a conventional storage system, that is, a log object is only corresponding to one log file.
  • the key file is stored in the Key-Value storage system, that is, the log object and the dynamic generation are generated.
  • the log sequence number is used as a key, so that multiple log files corresponding to one log object can be stored to different storage addresses, so that a log file corresponding to a log object can be processed by multiple processing processes, thereby improving the processing speed of the log file, thereby Improve the performance of your storage system.
  • the log storage system may include the following
  • the buffer unit 14 the storage unit 15, the key value reading unit 16, the data reading unit 17, the cyclic reading unit 18, the updating unit 19, the list storage unit 20, and the searching unit 21 may be further included. , among them:
  • the cache unit 14 is configured to cache log file information corresponding to the log object in the disk system 13, where the log file information includes identifier information of the log object, a maximum key value and a minimum key value of the log file corresponding to the log object ( That is, the log number generated by the sequence number generating unit 10, the maximum key value or the minimum key value is used to indicate the location of the disk system 13 to be inserted into the log file.
  • the maximum key value cached by the cache unit 14 may indicate the location of the log file system to be inserted next time in the log storage system.
  • the minimum key value may indicate the location of the log file to be deleted next in the disk system 13 of the log storage system. If the sequence number generating unit 10 generates the log sequence number for the write request in a descending manner, the minimum key value cached by the cache unit 14 may indicate the location of the log file to be inserted in the log system 13 next time, and the maximum key value. The location of the log file to be deleted next time in the disk system 13 of the storage system can be indicated.
  • the storage unit 15 is configured to store the log file information corresponding to the log object buffered by the cache unit 14 periodically (for example, at a certain time interval or at a certain frequency interval) into the disk system, and the log file may be The information is stored as log metadata.
  • the key value reading unit 16 is configured to read, from the disk system 13, a first key value corresponding to the first log object for indicating a location of the disk system to be inserted into the log.
  • the data reading unit 17 is configured to store in the disk system 13 a storage address corresponding to one round of N key values that are larger or smaller than the first key value read by the key reading unit 16 Data, the N is a positive integer. If the sequence number generating unit 10 generates the log sequence number in an incremental manner, the data reading unit 17 reads the data corresponding to the N key values of the first key value, if the sequence number generating unit 10 is generated in a decreasing manner. Then, the data reading unit 17 reads data corresponding to N key values smaller than the first key value.
  • the data reading unit 17 sequentially reads in the disk system 13 a round larger than the first key value read by the key value reading unit 16.
  • the data stored in the storage address corresponding to one round of N key values of the first key value read by the unit 16 is taken.
  • the cyclic reading unit 18 is configured to: if the data storage unit 17 reads the N key value corresponding storage addresses of the round, the data stored in at least one of the storage addresses is non-empty, and the sequential reading is greater than or Data stored in a storage address corresponding to at least one of the N key values of the N key values.
  • the cyclic read unit 18 sequentially stores the memory addresses corresponding to the other at least one round of the N key values that are greater than the N key values. If the sequence number generating unit 10 generates the log sequence number for the write request, the cyclic reading unit 18 sequentially reads the storage addresses corresponding to the other at least one round of N key values of less than N key values. Data stored inside.
  • the updating unit 19 is configured to read, by the cyclic reading unit 18, the current data of the N key values corresponding to the storage address is empty, and use the N read in the previous round of the current round.
  • the key value corresponding to the storage address of a recently read non-null data updates the first key value corresponding to the first log object.
  • the list storage unit 20 is configured to: if the write unit 12 fails to save the log file requested by the write request to the disk system 13 according to the storage address of the log file, the calculated storage address corresponding key The information is stored in the list of keys in the disk system 13 where the operation failed.
  • the searching unit 21 is configured to search for a list of keys in the disk system 13 that failed to operate. a key value corresponding to the first log object and greater than or smaller than a first key value read by the key value reading unit 16, and if not, notifying the data reading unit 17 to read a round of N The data stored in the storage address corresponding to the key value.
  • the search unit 21 searches for a key value that is greater than the first key value read by the key value reading unit 16 in the key list that fails to operate; If the sequence number generating unit 10 generates the log sequence number for the write request in a descending manner, the search unit 21 searches for a key value in the key list that is failed in operation that is smaller than the first key value read by the key value reading unit 16.
  • the log file can be written into the disk system 13 by the sequence number generating unit 10, the address obtaining unit 11, and the writing unit 12. If the writing operation of the writing unit 12 fails, the list storage unit 21 can be passed. The information of the corresponding key of the failed log file is stored in the list of keys that failed to operate.
  • the log file information may be cached first by the cache unit 14, so that each time the log file information is updated, the disk system 13 may not be accessed, and the update is performed directly in the cache, thereby improving the update speed;
  • the storage unit 15 is required to periodically store the cached file information in the disk system 13.
  • the cache file information cached by the cache unit 14 is not stored in the disk system 13 in time, and the key value reading unit 16, the data reading unit 17, and the cyclic reading unit may be used. 18 and updating unit 19 to update the file information stored in the disk system. If the data stored in the storage address corresponding to the N key values read by the data reading unit 17 is empty, the first key value may not be updated. And after the key value reading unit 16 reads the first key value, the searching unit 20 can search whether the key value greater than or smaller than the first key value is stored in the key list that fails the operation, and if so, the update unit 19 can be notified.
  • the first key value is updated to the searched key value, and if not, the first key value is continuously updated by the data reading unit 17, the cyclic reading unit 18, and the updating unit 19.
  • the search unit 20 can also search whether the key list corresponding to the first log object and is smaller or larger than the third key value is stored in the key list of the operation failure in the disk system 13, and if so, the third key value is updated.
  • the searched key value if not, does not update the third key value, which can indicate the location of the log file to be deleted in the disk system 13.
  • the update unit 19 is further configured to: after the log file corresponding to the log object is stored in the disk system, update the maximum key corresponding to the log object according to the storage address corresponding to the added log file. The value is updated to the key value corresponding to the storage address of the added log file; the update unit 19 is further configured to: when the file corresponding to a log object in the disk system is deleted, the storage corresponding to the deleted log file may be used. The address updates the minimum key value corresponding to the log object, that is, the minimum key value corresponding to the key value corresponding to the storage address of the deleted log file.
  • the update unit 19 can also be used to store the log file corresponding to a certain log object to the disk system according to the storage address corresponding to the added log file.
  • the minimum key value corresponding to the log object is updated, that is, the key value corresponding to the storage address of the added log file is updated; the update unit 19 is further configured to delete the log file corresponding to a log object in the disk system according to the deletion.
  • the storage address corresponding to the log file updates the maximum key value corresponding to the log object, that is, the update is smaller than the maximum key value of the key value corresponding to the storage address of the deleted log file.
  • the log storage system may include: an operation request obtaining unit 30, an operation address obtaining unit 31, and an operation unit 32, in addition to the structure shown in FIG. :
  • the operation request obtaining unit 30 is configured to obtain an operation request (such as a read or delete request) of the log file, where the operation request includes the identifier information of the second log object and the second key value, where the second key value may be
  • the log file corresponding to the log file corresponding to the second log object is stored in the log number generated by the sequence number generating unit 10.
  • the operation address obtaining unit 31 is configured to use the identifier information corresponding to the second log and the second key value as the key in the operation request acquired by the operation request acquiring unit 30, and calculate a log file of the operation operation requested by the operation request.
  • the operation address obtaining unit 31 can use the same method used by the address obtaining unit 11 to calculate the storage address in the process of storing the log file, so that the corresponding log file can be found.
  • the operation unit 32 is configured to perform a corresponding operation on the log file stored in the storage address of the request operation according to the operation request acquired by the operation request acquisition unit 31.
  • the operation unit 32 may delete the file stored in the storage address, and may update the log file information stored in the system.
  • the operation request needs to carry the identifier of the log object to be operated and the key value of the storage address corresponding to the storage log file, so that the corresponding log file can be found and correspondingly operating.
  • the program may be stored in a computer readable storage medium, and the storage medium may include: ROM, RAM, disk or CD, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种日志存储方法及系统,应用于信息技术领域。一种日志存储方法包括:获取日志文件的写请求,生成写请求对应的日志序号;将写请求所请求写入的日志文件所属日志对象的标识信息与日志序号作为键,并通过键计算得到写请求所请求写入的日志文件的存储地址;根据日志文件的存储地址将写请求所请求写入的日志文件储存到磁盘系统中。实现了日志文件在Key-Value存储系统中的存储。

Description

日志存储方法及系统
技术领域
本发明涉及信息技术领域, 特别涉及日志存储方法及系统。
背景技术
为了保证故障恢复,在通信设备中都会包括日志存储系统, 用于在进行通 信设备的操作时,根据具体的操作生成日志文件进行储存, 这样在通信设备故 障时就可以根据记录的日志文件来实现故障恢复。传统的日志存储系统包括磁 盘系统和文件操作系统,文件操作系统可以对磁盘系统进行操作来储存或更新 或删除日志文件,且在同一时间一个日志文件只能被文件操作系统中的一个处 理进程来进行处理, 即当一个处理进程正处理一个日志文件时, 该日志文件需 要被加锁来防止其它处理进程处理该日志文件。
上述现有的日志存储系统中在写入日志文件到磁盘系统时,是按照日志对 象来储存日志文件的,比如将每个用户标识对应的日志记录成相应的一个曰志 文件, 这样在对一个日志对象对应的日志文件进行读取或删除操作时, 只能由 一个处理进程进行处理, 使得对日志文件的处理速度受到日志存储方式的限 制。
发明内容
本发明实施例提供日志存储方法及系统,提高对日志文件的处理速度,从 而提升日志存储系统的性能。
本发明实施例一方面提供一种日志存储方法, 包括:
获取日志文件的写请求, 生成所述写请求对应的日志序号;
将所述写请求所请求写入的日志文件所属日志对象的标识信息与所述日 志序号作为键,并通过所述键计算得到所述写请求所请求写入的日志文件的存 储地址;
根据所述日志文件的存储地址将所述写请求所请求写入的日志文件储存 到磁盘系统中。
本发明实施例一方面提供一种日志存储系统, 包括:
序号生成单元, 用于获取日志文件的写请求, 生成所述写请求对应的日志 序号; 地址获取单元,用于将所述写请求所请求写入的日志文件所属日志对象的 标识信息与所述序号生成单元生成的日志序号作为键,并通过所述键计算得到 所述写请求所请求写入的日志文件的存储地址;
写入单元,用于根据所述日志获取单元获取的日志文件的存储地址将所述 写请求所请求写入的日志文件储存到磁盘系统中;
磁盘系统, 用于在键对应的存储地址内储存日志文件。
本实施例的日志存储方法中, 通过 Key- Value存储系统来储存日志文件, 具体地, 当 Key- Value存储系统接收到获取日志文件的写请求, 生成写请求对 应的日志序号,并将写请求所请求写入的日志文件所属日志对象的标识信息与 日志序号作为键, 通过键计算得到写请求所请求写入的日志文件的存储地址, 最后根据日志文件的存储地址将写请求所请求写入的日志文件储存到磁盘系 统中。和现有技术中通过传统的存储系统来储存日志文件, 即一个日志对象只 对应一个日志文件相比, 本发明实施例中通过 Key- Value存储系统来储存曰志 文件, 即将日志对象标识与动态生成的日志序号作为键,使得一个日志对象对 应的多个日志文件可以储存到不同的存储地址,这样可以通过多个处理进程来 处理一个日志对象对应的日志文件,提高对日志文件的处理速度,从而提升曰 志存储系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付 出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种日志存储方法的流程图;
图 2 是本发明实施例中緩存的日志文件信息与储存的日志文件之间的关 系结构示意图;
图 3 是本发明实施例中对磁盘系统中储存的日志文件信息的更新方法流 程图;
图 4是本发明实施例中一种日志操作方法的流程图;
图 5是本发明实施例提供的一种日志存储系统的结构示意图; 图 6是本发明实施例提供的另一种日志存储系统的结构示意图; 图 7是本发明实施例提供的另一种日志存储系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明实施例提供一种日志存储方法, 主要是通过键 -数值 ( Key-Value ) 存储系统来储存日志文件, 本实施例的方法是 Key-Value存储系统(即日志存 储系统) 所执行的方法, 流程图如图 1所示, 包括:
步骤 101 , 获取日志文件的写请求, 生成写请求对应的日志序号。
可以理解, Key- Value存储系统是用来储存数据即 Value的系统,每个 Value (本实施例中为一个写请求对应的日志文件) 的存储地址是通过 Key和一定 的策略计算得到, 可以同时对多个 Value进行操作而互不影响, 具有高并发高 性能优势。
本实施例中釆用 Key- Value存储系统来对日志文件进行储存, 且本实施例 的方法流程可以是用户通过包括 Key- Value存储系统的设备提供的界面来触 发, 也可以在对包括 Key-Value存储系统的设备进行操作时, 触发对操作过程 中生成的日志文件进行的储存。
当 Key- Value存储系统获取了日志文件的写请求后, 可以按照递增(或递 减)的方式生成日志序号, 如果以递增(或递减)的方式来生成日志序号, 则 为当前写请求分配的日志序号即为:在为上次获取的写请求生成的日志序号的 基础上加 (或减) m, 这里 m为正数。 Key- Value存储系统也可以根据写请求 所请求写入的日志文件所属日志对象来生成日志序号,比如写请求是请求写入 用户 a对应的日志文件, 则当前生成的日志序号即为: 在为上次获取的关于用 户 a的写请求(日志文件的写请求)生成的日志序号基础上加 (或减) m。
步骤 102, 将写请求所请求写入的日志文件所属日志对象的标识信息与日 志序号作为键, 并通过键计算得到写请求所请求写入的日志文件的存储地址。
在 Key- Value存储系统中用日志对象来区分不同用户 (或不同类型, 或不 同应用等)的日志文件, 且可以储存至少一个日志对象的日志文件, 这里曰志 文件所属日志对象的标识信息是能唯一标识一个日志对象的信息,比如通过用 户名和应用名来标识一个日志对象, 则数据库(Data Base, DB ) 中某一用户 USER 的一类比如域名 (DOMAIN ) 类型对应的所有日志文件都可以用 "DB— USER— DOMAIN" 来标识, 而 DB— USER— DOMAIN即为一个日志对象 的标识信息。
本发明实施例中以日志对象和步骤 101 中生成的日志序号结合起来作为 键, 其中该日志序号可以认为是键值, 在通过键计算存储地址时, Key- Value 存储系统可以将键通过哈希散列方法进行计算, 还可以通过其它计算进行计 算。
步骤 103 , 根据日志文件的存储地址将写请求所请求写入的日志文件储存 到 Key- Value存储系统的磁盘系统中。
可见, 本实施例的日志存储方法中, 通过 Key- Value存储系统来储存曰志 文件, 具体地, 当 Key- Value存储系统接收到获取日志文件的写请求, 生成写 请求对应的日志序号,并将写请求所请求写入的日志文件所属日志对象的标识 信息与日志序号作为键,通过键计算得到写请求所请求写入的日志文件的存储 地址,最后根据日志文件的存储地址将写请求所请求写入的日志文件储存到磁 盘系统中。 和现有技术中通过传统的存储系统来储存日志文件, 即一个日志对 象只对应一个日志文件相比, 本发明实施例中通过 Key- Value存储系统来储存 日志文件, 即将日志对象标识与动态生成的日志序号作为键,使得一个日志对 象对应的多个日志文件可以储存到不同的存储地址,这样可以通过多个处理进 程来处理一个日志对象对应的日志文件,提高对日志文件的处理速度,从而提 升曰志存储系统的性能。
在一个具体的实施例中, 为了对磁盘系统中的日志文件的方便管理, Key-Value存储系统除了执行上述步骤 101到 103外, 还可以先在内存中緩存 磁盘系统中储存的日志对象对应的日志文件信息,该日志文件信息可以包括曰 志对象的标识信息、 日志对象对应的日志文件的最大键值和最小键值 (即上述 生成的日志序号), 并将緩存的日志对象对应的日志文件信息周期性地储存到 Key-Value存储系统的磁盘系统中, 即日志文件信息的持久化过程。 由于本发明实施例中是将日志对象的标识信息与分配的日志序号结合起 来作为键, 则该日志序号则可以认为是对应的键值,如果在上述步骤 101中为 写请求生成日志序号时以递增方式进行生成, 随着 Key- Value存储系统不断地 获取日志文件的写请求,一个日志对象对应的日志文件的最大键值是不断变化 的, 且该最大键值可以指示 Key- Value存储系统的磁盘系统中下一次待插入曰 志文件的位置。 为了使得 Key-Value存储系统有足够的空间来储存新的日志文 件, 当系统中储存日志文件对应的日志文件的储存时间超过一定阔值, 或该日 志文件对应保护的业务逻辑或事务已经执行完成, 就会删除该日志文件, 就会 使得一个日志对象对应的日志文件的最小键值随着储存时间的变化而变化,则 该最小键值可以指示 Key- Value存储系统的磁盘系统中下一次待删除日志文件 的位置。 其中, 如果将某一个日志对象对应的日志文件储存到磁盘系统后, 可 以根据增加的日志文件对应的存储地址更新该日志对象对应的最大键值,即更 新为该增加的日志文件的存储地址对应的键值;如果删除磁盘系统中某一个曰 志对象对应的日志文件时,可以根据删除的日志文件对应的存储地址更新该曰 志对象对应的最小键值,即更新为大于该删除的日志文件的存储地址对应键值 的最小键值。
而如果为写请求生成日志序号时以递减方式生成, 随着 Key- Value存储系 统不断地获取日志文件的写请求,一个日志对象对应的日志文件的最小键值是 不断变化的, 且该最小键值可以指示 Key- Value存储系统的磁盘系统中下一次 待插入日志文件的位置。且一个日志对象对应的日志文件的最大键值随着储存 时间的变化而变化, 则该最大键值可以指示 Key- Value存储系统的磁盘系统中 下一次待删除日志文件的位置。 其中, 如果将某一个日志对象对应的日志文件 储存到磁盘系统后,可以根据增加的日志文件对应的存储地址更新该日志对象 对应的最小键值, 即更新为该增加的日志文件的存储地址对应的键值; 如果删 除磁盘系统中某一个日志对象对应的日志文件时,可以根据删除的日志文件对 应的存储地址更新该日志对象对应的最大键值,即更新为小于该删除的日志文 件的存储地址对应键值的最大键值。
且本实施例中, 为了管理磁盘系统储存的日志文件,还需要在磁盘系统中 储存每个日志对象对应的日志文件信息,由于其中包括的最大键值和最小键值 是随着 Key- Value存储系统不断接收写请求而不断变化, 这就需要 Key- Value 存储系统在接收到每个写请求时, 更新相应日志对象对应的日志文件信息。本 实施例中将日志文件信息先进行緩存, 这样在每次更新日志文件信息时, 可以 不用去访问磁盘系统, 为直接在緩存中进行更新, 提高了更新速度; 而为了增 强日志文件信息的可靠性, 减少故障恢复时的工作量, 需要将緩存的日志文件 信息周期性(比如以一定的时间间隔或以一定的频率间隔)地储存到磁盘系统 中; 且可以将日志文件信息在磁盘系统中储存成日志元数据 ( Log Meta Data )。
例如图 2所示,在内存中緩存着日志对象的标识、 最大键值 n和最小键值 1等日志文件信息, 则在磁盘系统中 n个键对应的存储地址内分别储存着该曰 志对象的日志文件 1到 n, 其中日志文件 1到 n对应的键为该日志对象的标识 与曰志序号的结合, 而日志序号即为从最小键值 1到最大键值 n。
参考图 3所示, 在另一具体的实施例中, Key- Value存储系统将每个曰志 对象对应的日志文件信息储存到磁盘系统后,可以按照如下步骤来实现故障恢 复:
步骤 104, 从磁盘系统中读取第一日志对象对应的用于指示磁盘系统中待 插入日志的位置的第一键值。
如果包括本实施例中 Key-Value存储系统的设备中应用程序等发生故障 时, 比如因断电或者其它系统底层的原因导致故障或设备停机, 则在该故障的 应用程序在下次重启或其业务被其他节点接管时, 可以从该 Key- Value存储系 统储存的日志对象对应的日志文件信息中读取第一键值。
步骤 105 ,在磁盘系统中顺序读取大于或小于第一键值的一轮 N个键值所 对应的存储地址内储存的数据, 其中, N为正整数。
可以理解, 如果在步骤 101生成日志序号时是按照递增的方式生成的, 则 这里需要根据键值的顺序, 依次读取大于第一键值的 N个键值对应存储地址 内储存的数据, 比如第一键值为 0 , 则读取键值 1到 N所对应的数据; 如果生 成曰志序号时是按照递减的方式生成的, 则依次读取小于第一键值的 N个键 值对应存储地址内储存的数据, 其中 N可以根据实际情况预置在磁盘系统中, 一般为 10或 100等。 且若读取的一轮 N个键值对应存储地址内储存的数据都 为空, 则认为在故障发生时没有日志文件储存到存储系统中, 可以不用更新系 统中储存的该第一键值, 结束流程; 若读取的一轮 N个键值对应的存储地址 中, 至少有一个存储地址内储存的数据非空, 则认为在故障发生时, 系统中正 并发地写入日志文件, 但是并不是先开始写的日志文件最先写入磁盘系统中, 而有些后开始写的日志文件最先写入磁盘系统中,则需要更新系统中储存的第 一键值, 并执行步骤 106。
步骤 106, 顺序读取大于或小于 N个键值的另外至少一轮的 N个键值所 对应的存储地址内储存的数据, 直到当前一轮的 N个键值对应存储地址内储 存的数据都为空。
如果在步骤 101生成日志序号时是按照递增的方式生成的,则这里需要才艮 据键值的顺序, 依次读取大于上述 N个键值对应存储地址内储存的数据, 比 如第一键值为 0, 在步骤 105中读取了一轮键值 1到 N所对应的数据, 则在该 步骤中读取至少另一轮键值 N+1到 2N所对应的数据, 如果另一轮的 N个键 值对应的数据都为空, 则执行步骤 107 , 如果至少有一个存储地址内储存的数 据非空, 则继续执行步骤 106。 如果在步骤 101生成日志序号时是按照递减的 方式生成的, 则本步骤中依次读取小于上述 N个键值对应存储地址内储存的 数据。
步骤 107, 用当前一轮的前一轮中读取的 N个键值对应的存储地址中, 最 近读取的一个非空数据的存储地址对应的键值更新第一日志对象对应的第一 键值。
比如当前一轮键值 2N+1到 3N对应的存储地址内储存的数据都为空, 而 前一轮键值 N+1到 2N对应的存储地址中, 键值 N+7对应的存储地址内储存 的数据非空, 且从该存储地址起, 之后的存储地址内储存的数据都为空, 则在 更新第一键值时更新为 N+7。
可见, 如果包括本实施例中 Key- Value存储系统的设备中应用程序等发生 故障, 导致緩存中的日志文件信息没有及时储存到磁盘系统中, 可以通过磁盘 系统中当前储存的日志文件及日志文件的存储地址对应的键值来更新日志文 件信息。
在其它的具体实施例中, Key- Value存储系统当在执行上述步骤 103失败 时, 可以将步骤 102中计算的存储地址对应键的信息(比如键值, 和键中包含 的曰志对象的标识等信息)储存到磁盘系统内操作失败的键列表中。 需要说明的是,在存储日志文件的过程中, 不一定是由于系统底层导致緩 存中的日志文件信息没有储存到磁盘系统中,也可能由于需要储存的日志文件 太大超时等原因导致日志文件没有储存到磁盘系统中,而没有更新日志文件信 息, 则在故障恢复的过程中:
当在上述步骤 104 中读取了第一键值后, 可以先不执行步骤 105到 107 而是先查找磁盘系统中操作失败的键列表中是否储存有与第一日志对象对应 的, 且大于或小于该第一键值的键值, 如果不是, 说明并不是在日志文件的储 存时发生的故障, 继续执行上述步骤 105到 107; 如果是, 说明在日志文件的 储存时发生故障, 可以更新该第一键值为该查找的键值, 且在更新完键值后, 可以以更新后的第一键值来执行步骤 105到 107。 且 Key- Value存储系统除了 可以更新能指示磁盘系统中待插入日志文件的位置的第一键值,还可以读取指 示磁盘系统中待删除日志文件的位置的第三键值,并查找磁盘系统中操作失败 的键列表中是否储存与第一日志对象对应的, 且小于或大于该第三键值的键 值,如果是, 更新该第三键值为查找的键值,如果不是,则不会更新第三键值。
其中如果在步骤 101生成日志序号时是以递增方式生成,则这里需要查找 操作失败的键列表中是否储存大于该第一键值的键值;而需要查找操作失败的 键列表中是否储存小于该第三键值的键值。如果在步骤 101生成日志序号时是 以递减方式生成,则这里需要查找操作失败的键列表中是否储存小于该第一键 值的键值; 而需要查找操作失败的键列表中是否储存大于该第三键值的键值。
可见, 本实施例中可以通过储存在磁盘系统中的日志文件、 日志文件的存 储地址对应的键值及操作失败的键列表来更新日志文件信息。
参考图 4所示, Key- Value存储系统在执行完上述步骤 102到 103中储存 曰志文件后, 可以按照如下的步骤来对 Key- Value存储系统的磁盘系统中的曰 志文件进行操作, 比如读取或删除等操作:
步骤 201, 获取日志文件的操作请求, 在操作请求中包括第二日志对象的 标识信息和第二键值。
本实施例中对日志文件的操作流程可以是通过包括 Key- Value存储系统的 设备提供的界面来触发,其中日志文件的操作请求可以是日志文件的读取或删 除请求,而操作请求中包括的第二键值可以是在该第二日志对象对应的日志文 件进行储存时系统为之生成的日志序号。
步骤 202, 将第二日志对应的标识信息和第二键值作为键, 计算得到操作 请求所请求操作的日志文件的存储地址。
在进行计算存储地址时,可以按照储存该日志文件过程中进行计算存储地 址时所使用的方法一致, 这样才能查找到相应的日志文件。
步骤 203 , 根据操作请求对请求操作的存储地址内储存的日志文件进行相 应操作。
其中,如果操作请求是删除请求, 则可以将该存储地址内储存的日志文件 删除, 且可以更新系统中储存的日志文件信息。
可见, 本实施例中如果需要对日志文件进行操作时, 需要在操作请求中携 带所要操作的日志对象的标识和储存日志文件的存储地址对应键的键值,这样 才能找到相应的日志文件并进行相应的操作。
需要说明的是, 上述提到的第一键值、 第二键值和第三键值并不指示顺序 关系, 而是为了说明不同的键值。且第一日志对象和第二日志对象也不指示顺 序关系, 而是为了说明不同的日志对象。
本发明实施例还提供一种日志存储系统, 即为 Key- Value存储系统, 结构 示意图如图 5所示, 包括:
序号生成单元 10 , 用于获取日志文件的写请求, 生成所述写请求对应的 日志序号, 可以以递增 (或递减) 的方式来生成日志序号;
地址获取单元 11 , 用于将所述写请求所请求写入的日志文件所属日志对 象的标识信息与所述序号生成单元 10生成的日志序号作为键, 并通过所述键 计算得到所述写请求所请求写入的日志文件的存储地址, 具体地, 可以将键通 过哈希散列方法进行计算, 还可以通过其它计算进行计算;
写入单元 12, 用于根据所述日志获取单元获取的日志文件的存储地址将 所述写请求所请求写入的日志文件储存到磁盘系统 13中;
磁盘系统 13 , 用于在键对应的存储地址内储存日志文件。
本实施例的日志存储系统(即 Key- Value存储系统) 中, 当序号生成单元 10接收到获取日志文件的写请求, 生成写请求对应的日志序号, 地址获取单 元 11将写请求所请求写入的日志文件所属日志对象的标识信息与日志序号作 为键,通过键计算得到写请求所请求写入的日志文件的存储地址, 最后写入单 元 12根据日志文件的存储地址将写请求所请求写入的日志文件储存到磁盘系 统 13中。 和现有技术中通过传统的存储系统来储存日志文件, 即一个日志对 象只对应一个日志文件相比, 本发明实施例中通过 Key- Value存储系统来储存 曰志文件, 即将日志对象与动态生成的日志序号作为键,使得一个日志对象对 应的多个日志文件可以储存到不同的存储地址,这样可以通过多个处理进程来 处理一个日志对象对应的日志文件,提高对日志文件的处理速度,从而提升曰 志存储系统的性能。
参考图 6所示,在一个具体的实施例中, 日志存储系统除了可以包括如图
5所示的结构外, 还可以包括: 緩存单元 14、 储存单元 15、 键值读取单元 16、 数据读取单元 17、 循环读取单元 18、 更新单元 19、 列表储存单元 20和查找 单元 21 , 其中:
緩存单元 14,用于緩存所述磁盘系统 13中日志对象对应的日志文件信息, 所述日志文件信息包括日志对象的标识信息、所述日志对象对应的日志文件的 最大键值和最小键值 (即序号生成单元 10生成的日志序号 ), 所述最大键值或 最小键值用于指示所述磁盘系统 13中待插入日志文件的位置。
可以理解, 如果序号生成单元 10为写请求生成日志序号时以递增方式进 行生成, 则緩存单元 14緩存的最大键值可以指示日志存储系统的磁盘系统 13 中下一次待插入日志文件的位置,而最小键值可以指示日志存储系统的磁盘系 统 13中下一次待删除日志文件的位置。如果序号生成单元 10为写请求生成日 志序号时以递减方式进行生成, 则緩存单元 14緩存的最小键值可以指示日志 存储系统的磁盘系统 13中下一次待插入日志文件的位置, 而最大键值可以指 示曰志存储系统的磁盘系统 13中下一次待删除日志文件的位置。
储存单元 15 , 用于将緩存单元 14緩存的所述日志对象对应的日志文件信 息周期性地(比如以一定的时间间隔或以一定的频率间隔)储存到所述磁盘系 统中, 可以将日志文件信息储存成日志元数据。
键值读取单元 16 , 用于从所述磁盘系统 13中读取第一日志对象对应的用 于指示磁盘系统中待插入日志的位置的第一键值。 数据读取单元 17, 用于在所述磁盘系统 13中顺序读取大于或小于所述键 值读取单元 16读取的第一键值的一轮 N个键值所对应的存储地址内储存的数 据,所述 N为正整数。如果序号生成单元 10是以递增的方式生成日志序号的, 则数据读取单元 17读取大于第一键值的 N个键值对应的数据, 如果序号生成 单元 10是以递减发的方式生成的,则数据读取单元 17读取小于第一键值的 N 各键值对应的数据。
其中如果序号生成单元 10 为写请求生成日志序号时以递增方式进行生 成, 则数据读取单元 17在磁盘系统 13中顺序读取大于键值读取单元 16读取 的第一键值的一轮 N个键值所对应的存储地址内储存的数据; 如果序号生成 单元 10 为写请求生成日志序号时以递减方式进行生成, 则数据读取单元 17 在磁盘系统 13中顺序读取小于键值读取单元 16读取的第一键值的一轮 N个 键值所对应的存储地址内储存的数据。
循环读取单元 18,用于若所述数据读取单元 17读取的所述一轮的 N个键 值对应存储地址中, 至少有一个存储地址内储存的数据非空, 顺序读取大于或 小于所述 N个键值的另外至少一轮的 N个键值所对应的存储地址内储存的数 据。
其中如果序号生成单元 10 为写请求生成日志序号时以递增方式进行生 成,则循环读取单元 18顺序读取大于 N个键值的另外至少一轮的 N个键值所 对应的存储地址内储存的数据; 如果序号生成单元 10为写请求生成日志序号 时以递减方式进行生成, 则循环读取单元 18顺序读取小于 N个键值的另外至 少一轮的 N个键值所对应的存储地址内储存的数据。
更新单元 19,用于所述循环读取单元 18读取的当前一轮的 N个键值对应 存储地址内储存的数据都为空, 用所述当前一轮的前一轮中读取的 N个键值 对应的存储地址中,最近读取的一个非空数据的存储地址对应的键值更新所述 第一日志对象对应的第一键值。
列表储存单元 20, 用于若所述写入单元 12根据所述日志文件的存储地址 将所述写请求所请求写入的日志文件储存到磁盘系统 13失败, 将所述计算的 存储地址对应键的信息储存到磁盘系统 13中操作失败的键列表中。
查找单元 21 , 用于查找所述磁盘系统 13中操作失败的键列表中是否储存 与所述第一日志对象对应的, 且大于或小于所述键值读取单元 16读取的第一 键值的键值, 如果不是, 通知所述数据读取单元 17读取一轮 N个键值所对应 的存储地址内储存的数据。
其中如果序号生成单元 10 为写请求生成日志序号时以递增方式进行生 成,则查找单元 21查找操作失败的键列表中大于所述键值读取单元 16读取的 第一键值的键值; 如果序号生成单元 10为写请求生成日志序号时以递减方式 进行生成, 则查找单元 21查找操作失败的键列表中小于所述键值读取单元 16 读取的第一键值的键值。
本实施例中, 通过序号生成单元 10、 地址获取单元 11和写入单元 12可 以将日志文件写入到磁盘系统 13中,如果写入单元 12的写入操作失败时, 可 以通过列表储存单元 21将失败的日志文件对应键的信息储存到操作失败的键 列表中。
且本实施例中还可以通过緩存单元 14将日志文件信息先进行緩存, 这样 在每次更新日志文件信息时, 可以不用去访问磁盘系统 13 , 为直接在緩存中 进行更新, 提高了更新速度; 而为了进行故障恢复, 需要储存单元 15将緩存 的曰志文件信息周期性地储存到磁盘系统 13中。
如果该日志存储系统中的应用程序发生故障导致緩存单元 14緩存的曰志 文件信息没有及时储存到磁盘系统 13中, 则可以通过键值读取单元 16、 数据 读取单元 17、 循环读取单元 18和更新单元 19来更新磁盘系统中储存的曰志 文件信息。 其中如果数据读取单元 17读取的一轮 N个键值对应存储地址内储 存的数据都为空, 在可以不用更新第一键值。 且在键值读取单元 16读取第一 键值后, 查找单元 20可以查找操作失败的键列表中是否储存有大于或小于第 一键值的键值, 如果有, 则可以通知更新单元 19将第一键值更新为该查找的 键值, 如果没有, 则继续通过数据读取单元 17、 循环读取单元 18和更新单元 19来更新第一键值。 且查找单元 20还可以查找磁盘系统 13中操作失败的键 列表中是否储存与第一日志对象对应的,且小于或大于该第三键值的键值,如 果是, 更新该第三键值为查找的键值, 如果不是, 则不会更新第三键值, 该第 三键值能指示磁盘系统 13中待删除日志文件的位置。
需要说明的是, 上述实施例中的系统中, 如果序号生成单元 10为写请求 生成日志序号时以递增方式进行生成, 更新单元 19还可以用于当将某一个日 志对象对应的日志文件储存到磁盘系统后,根据增加的日志文件对应的存储地 址更新该日志对象对应的最大键值,即更新为该增加的日志文件的存储地址对 应的键值; 该更新单元 19还用于当删除磁盘系统中某一个日志对象对应的曰 志文件时,可以根据删除的日志文件对应的存储地址更新该日志对象对应的最 小键值, 即更新为大于该删除的日志文件的存储地址对应键值的最小键值。
如果序号生成单元 10为写请求生成日志序号时以递减方式进行生成, 更 新单元 19 还可以用于当将某一个日志对象对应的日志文件储存到磁盘系统 后,根据增加的日志文件对应的存储地址更新该日志对象对应的最小键值, 即 更新为该增加的日志文件的存储地址对应的键值; 该更新单元 19还用于当删 除磁盘系统中某一个日志对象对应的日志文件时,根据删除的日志文件对应的 存储地址更新该日志对象对应的最大键值,即更新为小于该删除的日志文件的 存储地址对应键值的最大键值。
参考图 7所示,在其它的具体实施例中, 日志存储系统除了可以包括如图 5所示的结构外, 还可以包括: 操作请求获取单元 30、 操作地址获取单元 31 和操作单元 32, 其中:
操作请求获取单元 30 , 用于获取日志文件的操作请求(比如读取或删除 请求), 所述操作请求中包括第二日志对象的标识信息和第二键值, 其中第二 键值可以是在该第二日志对象对应的日志文件进行储存时序号生成单元 10为 之生成的日志序号。
操作地址获取单元 31 , 用于将所述操作请求获取单元 30获取的操作请求 中, 第二日志对应的标识信息和第二键值作为键, 计算得到所述操作请求所请 求操作的日志文件的存储地址;操作地址获取单元 31在进行计算存储地址时, 可以按照储存该日志文件过程中地址获取单元 11进行计算存储地址时所使用 的方法一致, 这样才能查找到相应的日志文件。
操作单元 32 , 用于根据所述操作请求获取单元 31获取的操作请求对所述 请求操作的存储地址内储存的日志文件进行相应操作。
如果操作请求是删除请求, 则操作单元 32可以将该存储地址内储存的曰 志文件删除, 且可以更新系统中储存的日志文件信息。 本实施例中如果需要对日志文件进行操作时,需要在操作请求中携带所要 操作的日志对象的标识和储存日志文件的存储地址对应键的键值,这样才能找 到相应的日志文件并进行相应的操作。
可以理解,上述图 5到图 7所示的日志存储系统中的各个单元之间进行的 日志文件的存储方法可以如图 1和图 3所示,且日志文件的操作方法可以如图 4所示, 在此不进行赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: ROM、 RAM, 磁盘或光盘等。
以上对本发明实施例所提供的日志存储方法及系统, 进行了详细介绍, 本 明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域的一般技 术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims

1、 一种日志存储方法, 其特征在于, 包括:
获取日志文件的写请求, 生成所述写请求对应的日志序号;
将所述写请求所请求写入的日志文件所属日志对象的标识信息与所述日 志序号作为键,并通过所述键计算得到所述写请求所请求写入的日志文件的存 储地址;
根据所述日志文件的存储地址将所述写请求所请求写入的日志文件储存 到磁盘系统中。
2、 如权利要求 1所述的方法, 其特征在于, 还包括:
緩存所述磁盘系统中日志对象对应的日志文件信息,所述日志文件信息包 括日志对象的标识信息、 所述日志对象对应的日志文件的最大键值和最小键 值;
将緩存的所述日志对象对应的日志文件信息周期性地储存到所述磁盘系 统中。
3、 如权利要求 2所述的方法, 其特征在于, 若所述生成所述写请求对应 的日志序号时是以递增方式生成,所述最大键值用于指示所述磁盘系统中待插 入日志文件的位置;
所述方法还包括:
从所述磁盘系统中读取第一日志对象对应的用于指示磁盘系统中待插入 日志的位置的第一键值;
在所述磁盘系统中顺序读取大于所述第一键值的一轮 N个键值所对应的 存储地址内储存的数据, 所述 N为正整数;
若读取的所述一轮的 N个键值对应存储地址中, 至少有一个存储地址内 储存的数据非空, 顺序读取大于所述 N个键值的另外至少一轮的 N个键值所 对应的存储地址内储存的数据, 直到当前一轮的 N个键值对应存储地址内储 存的数据都为空;
用所述当前一轮的前一轮中读取的 N个键值对应的存储地址中, 最近读 取的一个非空数据的存储地址对应的键值更新所述第一日志对象对应的第一 键值。
4、 如权利要求 3所述的方法, 其特征在于, 所述最小键值用于指示所述 磁盘系统中待删除日志文件的位置;
所述方法还包括:若删除所述磁盘系统中储存的某一日志对象对应的曰志 文件,根据所述删除的日志文件对应的存储地址更新所述某一日志对象对应的 最小键值。
5、 如权利要求 2所述的方法, 其特征在于, 若所述生成所述写请求对应 的日志序号时是以递减方式生成,所述最小键值用于指示所述磁盘系统中待插 入日志文件的位置;
所述方法还包括:
在所述磁盘系统中顺序读取小于所述第一键值的一轮 N个键值所对应的 存储地址内储存的数据, 所述 N为正整数;
若读取的所述一轮的 N个键值对应存储地址中, 至少有一个存储地址内 储存的数据非空, 顺序读取小于所述 N个键值的另外至少一轮的 N个键值所 对应的存储地址内储存的数据, 直到当前一轮的 N个键值对应存储地址内储 存的数据都为空;
用所述当前一轮的前一轮中读取的 N个键值对应的存储地址中, 最近读 取的一个非空数据的存储地址对应的键值更新所述第一日志对象对应的第一 键值。
6、 如权利要求 5所述的方法, 其特征在于, 所述最大键值用于指示所述 磁盘系统中待删除日志文件的位置;
所述方法还包括:若删除所述磁盘系统中储存的某一日志对象对应的曰志 文件,根据所述删除的日志文件对应的存储地址更新所述某一日志对象对应的 最大键值。
7、 如权利要求 3至 6任一项所述的方法, 其特征在于, 还包括: 若所述根据所述日志文件的存储地址将所述写请求所请求写入的日志文 件储存到磁盘系统失败,将所述计算的存储地址对应键的信息储存到磁盘系统 中操作失败的键列表中。
8、 如权利要求 7所述的方法, 其特征在于,
若所述生成所述写请求对应的日志序号时是以递增方式生成,所述从所述 磁盘系统中读取第一日志对象对应的用于指示磁盘系统中待插入日志的位置 的第一键值,之后还包括: 查找所述磁盘系统中操作失败的键列表中是否储存 与所述第一日志对象对应的, 且大于所述第一键值的键值, 如果不是, 执行所 述读取一轮 N个键值所对应的存储地址内储存的数据的步骤;
若所述生成所述写请求对应的日志序号时是以递减方式生成,所述从所述 磁盘系统中读取第一日志对象对应的用于指示磁盘系统中待插入日志的位置 的第一键值, 之后还包括: 查找所述磁盘系统中操作失败的键列表中是否储 存与所述第一日志对象对应的, 且小于所述第一键值的键值, 如果不是, 执行 所述读取一轮 N个键值所对应的存储地址内储存的数据的步骤。
9、 如权利要求 1至 8任一项所述的方法, 其特征在于, 还包括: 获取日志文件的操作请求,所述操作请求中包括第二日志对象的标识信息 和第二键值;
将所述第二日志对应的标识信息和第二键值作为键,计算得到所述操作请 求所请求操作的日志文件的存储地址;
根据所述操作请求对所述请求操作的存储地址内储存的日志文件进行相 应操作。
10、 一种日志存储系统, 其特征在于, 包括:
序号生成单元, 用于获取日志文件的写请求, 生成所述写请求对应的日志 序号;
地址获取单元,用于将所述写请求所请求写入的日志文件所属日志对象的 标识信息与所述序号生成单元生成的日志序号作为键,并通过所述键计算得到 所述写请求所请求写入的日志文件的存储地址;
写入单元,用于根据所述日志获取单元获取的日志文件的存储地址将所述 写请求所请求写入的日志文件储存到磁盘系统中;
磁盘系统, 用于在键对应的存储地址内储存日志文件。
11、 如权利要求 10所述的系统, 其特征在于, 还包括:
緩存单元, 用于緩存所述磁盘系统中日志对象对应的日志文件信息, 所述 曰志文件信息包括日志对象的标识信息、所述日志对象对应的日志文件的最大 键值和最小键值; 储存单元,用于将所述緩存单元緩存的所述日志对象对应的日志文件信息 周期性地储存到所述磁盘系统中。
12、 如权利要求 11所述的系统, 其特征在于,
所述序号生成单元生成所述写请求对应的日志序号时以递增方式生成,所 述緩存单元緩存的最大键值用于指示所述磁盘系统中待插入日志文件的位置; 所述系统还包括:
键值读取单元,用于从所述磁盘系统中读取第一日志对象对应的用于指示 磁盘系统中待插入日志的位置的第一键值;
数据读取单元,用于在所述磁盘系统中顺序读取大于所述第一键值的一轮 N个键值所对应的存储地址内储存的数据, 所述 N为正整数;
循环读取单元, 用于若所述数据读取单元读取的所述一轮的 N个键值对 应存储地址中, 至少有一个存储地址内储存的数据非空, 顺序读取大于所述 N 个键值的另外至少一轮的 N个键值所对应的存储地址内储存的数据;
更新单元, 用于所述循环读取单元读取的当前一轮的 N个键值对应存储 地址内储存的数据都为空, 用所述当前一轮的前一轮中读取的 N个键值对应 的存储地址中,最近读取的一个非空数据的存储地址对应的键值更新所述第一 曰志对象对应的第一键值。
13、 如权利要求 12所述的系统, 其特征在于,
所述緩存单元緩存的最小键值用于指示所述磁盘系统中待删除日志文件 的位置;
更新单元,还用于当删除所述磁盘系统中储存的某一日志对象对应的曰志 文件,根据所述删除的日志文件对应的存储地址更新所述某一日志对象对应的 最小键值。
14、 如权利要求 12或 13所述的系统, 其特征在于, 若所述序号生成单元 生成所述写请求对应的日志序号时以递减方式生成,所述緩存单元緩存的最小 键值用于指示所述磁盘系统中待插入日志文件的位置;
所述数据读取单元,还用于在所述磁盘系统中顺序读取小于所述第一键值 的一轮 N个键值所对应的存储地址内储存的数据, 所述 N为正整数;
所述循环读取单元, 还用于若所述数据读取单元读取的所述一轮的 N个 键值对应存储地址中, 至少有一个存储地址内储存的数据非空, 顺序读取小于 所述 N个键值的另外至少一轮的 N个键值所对应的存储地址内储存的数据。
15、 如权利要求 14所述的系统, 其特征在于, 所述
所述緩存单元緩存的最大键值用于指示所述磁盘系统中待删除日志文件 的位置;
更新单元,还用于当删除所述磁盘系统中储存的某一日志对象对应的曰志 文件,根据所述删除的日志文件对应的存储地址更新所述某一日志对象对应的 最大键值。
16、 如权利要求 12至 15任一项所述的系统, 其特征在于, 还包括: 列表储存单元,用于若所述写入单元根据所述日志文件的存储地址将所述 写请求所请求写入的日志文件储存到磁盘系统失败,将所述计算的存储地址对 应键的信息储存到磁盘系统中操作失败的键列表中。
17、 如权利要求 16所述的系统, 其特征在于, 还包括: 查找单元, 查找单元,用于当所述序号生成单元生成所述写请求对应的日志序号时以 递增方式生成,查找所述磁盘系统中操作失败的键列表中是否储存与所述第一 日志对象对应的,且大于所述键值读取单元读取的第一键值的键值,如果不是, 通知所述数据读取单元读取一轮 N个键值所对应的存储地址内储存的数据; 或, 所述查找单元, 用于当所述序号生成单元生成所述写请求对应的日志 序号时以递减方式生成,查找所述磁盘系统中操作失败的键列表中是否储存与 所述第一日志对象对应的, 且大于所述键值读取单元读取的第一键值的键值, 如果不是, 通知所述数据读取单元读取一轮 N个键值所对应的存储地址内储 存的数据。
18、 如权利要求 10至 17任一项所述的系统, 其特征在于, 还包括: 操作请求获取单元, 用于获取日志文件的操作请求, 所述操作请求中包括 第二日志对象的标识信息和第二键值;
操作地址获取单元, 用于将所述操作请求获取单元获取的操作请求中, 第 二曰志对应的标识信息和第二键值作为键,计算得到所述操作请求所请求操作 的曰志文件的存储地址;
操作单元,用于根据所述操作请求获取单元获取的操作请求对所述请求操 作的存储地址内储存的日志文件进行相应操作。
PCT/CN2011/084255 2011-12-21 2011-12-21 日志存储方法及系统 WO2013091167A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201180003108.0A CN103270499B (zh) 2011-12-21 2011-12-21 日志存储方法及系统
PCT/CN2011/084255 WO2013091167A1 (zh) 2011-12-21 2011-12-21 日志存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/084255 WO2013091167A1 (zh) 2011-12-21 2011-12-21 日志存储方法及系统

Publications (1)

Publication Number Publication Date
WO2013091167A1 true WO2013091167A1 (zh) 2013-06-27

Family

ID=48667629

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/084255 WO2013091167A1 (zh) 2011-12-21 2011-12-21 日志存储方法及系统

Country Status (2)

Country Link
CN (1) CN103270499B (zh)
WO (1) WO2013091167A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263206B1 (en) * 2021-03-02 2022-03-01 Coupang Corp. Systems and methods for multi-nodal stream processing framework for partitioned database

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068765A (zh) * 2015-08-13 2015-11-18 浪潮(北京)电子信息产业有限公司 一种基于键值数据库的日志处理方法及系统
CN109271277B (zh) * 2017-07-17 2022-03-08 阿里巴巴集团控股有限公司 数据库宕机后的访问方法、装置和系统
CN108229154A (zh) * 2017-12-12 2018-06-29 顺丰科技有限公司 敏感数据操作日志记录方法、装置、存储介质及设备
CN110019054B (zh) * 2017-12-29 2023-01-31 阿里巴巴集团控股有限公司 日志去重方法和系统、内容分发网络系统
CN115658593A (zh) * 2018-07-16 2023-01-31 超聚变数字技术有限公司 一种数据处理方法和装置
CN111339046B (zh) * 2020-02-26 2023-09-19 中国工商银行股份有限公司 针对文件的数据写入、读取和删除方法及装置
CN111475493B (zh) * 2020-06-19 2020-12-04 阿里云计算有限公司 数据读取方法及装置
CN113076060B (zh) * 2021-03-10 2022-02-22 杭州又拍云科技有限公司 一种单点日志存储方法
CN117118824B (zh) * 2023-10-20 2024-02-27 成都卓拙科技有限公司 一种日志数据收集方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534470A (zh) * 2003-04-02 2004-10-06 佳能株式会社 日志获取方法及其控制程序、存储媒体
CN101594342A (zh) * 2008-05-29 2009-12-02 国际商业机器公司 日志记录方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
CN102158349B (zh) * 2011-02-09 2016-03-30 中兴通讯股份有限公司 一种日志管理装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534470A (zh) * 2003-04-02 2004-10-06 佳能株式会社 日志获取方法及其控制程序、存储媒体
CN101594342A (zh) * 2008-05-29 2009-12-02 国际商业机器公司 日志记录方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263206B1 (en) * 2021-03-02 2022-03-01 Coupang Corp. Systems and methods for multi-nodal stream processing framework for partitioned database

Also Published As

Publication number Publication date
CN103270499B (zh) 2016-10-05
CN103270499A (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
WO2013091167A1 (zh) 日志存储方法及系统
CN108810041B (zh) 一种分布式缓存系统的数据写入及扩容方法、装置
US9792306B1 (en) Data transfer between dissimilar deduplication systems
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
US9317519B2 (en) Storage system for eliminating duplicated data
WO2018099107A1 (zh) 一种哈希表管理的方法和装置、计算机存储介质
CN110998537B (zh) 一种过期备份处理方法及备份服务器
WO2022063059A1 (zh) 键值存储系统的数据管理方法及其装置
WO2017020576A1 (zh) 一种键值存储系统中文件压实的方法和装置
US9928178B1 (en) Memory-efficient management of computer network resources
WO2013152357A1 (en) Cryptographic hash database
WO2009033419A1 (fr) Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
CN110196847A (zh) 数据处理方法和装置、存储介质及电子装置
WO2013010414A1 (zh) 构建索引的方法、检索方法、装置及系统
US20150254320A1 (en) Using colocation hints to facilitate accessing a distributed data storage system
CN111309720A (zh) 时序数据的存储、读取方法、装置、电子设备及存储介质
CN110908589B (zh) 数据文件的处理方法、装置、系统和存储介质
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
WO2018095299A1 (zh) 一种时序数据管理方法、设备和装置
WO2013163864A1 (zh) 数据持久化处理方法、装置及数据库系统
WO2012083754A1 (zh) 处理脏数据的方法及装置
WO2014089828A1 (zh) 访问存储设备的方法和存储设备
WO2012126229A1 (zh) 一种分布式缓存系统数据存取的方法及装置
CN103501319A (zh) 一种低延迟的面向小文件的分布式存储系统
WO2018133762A1 (zh) 文件合并方法和装置

Legal Events

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

Ref document number: 11877795

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11877795

Country of ref document: EP

Kind code of ref document: A1