CN102368210A - 一种分布式系统中基于流水线的元数据日志的方法 - Google Patents
一种分布式系统中基于流水线的元数据日志的方法 Download PDFInfo
- Publication number
- CN102368210A CN102368210A CN2011103259847A CN201110325984A CN102368210A CN 102368210 A CN102368210 A CN 102368210A CN 2011103259847 A CN2011103259847 A CN 2011103259847A CN 201110325984 A CN201110325984 A CN 201110325984A CN 102368210 A CN102368210 A CN 102368210A
- Authority
- CN
- China
- Prior art keywords
- metadata
- stage
- daily record
- formation
- data
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式系统中基于流水线的元数据日志的方法,元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。本发明针对了分布式文件系统的元数据访问特点,引入了流水线的概念,将元数据可靠性处理的多个阶段,即写可靠性介质.写磁盘以及文件sync等操作进行了流水化设计,不仅充分的利用了多线程提高了并发性,同时,实现了非阻塞的元数据可靠性处理,极大的提高了元数据日志系统的数据处理能力。
Description
技术领域
本发明涉及分布式文件系统中高效元数据日志方法,具体来说,涉及一种分布式系统中基于流水线的元数据日志的方法。
背景技术
在分布式文件系统中,元数据之间存在相关性,这表现在很多操作要同时修改几部分的元数据,当只有部分数据修改时,系统是不一致的,即这种相关性受到破坏。当整个操作完成时,系统从一个一致状态转移到另一个一致的状态。当系统处于不一致状态时,受影响的元数据及相关的数据将不能被正确使用,甚至成为垃圾。如果系统不纠正该问题,而继续运行,将造成更大的损害。
为了提高元数据的可靠性,许多分布式文件系统采用了日志系统,并采用了先写日志后应用磁盘的逻辑,当应用磁盘失败时,可以通过应用日志来保证元数据操作的一致性。
现有的日志系统,有的是应用于本地文件系统;应用于分布式文件系统的日志系统,则无法达成一个高效的目标。
发明内容
本发明旨在公开一种分布式系统中基于流水线的高效元数据日志方法,目的是提高元数据日志系统的数据处理能力。
一种分布式系统中基于流水线的元数据日志的方法,元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。
优选的,所述阶段包括元数据提交日志阶段,写内存阶段,写日志设备阶段,写磁盘阶段和回收空间阶段。
优选的,无数据时,所述信号量睡眠,当上一个阶段有数据来时,则将数据插入队列,并将该阶段的线程唤醒。
优选的,所述元数据提交日志阶段,申请至少一个提交队列,当有元数据提交日志时,通过hash值分配到队列中,之后由提交线程统一在队列中收集后提交。
优选的,所述回收空间阶段回收空间后,则将新的空间量作为一个写操作传递给写日志设备。
本发明针对了分布式文件系统的元数据访问特点,引入了流水线的概念,将元数据可靠性处理的多个阶段,即写可靠性介质.写磁盘以及文件sync等操作进行了流水化设计,不仅充分的利用了多线程提高了并发性,同时,实现了非阻塞的元数据可靠性处理,极大的提高了元数据日志系统的数据处理能力。
具体实施方式
发明中的技术方案具体描述如下:
为了实现多个元数据服务器上的一致性,将元数据操作的可靠性操作分为几个阶段:
●保存到内存
●写入日志设备
●写入磁盘
●同步到磁盘
如前所述,为了实现日志系统的可靠性目标,将日志系统的流程分为以下几个阶段:
1.元数据提交日志操作
2.写入日志内存
3.写入日志设备
4.写入磁盘
5.从内存及日志设备回收空间
在该流程中引入流水线,即使用多线程技术。每个阶段分别由独立的线程来完成,分别记为commit_thd,crt_thd,wr_jnl_thd,app_disk_thd和reclaim_thd。不同阶段之间使用semque(带信号量的队列)进行数据传送,无数据时睡眠在信号量时,若上一个阶段有数据来,则将数据插入队列,并将该阶段的线程唤醒。这样每个元数据的操作,被切分为流水线的不同阶段,每一个阶段可以不断的处理新的请求,不必等待所有的阶段完成,才能开始下一个元数据的操作请求。
在(1)提交日志阶段,由于元数据提交是多个元数据线程进行并发提交,如果使用同一个队列,将会使得多个线程对同一个队列进行竞争,导致不必要的互斥,这里申请了多个commit队列,每当元数据需要提交时,则hash到一个队列中,这样减少了多个元数据提交线程之间的性能。之后,由commit_thd统一从各个队列中进行收集,由于收集的几率远低于提交,因此,这种收集时由于互斥产生的开销是可以忽略的。
同时,由于日志设备中,不仅要记录日志信息,还要记录日志空间的信息,即可用空间和已用空间等信息,如果回收线程回收后,写该信息到日志设备,则会出现多线程写同一个日志文件的情形,必然要使用互斥技术如锁来保证互斥访问,这样无疑无降低性能。本发明将写日志和写空间信息均抽象为一个写操作,当回收线程回收空间后,则将新的空间量作为一个写操作传递给写日志设备,即所有的写日志的操作完全由一个线程完成,这样减少了互斥操作,提高了写入的速度。
Claims (5)
1.一种分布式系统中基于流水线的元数据日志的方法,其特征在于:元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。
2.如权利要求1所述的方法,其特征在于:所述阶段包括元数据提交日志阶段,写内存阶段,写日志设备阶段,写磁盘阶段和回收空间阶段。
3.如权利要求1所述的方法,其特征在于:无数据时,所述信号量睡眠,当上一个阶段有数据来时,则将数据插入队列,并将该阶段的线程唤醒。
4.如权利要求2所述的方法,其特征在于:所述元数据提交日志阶段,申请至少一个提交队列,当有元数据提交日志时,通过hash值分配到队列中,之后由提交线程统一在队列中收集后提交。
5.如权利要求2所述的方法,其特征在于:所述回收空间阶段回收空间后,则将新的空间量作为一个写操作传递给写日志设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103259847A CN102368210A (zh) | 2011-10-25 | 2011-10-25 | 一种分布式系统中基于流水线的元数据日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103259847A CN102368210A (zh) | 2011-10-25 | 2011-10-25 | 一种分布式系统中基于流水线的元数据日志的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102368210A true CN102368210A (zh) | 2012-03-07 |
Family
ID=45760775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103259847A Pending CN102368210A (zh) | 2011-10-25 | 2011-10-25 | 一种分布式系统中基于流水线的元数据日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102368210A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235754A (zh) * | 2013-04-24 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
CN106681658A (zh) * | 2016-11-25 | 2017-05-17 | 天津津航计算技术研究所 | 基于多线程实现数据记录仪海量数据高速转存的方法 |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及系统 |
WO2019242437A1 (zh) * | 2018-06-20 | 2019-12-26 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法和相关装置 |
CN112306711A (zh) * | 2020-10-21 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN113656368A (zh) * | 2021-07-29 | 2021-11-16 | 济南浪潮数据技术有限公司 | 一种云平台日志处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
US20100145978A1 (en) * | 2008-12-08 | 2010-06-10 | Microsoft Corporation | Techniques to provide unified logging services |
CN102024021A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种逻辑文件系统元数据的日志方法 |
CN102053923A (zh) * | 2009-11-05 | 2011-05-11 | 北京金山软件有限公司 | 一种日志数据的存储方法及存储装置 |
-
2011
- 2011-10-25 CN CN2011103259847A patent/CN102368210A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
US20100145978A1 (en) * | 2008-12-08 | 2010-06-10 | Microsoft Corporation | Techniques to provide unified logging services |
CN102053923A (zh) * | 2009-11-05 | 2011-05-11 | 北京金山软件有限公司 | 一种日志数据的存储方法及存储装置 |
CN102024021A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种逻辑文件系统元数据的日志方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235754A (zh) * | 2013-04-24 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN103235754B (zh) * | 2013-04-24 | 2016-10-05 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
WO2017041638A1 (zh) * | 2015-09-08 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
CN106681658A (zh) * | 2016-11-25 | 2017-05-17 | 天津津航计算技术研究所 | 基于多线程实现数据记录仪海量数据高速转存的方法 |
WO2019242437A1 (zh) * | 2018-06-20 | 2019-12-26 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法和相关装置 |
US11803538B2 (en) | 2018-06-20 | 2023-10-31 | Tencent Technology (Shenzhen) Company Limited | Distributed transaction processing method and related apparatus |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及系统 |
CN110262922B (zh) * | 2019-05-15 | 2021-02-09 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及系统 |
CN112306711A (zh) * | 2020-10-21 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN112306711B (zh) * | 2020-10-21 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN113656368A (zh) * | 2021-07-29 | 2021-11-16 | 济南浪潮数据技术有限公司 | 一种云平台日志处理方法及系统 |
CN113656368B (zh) * | 2021-07-29 | 2024-07-23 | 济南浪潮数据技术有限公司 | 一种云平台日志处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368210A (zh) | 一种分布式系统中基于流水线的元数据日志的方法 | |
US8527459B2 (en) | System and method for data replication between heterogeneous databases | |
US20220414090A1 (en) | Blockchain data index method, blockchain data storage method and device | |
US7853571B2 (en) | Techniques for file system recovery | |
US11010262B2 (en) | Database system recovery using preliminary and final slave node replay positions | |
US8756192B2 (en) | Dispatching conflicting data changes | |
CN101989929B (zh) | 容灾数据备份的方法及系统 | |
CN102831222B (zh) | 一种基于重复数据删除的差量压缩方法 | |
CN100583050C (zh) | 基于时间戳日志存储的连续数据保护和恢复方法 | |
CN101286127B (zh) | 一种多叉日志存储的连续数据保护和恢复方法 | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN102368267A (zh) | 一种维护分布式系统中副本一致性的方法 | |
CN101777017B (zh) | 一种连续数据保护系统的快速恢复方法 | |
CN102955720A (zh) | 一种提高ext文件系统稳定性的方法 | |
CN102819615A (zh) | 一种基于应用快照的数据库持续数据保护方法 | |
US7254683B2 (en) | Speculative data mirroring apparatus method and system | |
JP2010532052A5 (zh) | ||
CN102231137A (zh) | 一种数据存储系统及方法 | |
CN102385624B (zh) | 一种面向分布式文件系统的日志数据组织的方法 | |
CN102708166B (zh) | 数据复制方法、数据恢复方法及装置 | |
US20120284295A1 (en) | Lightweight caching of transaction log for sequential access | |
CN103530203A (zh) | 遥感卫星数据的异地备份系统及方法 | |
CN110990363A (zh) | 一种分布式数据库多线程协同事务日志回放方法、系统 | |
CN102541982A (zh) | 一种组织和访问元数据文件日志的方法 | |
CN111930692B (zh) | 一种基于日志解析同步的事务合并执行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120307 |