CN110609777A - 用于管理日志的方法、设备和计算机程序产品 - Google Patents

用于管理日志的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110609777A
CN110609777A CN201810623462.7A CN201810623462A CN110609777A CN 110609777 A CN110609777 A CN 110609777A CN 201810623462 A CN201810623462 A CN 201810623462A CN 110609777 A CN110609777 A CN 110609777A
Authority
CN
China
Prior art keywords
tsc
frequency
time
δtsc
calibration
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.)
Granted
Application number
CN201810623462.7A
Other languages
English (en)
Other versions
CN110609777B (zh
Inventor
李乃峰
孙加杰
吴俊�
江子皓
陆明刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority to CN201810623462.7A priority Critical patent/CN110609777B/zh
Priority to US16/362,914 priority patent/US11663191B2/en
Publication of CN110609777A publication Critical patent/CN110609777A/zh
Application granted granted Critical
Publication of CN110609777B publication Critical patent/CN110609777B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Frequencies, Analyzing Spectra (AREA)

Abstract

本公开实施例涉及用于管理日志的方法、设备和计算机程序产品。该方法包括获取与日志中的一个日志条目相关联的计数器的计数值,所述计数器的计数值按照预定频率递增。该方法还包括基于所述计数值、与所述日志条目相关联的所述计数器的参考计数值、与所述参考计数值对应的参考时间和所述频率,确定所述日志条目被创建的粗略时刻。该方法还包括至少部分地基于所述频率和与一组时刻对应的所述计数器的一组计数值来校准所述粗略时刻,以确定所述日志条目被创建的经校正时刻。通过使用上述方法,备份到外部存储设备上的日志具有准确的时间信息。

Description

用于管理日志的方法、设备和计算机程序产品
技术领域
本公开的实施例涉及日志的管理领域,具体地涉及用于管理日志的方法、设备和计算机程序产品。
背景技术
在软件工程领域,在程序或进程的运行过程中会记录一些日志信息。当程序或进程故障时,记录的这些日志信息有助于技术人员了解程序或进程中的一些关键信息,从而有助于技术人员快速的解决该故障。而在存储系统中,由于存储系统变得越来越复杂,记录日志信息也变得越来越重要,尤其是在解决客户的数据不可用和数据丢失问题时。通过记录的日志信息,可以在较短的时间内帮助用户恢复他们的数据。
随着程序的运行,日志的数据量越来越大。因此通常将日志数存储到外部存储设备中。在外部设备中存储的日志信息中包含有与日志条目相关联的时间信息。然而该时间信息是通过计算得到的,有时并不准确,导致无法准确的应用日志来恢复数据或进行各种处理。
发明内容
本公开的实施例提供一种用于管理日志的方法、设备和计算机程序产品。
根据本公开的第一方面,提供了一种用于管理日志的方法。该方法包括获取与日志中的一个日志条目相关联的计数器的计数值,计数器的计数值按照预定频率递增。该方法还包括基于计数值、与日志条目相关联的计数器的参考计数值、与参考计数值对应的参考时间和频率,确定日志条目被创建的粗略时刻。该方法还包括至少部分地基于频率和与一组时刻对应的计数器的一组计数值来校准粗略时刻,以确定日志条目被创建的经校正时刻。
根据本公开的第二方面,提供了一种用于管理日志的电子设备。该电子设备包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,该动作包括获取与日志中的一个日志条目相关联的计数器的计数值,计数器的计数值按照预定频率递增。该动作还包括基于计数值、与日志条目相关联的计数器的参考计数值、与参考计数值对应的参考时间和频率,确定日志条目被创建的粗略时刻。该动作还包括至少部分地基于频率和与一组时刻对应的计数器的一组计数值来校准粗略时刻,以确定日志条目被创建的经校正时刻。
根据本公开的第三方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图;
图2图示了根据本公开的实施例的用于管理日志的记录的方法200的流程图;
图3图示了根据本公开的实施例的用于合并确定频率的方法300的流程图;
图4是根据本公开的实施例的用于确定频率和校准因子的示意图400;
图5图示了根据本公开的实施例的用于确定估计频率的方法500的流程图;
图6图示了根据本公开的实施例的用于校准粗略时刻的方法500的流程图;
图7图示了适于用来实施本公开内容的实施例的示例设备600的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在记录日志时,为了避免消耗较多的资源,产生日志的进程存储日志时并不写入时间信息,而只是写入由64位时间戳计数器确定的计数值。当由记录进程将日志信息存储到外部存储设备时,其会基于计数值来确定日志的记录时间。然后,该记录进程将确定的记录时间与日志信息一块存储到外部设备中以备将来使用。
然而,在存储进程确定日志的记录时间时,由于其从操作系统内核中获取的CPU频率并不足够精确,使得通过计数值和CPU频率确定的时间并不准确,而且随着时间的增加,计算得到的时间和实际的记录时间之间的差值会越来越大,会产生较大的时间差,导致无法准确的确定日志的记录时间,使得在日志恢复时会导致恢复的数据有问题。
因此,为了解决上述问题,本公开提出了一种校正计算得到时间的技术方案。在该技术方案中,通过让记录进程在预定时间段内记录多个时间及与时间对应的计数值(诸如64位的时间戳计数器的计数值)来确定计算得到的记录时间和实际记录时间之间的调整因子,然后将该调整因子应于用于日志信息的计算时间以获得调整后的记录时间。通过应用调整因子,可以更精确的调整日志的记录时间,使得记算得到的记录时间能够更准确的对应于实际的记录时间。
下面图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图。在该环境中,存在计数器102、存储器104和控制器106。
计数器102,其可以输出计数值以用于由产生日志信息的产生进程使用。因此,日志信息中存储有由计数器输出的计数值。该计数器102的计数值还可以由将日志信息记录到外部存储装置的记录进程使用。计数器102可是时间戳计数器,诸如64位的时间戳计数器。
存储器104用于存储数据信息。在存储器104中,存储有由日志数据108,该日志数据包括计数值(诸如时间戳计数器的计数值)。在一个示例中,存储日志信息的存储区域可以由产生日志数据的产生进程和将日志数据存储到外部存储装置的记录进程共享。在一个备选实施例中,可以设置由产生进程和记录进程共享的专用存储器。备选地或附加地,该专利存储器可以是与存储器104不同的存储器。
控制器106用于管理日志信息的记录和存储。控制器可以从存储器104中读取日志信息。备选地或附加地,控制器也可以从其他存储日志信息的存储装置中读取日志信息。控制器106还能从计数器102获得计数值。计数器102基于在预定时间段内的记录时间和与记录时间相对应的多个计数值来获得用于校准时间的校准因子。
上面图1描述了用于管理日志的示例环境100。下面将结合图2的流程图200详细描述用于管理日志的方法。
在本公开中日志由产生进程生成,并且在生成的日志数据中包括计数器104的计数值,诸如64的时间戳计数器的计数值。日志的记录进程可以获得由产生进程产生的日志数据,然而基于日志数据中的计数值确定日志的记录时间。然后将所确定的记录时间和日志数据一起保存在外部存储设备中。
日志的记录进程可以通过多种方式获得由产生进程生成的日志数据。在一个示例中。产生进程可以将日志数据存储在共享存储区中,该共享存储区也可以由记录进程访问。该共享存储区可以是环形缓冲区。然后日志的记录进程从该共享存储区内获取日志数据。在另一示例中,记录进程可以基于需要采用各种合适的方式来获得日志数据。
日志的记录进程获得日志数据后,需要从日志数据中取得计数器的计数值。在框202中,获取与日志中的一个日志条目相关联的计数器的计数值,该计数器的计数值按照预定频率递增。在一个示例中,计数器为时间戳计数器,诸如64的时间戳计数器。
在一个示例中,该预定频率可以通过在预定时间段内记录的与一组时刻相对应的计数器的一组计数值来确定,下面参考图3和图4详细描述确定该频率的过程。备选地或附加地,计数器的计数值与本地动态CPU频率相关。在另一个示例中,该预定频率可以为从操作系统内核获得的CPU频率。
在获得了日志条目的计数值之后,在框204处,记录进程将基于该计数值、与所述日志条目相关联的计数器的参考计数值、与参考计数值对应的参考时间和所述频率,确定所述日志条目被创建的粗略时刻。
在本公开的实施列中,由于日志中只记录了计数值,因此,需要获得参考计数值和参考时间来确定日志记录时刻。在一个示例中,参考计数值和参与时间由日志的产生进程在开始运行时写入共享存储区内。然后,记录进程从共享存储区中获得该参考计数值和参与时间。在另一示例中,记录进程也可以直接从产生进程获得。
在一个示例中,参考时间是产生日志的产生进程开始的时间,参考计数值为与进程开始时间相应的计数值。在另一个示例中,参考时间和与参考时间相对应的计数值可由用户基于需要设置为任意合适的时间点和与该时间点相对应的计数值。
在记录进程获得了日志条目的计数值、参考计数值、与所述参考计数值对应的参考时间和所述频率后,可通过下式来计算得到一个粗略的日志记录时间。
其中calculated_logging-time表示计算得到的日志条目的粗略的日志记录时间。start_time为参考时间,start_TSC为与参考时间相对应的参考计数值。frequency为计数器递增的频率,logging_TSC为日志条目中的计数值。
在一个示例中,该频率可以通过在预定时间段内记录的与一组时该相对应的一组计数值来确定。在另一个示例中,该频率可以从操作系统的内核获得。
在确定了日志条目的粗略时刻后,在框206处,至少部分地基于该频率和与一组时刻对应的该计数器的一组计数值来校准所述粗略时刻,以确定日志条目被创建的经校正时刻。
由于知道了日志条目的粗略时刻,为了能更准确的确定日志条目的记录时间,本公开的实施例通过为日志条目的粗略时刻增加校正因子,从而来确定条目的经校正时刻。然后,将经校正的时刻作为日志条目的记录时间与日志数据一块存储到外部存储设备中。
将在下面结和图4和图6进行进一步详细描述基于该频率和与一组时刻对应的该计数器的一组计数值来校准所述粗略时刻。
上面图2描述了管理日志的过程,下面结合图3和图4详细描述确定计数器的递增的频率的过程。
在本公开的实施例中,通过与一组时刻相对应的一组计数值来确定计数器递增的频率。在确定该频率时,在框302处,需要先确定所述一组时刻中的相邻时刻之间的时间差。
在确定该频率时,日志的记录进程需要在预定时间段内记录一组时刻和与该一组时间相对应的计数值。如图4中所示,如图4所示,记录了一组时刻T1、T2、T3、T4、T5、T6,即记录了6个时刻。还记录了与所述一组时刻相对应的时间戳计数器的计数值TSC1、TSC2、TSC3、TSC4、TSC5、TSC6
在一个示例中,在每100ms内记录6个时刻及与6个时刻相对应的计数值。在另一示例中,在2分钟内记录6个时刻及与6个时刻相对应的计数值。在其他示例中,本领域技术人员可以基于需要在任意长的时段内设置任意数目的时刻和与时刻相对应的计数值。备选地或附加地,在第一次确定频率时采用100ms的时间长度,在以后再次确定频率时采用2分钟的时间长度。上述面时间长度和记录的时刻的数目仅是示例,本领域技术人员可以依据需要设置为任意时间长度和任意数目的时刻及其对应计数值。
在确定了一组时刻后,相邻时刻的时间差ΔT由下式计算得到:
ΔT(x)(X=1,2,3,4,...,n-1)=T(x+1)-T(x) (2)
其中n为正整数,其表示记录的时刻的数目。Tx表示记录进程记录的第x个时刻。
现参照图4来描述确定频率的过程。图4中示出的一组时刻包括6个时刻T1、T2、T3、T4、T5、T6,因此存在5个时间差ΔT1、ΔT2、ΔT3、ΔT4、ΔT5。图4只是作为示例用于说明本公开,而不应理解为对本公开的限制。本领域技术人员依据需要可以设置任意数目的时刻及其与任意数目的时刻相对应的计数值。
在框304处,确定与时间差对应的、一组计数值中的相邻计数值的计数值差。与时间差相对应的一组计数值的计数值差ΔTSC可以通过下式得到:
ΔTSC(x)(x=1,2,3,4,...,n-1)=TSC(x+1)-TSC(x) (3)
其中n为正整数,TSCx表示第x个时刻的计数器值。
如图4所示,存在与5个时间差相对应的存在5个计数值差ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5
在框306处,基于所述时间差和对应的所述计数值差,估计所述计数器递增的所述频率。在一个示例中,在确定好时间差和计数值差之后,可以将时间差和计数值差应用于数学公式来计算计数器的频率。如图4中确定好时间差ΔT1、ΔT2、ΔT3、ΔT4、ΔT5和计数值差ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5后,利用上述值确定频率f。通过时间差和相应的计数值差获得所述频率的过程将在下面结合图4和图5进行进一步详细的描述。
上述方法基于一组时刻的相邻时刻的时间差和一组计数值中的相邻计数值差来确定频率。这使得频率是通过多个计数值差和时间差计算得到的,而非仅使用一次获得的频率,这样提高了频率的精确度,从而能更准确的确定日志的记录时间。
如上所述,图5描述了通过所述时间差和对应的所述计数值差确定频率的过程。下面将结合图4进行详细的描述。
在框502处,首先基于时间差和对应的计数值差,确定频率的一组估计值。
在确定了时间差和计数值差之后,可以通过下式基于计数值差和时间差来确定计数器递增的频率,也即确定频率的一组估计值f(x)
f(x)(x=1,2,3,4,...,n-1)=ΔTSC(x)/ΔT(x) (4)
其中n为正整数,表示记录的时刻的数目。
如图4所示,可以获得与5个计数值差ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5相对应的频率的估计值f1、f2、f3、f4和f5
在确定好频率的一组估计值后,在框504处,通过对一组估计值中的至少一部分求平均来估计频率f。
在获得频率的一组估计值后,需要通过所述一组估计值来确定频率。在一个示例中,对所述一组估计值中处于预定范围内的估计值求平均,来估计所述频率。备选的或附加地,通地将一组估计值中的最大的估计值和最小的估计值去掉,然后对剩余的估计值求平均。在另一个示例中,本领域技术人员可以依据需要设置合适的方法来从该一组估计值中获得该频率。
在一个示例中,在上述通过时间差和计数值差确定频率的一组估计值的过程中,还可以确定由每个时间差和计数值差确定的估计值是否是在预定范围内,当由所述时间差和对应的所述计数值差确定的频率值大于第一预定阈值,将所述第一预定阈值用作为估计值;在由所述时间差和对应的所述计数值差确定的频率值小于第二预定阈值,将所述第二预定阈值用作为估计值,所述第二预定阈值小于所述第一预定阈值。备选地或附加地,所述第一预定阈值设置为1.25f,所述第二预定阈值设置为0.75f。备选地或附加地,上述确定每个估计值是否在预定范围的过程在非首次确定频率的过程中使用。备选地或附加地,该第一预定阈值和第二预定阈值是基于历史数据或基于本领域技术人员的经验确定的。
上述通过对一组频率的部分估计值求平均保证了得到的频率更准确,避免了由只使用单个频率引起的不精确的问题。而且在计算过程中还移除了最大的估计值和最小的估计值,避免了由于特殊情况产生的过大或过小频率值而导致的频率的精度不够的问题,进一步确保了计算得到频率的准确性。
上面结合图3、图4和图5描了确定频率的过程,下面将结合图4和图6描述校准粗略时刻的过程。
在校准粗略时刻时,首先在框602处,基于一组计数值和频率,确定与一组时刻对应的一组校准时刻。
在一个示例中,如前所述,已经通过与一组时刻相对应的计数值确定好了频率,因此,基于该频率、一组时刻和该一组计数值可以通过下式确定一组校准时刻CT(x)
其中n为正整数,CT(x)表示与第x个时刻相对应的校准时刻,f表示由方法300确定的频率或者从操作系统内核获得的处理器频率。
如图4所示,由设置了六个时刻,因此,生成了五个校准时刻CT1、CT2、CT3、CT4和CT5
在确定好一组校准时刻后,在框604处,基于该一组校准时刻和该一组时刻,确定一组校准增量。
因此,基于一组校准时刻和一组时刻通过下式来计算一组校准增量Δt(x)
Δt(x)(x=1,2,3,4,...,n)=T(x+1)-CT(x) (6)
其中,n为正整数。
如图4所示,存在五个增量Δt1、Δt2、Δt3、Δt4、Δt5
在一个示例中,在确定校准增量的过程中,需要对校准增量进行判定,如时T(x+1)大于CT(x),则该校准增量是两者的差值,如果T(x+1)小于CT(x),则将校准增量设置为0。
在确定好一组校准增量后,在框606处,基于该一组校准增量,确定校准因子Δt。
在获得一组校准增量后确定校准因子时,可以通过对所述一组校准增量中的至少一部分求平均来确定所述校准因子。在一个示例中,对所述一组校准增量中处于预定范围内的校准增量求平均,来确定所述校准因子。备选地或附加地,将一组校准增量中的最大值和最小值去除,对其余的校准增量求平均来获得校准因子。
在框608处,通过向所述粗略时刻应用所述校准因子来校准所述粗略时刻。把经计算得到的校准因子结合到粗略时刻,则可以通过下式确定日志的精确记录时间logging_time。
logging_time=calculated_logging_time+Δt (7)
通过上述采用计算出的校准因子校正粗略时刻的方法,可以提高计算得到的记录时间的准确度,从而保证存储到外部存储设备的日志时间是准确的。此外,通过对校正因子求平均,可以提高获得的校正因子的准确度,避免了由于只使用单个校正因子可能会产生的不准确的问题。
图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。例如,如图1所示的102、104、106的任一项可以由设备700来实施。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300、500和600,可由处理单元701执行。例如,在一些实施例中,200、300、500或600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法200、300、500或600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (19)

1.一种用于管理日志的方法,包括:
获取与日志中的一个日志条目相关联的计数器的计数值,所述计数器的计数值按照预定频率(f)递增;
基于所述计数值、与所述日志条目相关联的所述计数器的参考计数值、与所述参考计数值对应的参考时间和所述频率(f),确定所述日志条目被创建的粗略时刻;以及
至少部分地基于所述频率(f)和与一组时刻(T1、T2、T3、T4、T5、T6)对应的所述计数器的一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)准所述粗略时刻,以确定所述日志条目被创建的经校正时刻。
2.根据权利要求1所述的方法,还包括基于所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6),确定所述计数器递增的所述频率(f)。
3.根据权利要求2所述的方法,其中确定所述频率包括:
确定所述一组时刻(T1、T2、T3、T4、T5、T6)中的相邻时刻之间的时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5);
确定与所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)对应的、所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)中的相邻计数值的计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5);
基于所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)和对应的所述计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5),估计所述计数器递增的所述频率(f)。
4.根据权利要求3所述的方法,其中估计所述计数器递增的所述频率(f)包括:
基于所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)和对应的所述计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5),确定所述频率的一组估计值(f1、f2、f3、f4、f5);
通过对所述一组估计值(f1、f2、f3、f4、f5)中的至少一部分求平均来估计所述频率(f)。
5.根据权利要求4所述的方法,其中通过对所述一组估计值(f1、f2、f3、f4、f5)中的至少一部分求平均来估计所述频率(f)包括:
对所述一组估计值(f1、f2、f3、f4、f5)中处于预定范围内的估计值求平均,来估计所述频率。
6.根据权利要求4所述的方法,其中确定所述频率的一组估计值(f1、f2、f3、f4、f5)包括:
响应于由所述时间差和对应的所述计数值差确定的值大于第一预定阈值,将所述第一预定阈值用作为估计值;
响应于由所述时间差和对应的所述计数值差确定的值小于第二预定阈值,将所述第二预定阈值用作为估计值,所述第二预定阈值小于所述第一预定阈值。
7.根据权利要求2所述的方法,其中校准所述粗略时刻包括:
基于所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)和所述频率(f),确定与所述一组时刻(T2、T3、T4、T5、T6)对应的一组校准时刻(CT1、CT2、CT3、CT4、CT5);
基于所述一组校准时刻(CT1、CT2、CT3、CT4、CT5)和所述一组时刻(T2、T3、T4、T5、T6),确定一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5);
基于所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5),确定校准因子(Δt);以及
通过向所述粗略时刻应用所述校准因子(Δt)来校准所述粗略时刻。
8.根据权利要求7所述的方法,其中确定校准因子(Δt)包括:
通过对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中的至少一部分求平均来确定所述校准因子(Δt)。
9.根据权利要求8所述的方法,其中通过对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中的至少一部分求平均来确定所述校准因子(Δt)包括:
对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中处于预定范围内的校准增量求平均,来确定所述校准因子(Δt)。
10.一种用于管理日志的电子设备,所述电子设备包括:
处理器;以及
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
获取与日志中的一个日志条目相关联的计数器的计数值,所述计数器的计数值按照预定频率(f)递增;
基于所述计数值、与所述日志条目相关联的所述计数器的参考计数值、与所述参考计数值对应的参考时间和所述频率(f),确定所述日志条目被创建的粗略时刻;以及
至少部分地基于所述频率(f)和与一组时刻(T1、T2、T3、T4、T5、T6)对应的所述计数器的一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)来校准所述粗略时刻,以确定所述日志条目被创建的经校正时刻。
11.根据权利要求10所述的电子设备,还包括基于所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6),确定所述计数器递增的所述频率。
12.根据权利要求11所述的电子设备,其中确定所述频率包括:
确定所述一组时刻(T1、T2、T3、T4、T5、T6)中的相邻时刻之间的时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5);
确定与所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)对应的、所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)中的相邻计数值的计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5);
基于所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)和对应的所述计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5),估计所述计数器递增的所述频率(f)。
13.根据权利要求12所述的电子设备,其中估计所述计数器递增的所述频率(f)包括:
基于所述时间差(ΔT1、ΔT2、ΔT3、ΔT4、ΔT5)和对应的所述计数值差(ΔTSC1、ΔTSC2、ΔTSC3、ΔTSC4、ΔTSC5),确定所述频率的一组估计值(f1、f2、f3、f4、f5);
通过对所述一组估计值(f1、f2、f3、f4、f5)中的至少一部分求平均来估计所述频率(f)。
14.根据权利要求13所述的电子设备,其中通过对所述一组估计值(f1、f2、f3、f4、f5)中的至少一部分求平均来估计所述频率(f)包括:
对所述一组估计值(f1、f2、f3、f4、f5)中处于预定范围内的估计值求平均,来估计所述频率。
15.根据权利要求13所述的电子设备,其中确定所述频率的一组估计值(f1、f2、f3、f4、f5)包括:
响应于由所述时间差和对应的所述计数值差确定的值大于第一预定阈值,将所述第一预定阈值用作为估计值;
响应于由所述时间差和对应的所述计数值差确定的值小于第二预定阈值,将所述第二预定阈值用作为估计值,所述第二预定阈值小于所述第一预定阈值。
16.根据权利要求11所述的电子设备,其中校准所述粗略时刻包括:
基于所述一组计数值(TSC1、TSC2、TSC3、TSC4、TSC5、TSC6)和所述频率(f),确定与所述一组时刻(T2、T3、T4、T5、T6)对应的一组校准时刻(CT1、CT2、CT3、CT4、CT5);
基于所述一组校准时刻(CT1、CT2、CT3、CT4、CT5)和所述一组时刻(T2、T3、T4、T5、T6),确定一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5);
基于所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5),确定校准因子(Δt);以及
通过向所述粗略时刻应用所述校准因子(Δt)来校准所述粗略时刻。
17.根据权利要求16所述的电子设备,其中确定校准因子(Δt)包括:
通过对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中的至少一部分求平均来确定所述校准因子(Δt)。
18.根据权利要求17所述的电子设备,其中通过对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中的至少一部分求平均来确定所述校准因子(Δt)包括:
对所述一组校准增量(Δt1、Δt2、Δt3、Δt4、Δt5)中处于预定范围内的校准增量求平均,来确定所述校准因子(Δt)。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至9中任一项所述的方法的步骤。
CN201810623462.7A 2018-06-15 2018-06-15 用于管理日志的方法、设备和计算机程序产品 Active CN110609777B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810623462.7A CN110609777B (zh) 2018-06-15 2018-06-15 用于管理日志的方法、设备和计算机程序产品
US16/362,914 US11663191B2 (en) 2018-06-15 2019-03-25 Method, device and computer program product for managing log

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810623462.7A CN110609777B (zh) 2018-06-15 2018-06-15 用于管理日志的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110609777A true CN110609777A (zh) 2019-12-24
CN110609777B CN110609777B (zh) 2023-11-03

Family

ID=68839845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810623462.7A Active CN110609777B (zh) 2018-06-15 2018-06-15 用于管理日志的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11663191B2 (zh)
CN (1) CN110609777B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115309347A (zh) * 2022-10-10 2022-11-08 苏州浪潮智能科技有限公司 基于ssd主控变频的时间管理方法、装置、设备及介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343045B (zh) * 2020-02-14 2022-06-28 青岛聚看云科技有限公司 调整心跳频率的方法及装置
JP7533058B2 (ja) * 2020-09-17 2024-08-14 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN116744168B (zh) * 2022-09-01 2024-05-14 荣耀终端有限公司 日志存储方法及相关装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1117045A2 (en) * 2000-01-10 2001-07-18 Agilent Technologies, Inc. Performance monitoring in distributed systems
CN1536788A (zh) * 2003-04-11 2004-10-13 华为技术有限公司 日志保留系统和方法
US20050097228A1 (en) * 2002-11-12 2005-05-05 Arm Limited Data processing system performance counter
US20070185689A1 (en) * 2006-02-07 2007-08-09 Sigcom, Inc. Systems and methods for event detection and logging in access control points
US20070198706A1 (en) * 2006-02-09 2007-08-23 Marco Mechelli Method, system and computer program for collecting information with improved time-stamp accuracy
US20130013911A1 (en) * 2010-02-25 2013-01-10 Harald Gustafsson Technique for Selecting a Frequency of Operation in a Processor System
CN103617287A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种分布式环境下的日志管理方法和装置
US20140317633A1 (en) * 2009-09-30 2014-10-23 Gang Zhai Virtualizing A Processor Time Counter
CN104346253A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 数据处理系统
CN104391903A (zh) * 2014-11-14 2015-03-04 广州科腾信息技术有限公司 一种基于分布存储和并行计算的电网数据质量检测方法
CN104598356A (zh) * 2014-12-23 2015-05-06 沈阳东软医疗系统有限公司 一种事件排序方法及装置
CN105446289A (zh) * 2014-09-23 2016-03-30 西门子公司 由制造执行系统收集工作状态的时间戳
US20160098326A1 (en) * 2013-05-13 2016-04-07 Freescale Semiconductor, Inc. Method and apparatus for enabling temporal alignment of debug information
CN106663048A (zh) * 2014-06-12 2017-05-10 三菱电机株式会社 日志记录系统、日志记录装置、数据日志记录方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615335A (en) 1994-11-10 1997-03-25 Emc Corporation Storage system self-test apparatus and method
US7103797B1 (en) 1998-03-30 2006-09-05 Emc Corporation Resource allocation throttling in remote data mirroring system
CA2615324A1 (en) 2005-07-14 2007-07-05 Yotta Yotta, Inc. Maintaining write order fidelity on a multi-writer system
US7885296B2 (en) * 2006-07-27 2011-02-08 Cisco Technology, Inc. Maintaining consistency among multiple timestamp counters distributed among multiple devices
US8181057B2 (en) * 2008-02-22 2012-05-15 Schlumberger Technology Corporation Time synchronization in units at different locations
US8334801B2 (en) * 2010-07-26 2012-12-18 Ensco, Inc. System and method for real-time locating
US10037251B1 (en) 2015-03-31 2018-07-31 EMC IP Holding Company LLC File system rollback to previous point in time

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1117045A2 (en) * 2000-01-10 2001-07-18 Agilent Technologies, Inc. Performance monitoring in distributed systems
US20050097228A1 (en) * 2002-11-12 2005-05-05 Arm Limited Data processing system performance counter
CN1536788A (zh) * 2003-04-11 2004-10-13 华为技术有限公司 日志保留系统和方法
US20070185689A1 (en) * 2006-02-07 2007-08-09 Sigcom, Inc. Systems and methods for event detection and logging in access control points
US20070198706A1 (en) * 2006-02-09 2007-08-23 Marco Mechelli Method, system and computer program for collecting information with improved time-stamp accuracy
US20140317633A1 (en) * 2009-09-30 2014-10-23 Gang Zhai Virtualizing A Processor Time Counter
US20130013911A1 (en) * 2010-02-25 2013-01-10 Harald Gustafsson Technique for Selecting a Frequency of Operation in a Processor System
US20160098326A1 (en) * 2013-05-13 2016-04-07 Freescale Semiconductor, Inc. Method and apparatus for enabling temporal alignment of debug information
CN104346253A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 数据处理系统
CN103617287A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种分布式环境下的日志管理方法和装置
CN106663048A (zh) * 2014-06-12 2017-05-10 三菱电机株式会社 日志记录系统、日志记录装置、数据日志记录方法
CN105446289A (zh) * 2014-09-23 2016-03-30 西门子公司 由制造执行系统收集工作状态的时间戳
CN104391903A (zh) * 2014-11-14 2015-03-04 广州科腾信息技术有限公司 一种基于分布存储和并行计算的电网数据质量检测方法
CN104598356A (zh) * 2014-12-23 2015-05-06 沈阳东软医疗系统有限公司 一种事件排序方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115309347A (zh) * 2022-10-10 2022-11-08 苏州浪潮智能科技有限公司 基于ssd主控变频的时间管理方法、装置、设备及介质
WO2024078005A1 (zh) * 2022-10-10 2024-04-18 苏州元脑智能科技有限公司 基于ssd主控变频的时间管理方法、装置、设备及介质

Also Published As

Publication number Publication date
US11663191B2 (en) 2023-05-30
CN110609777B (zh) 2023-11-03
US20190384756A1 (en) 2019-12-19

Similar Documents

Publication Publication Date Title
CN110609777B (zh) 用于管理日志的方法、设备和计算机程序产品
CN108880931B (zh) 用于输出信息的方法和装置
US8589329B2 (en) Method and apparatus for incremental tracking of multiple quantiles
US20140279947A1 (en) Master data governance process driven by source data accuracy metric
US10212058B2 (en) System and method for detecting system's performance regression
EP1652038A2 (en) System and method for standardizing clocks in a heterogeneous networked environment
US10162326B2 (en) Self-adjusting test time estimation
US11182270B2 (en) System resource component utilization
US9754062B2 (en) Timing adjustments across transparent latches to facilitate power reduction
US20160020976A1 (en) Incident-Based Adaptive Monitoring of Information in a Distributed Computing Environment
US10984163B1 (en) Systems and methods for parallel transient analysis and simulation
CN109781341B (zh) 气压传感器的数据校准方法及装置
US20090164974A1 (en) Quality measure tool for a composite application
CN113590017B (zh) 用于处理数据的方法、电子设备和计算机程序产品
JP6733446B2 (ja) 非線形特性の決定方法、装置及びシステム
CN111130984B (zh) 用于处理信息的方法和装置
CN108243029B (zh) 还原日志的生成时间的方法、客户端及服务器
CN112988455A (zh) 用于数据备份的方法、设备和计算机程序产品
CN108287792B (zh) 用于输出信息的方法和装置
US10324815B2 (en) Error checking of a multi-threaded computer processor design under test
CN108512711B (zh) 得到瞬时接口访问统计量的方法、装置和设备
Zhu et al. Iterative maximum likelihood FIR filter for state-space models with time-stamped delayed and missing data
CN117009739A (zh) 递归滤波方法、电子设备和介质
US12114276B2 (en) Device and method for monitoring two time bases of two communication devices with the aid of a computer
JP6267455B2 (ja) 工数見積装置、工数見積方法及びプログラム

Legal Events

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