CN113487026A - 一种图计算中io节点高效读取数据的方法及系统 - Google Patents
一种图计算中io节点高效读取数据的方法及系统 Download PDFInfo
- Publication number
- CN113487026A CN113487026A CN202110757955.1A CN202110757955A CN113487026A CN 113487026 A CN113487026 A CN 113487026A CN 202110757955 A CN202110757955 A CN 202110757955A CN 113487026 A CN113487026 A CN 113487026A
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- task
- offset
- cache
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 5
- 238000013500 data storage Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000010801 machine learning Methods 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种图计算中IO节点高效读取数据的方法及系统,系统主要包括任务接收系统,任务分解系统,缓存系统,数据读取系统;其中任务接收系统负责与IO节点交互,接收IO节点的数据读取任务,并返回数据;任务分解系统将IO节点的数据解读任务,分解成独立子任务读取逐个表字段;缓存系统管理表字段读取任务对应的缓存,在表字段中根据数据偏移获取数据块地址;数据读取系统对接不同存储系统,提供统一高效的读取能力,对不同存储介质采用不同读取逻辑。本发明解决了现有机器学习模型训练动辄十几小时到数日的问题,提高了系统在识别相同数据块时候的速度和效率。
Description
技术领域
本发明涉及一种图计算中IO节点高效读取数据的方法及系统,属于AI/大数据领域。
背景技术
使用机器学习算法进行模型训练,都需要多次使用训练数据迭代进行训练,其目的是通过最小化或者最大化误差函数,让模型在训练数据得到较好的预测或分类效果。现有的图计算框架,如tensorflow或者spark能够很好将数据流图调度到分布式的节点上,进行高效计算。现有的工作包括优化计算图计算中节点之间中间数据的存储方式和优化数据之间数据传输模式。优化节点间数据存储方式通过使用内存来代替磁盘文件来保存节点间的中间结果数据,后续计算节点从内存中读取数据,无需从磁盘中读取,提高了图模型计算效率。另一种优化数据之间的数据传输方式主要通过计算节点之间的做异步传输中间结果,无需等待计算全部完成再开始传输数据,来提高效率。
因为训练数据一般存储在数据仓库或者数据库中,而图计算引擎是另一个分布式系统,图计算引擎向数据仓库系统读取数据是一种一次性的操作,已有工作的这两类方法没有从优化图模型的IO节点读取数据的性能上来考虑。在缓存的使用上,分布式系统一般通过缓存系统存储结构化对象或者存储小文件,提高后续数据读取速度,但是在机器学习模型训练中,数据的使用以列(指标/标签)为单位,这种存储方式不完全适应机器学习中数据的使用。
发明内容
本发明的目的在于解决现有技术的不足,即现有机器学习模型训练动辄十几小时到数日的问题,提供一种相同数据块的自适应识别方法及系统,提高系统在识别相同数据块时候的速度和效率。
为实现上述目的,本发明采取的技术方案如下:
一种图计算中IO节点高效读取数据的方法,其包括以下步骤:
步骤1,对IO节点读取数据请求进行代理,将请求转发到数据读取子系统;
步骤2,在数据读取子系统中,根据要读取的表和字段,将任务拆分成多个子任务,每个任务负责读取一张表的一个字段;
步骤3,获取一个任务,初始化读取偏移量offset=0,初始化数据块大小BSize,每次读取的连续块数量BNumber,获取数据最大偏移量MaxOffset;
步骤4,根据表和字段名,判断当前表内该字段是否被缓存,如果被缓存,则进行步骤6,否则,进行步骤5;
步骤5,初始话表内该字段的缓存对象CObject;
步骤6,在缓存对象中,查找偏移量offset的数据块是否已经在缓存中,如果在缓存中,进行步骤7,否则进行步骤8;
步骤7,读取缓存中对应偏移量offset的数据块,将数据拷贝到发送队列中,offset=offset+BSize,如果数据读取完毕,进行步骤12,否则进行步骤6;
步骤8,准备从外部存储介质中读取数据,如果数据在列式存储介质中,进行步骤9,否则进行步骤11;
步骤9,从列式存储中,读取当前表内该字段偏移量是offset,长度Bsize的数据,将数据写入内存中,并在CObject中记录索引,内容为数据存储位置;
步骤10,offset=offset+Bsize,进行步骤6;
步骤11,从行式存储介质中,按照行读取长度为Bsize的所有数据记录,为数据记录的所有字段,在表内各个字段缓存对象CObject中,存储offset对应数据块,进行步骤10;
步骤12,将数据返回给计算图模型的IO节点。
进一步的,计算图模型中,模型会被不断迭代训练,同一个IO读取节点会被执行多次。
进一步的,按照表和列来组织缓存数据,通过缓存对象来存储数据索引表,通过索引获取数据在系统中保存的真实地址。
进一步的,数据按照以块为单位进行存储。
一种图计算中IO节点高效读取数据的系统,其特征在于,该系统包括:
任务接收系统:负责与IO节点交互,接收IO节点的数据读取任务,并返回数据;
任务分解系统:将IO节点的数据解读任务,分解成独立子任务读取逐个表字段;
缓存系统:管理表字段读取任务对应的缓存,包括表字段到数据缓存对象的映射(map),在表字段中根据数据偏移获取数据块地址;
数据读取系统:对接不同存储系统,提供统一高效的读取能力,对不同存储介质(行存储和列存储),采用不同读取逻辑。
本发明的有益效果是:本发明适用于需要多次迭代计算的机器学习任务,其主要优点体现在:
1)通过对数据的缓存,机器学习任务通过图计算引擎训练模型时,降低每个迭代的IO等待耗时;可以极大的提高实际神经网络模型的训练时间。在计算资源充足的环境下,可以提速10倍。
2)重组缓存中的数据组织方式,以(表,字段)二元组的维度来管理缓存数据。本质是列式存储的数据,更加有利机器学习的任务读取。
3)将数据读取与图模型解耦,能够将原本独立的数据读取任务,交给专用系统来处理,方便合并读请求,减少重复读取。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明的流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例一。
本实施案例公开了一种图计算中IO节点高效读取数据的方法,在tensorflow的应用。实施场景如下所述:
tensorflow通过定义数据流图,用点描述操作,用边描述数据流向,通过丰富的操作来支持复杂的机器学习任务执行。
在此场景下,本实施例的方法具体实施步骤为:
步骤1,对IO节点读取数据请求进行代理,将请求转发到数据读取子系统。
在具体实施时,这里代理的具体实现方式,可以通过重新实现IO节点逻辑,将请求发送给数据读取子系统。将数据读取子系统作为透明代理。
步骤2,在数据读取子系统中,根据要读取的表和字段,将任务拆分成多个子任务,每个任务负责读取一张表table的一个字段field1,任务为Task(table,field1)。
任务由表名table和字段名field唯一确定,用于表示任务的目标是缓存指定表的指定字段。
步骤3,获取一个任务,初始化读取偏移量offset=0,初始化数据块大小BSize,每次读取的连续块数量BNumber,获取数据最大偏移量MaxOffset;
初始化的目的是,设置缓存的基本配置信息,设置缓存读取的游标变量,设置每个数据块的大小BSize,查询数据的长度,了解需要缓存的数据长度MaxOffset。
步骤4,根据表和字段名,在Htable中查询Htable(table,field1)是否存在,如果对象存在,表示(table,field1)曾经被缓存,则进行步骤6,否则,进行步骤5;
考虑到需要存储多个字段数据库,通过一个哈希表来存储字段到缓存对象的映射。
步骤5,初始化表内该字段的缓存对象CObject;
缓存对象中应当包含缓存块大小BSize,缓存索引在内存中的地址。
步骤6,在缓存对象中,查找偏移量offset的数据块是否已经在缓存中,如果在缓存中,进行步骤7,否则进行步骤8。
步骤7,读取缓存中对应偏移量offset的数据块,将数据拷贝到发送队列中,offset=offset+BSize,如果数据读取完毕,进行步骤12,否则进行步骤6;
迭代去读取数据,每次读取一个块大小的数据。
步骤8,准备从外部存储介质中读取数据,如果数据在列式存储介质中,进行步骤9,否则进行步骤11。
步骤9,从列式存储中,读取当前表内该字段偏移量是offset,长度Bsize的数据,将数据写入内存中,并在CObject中记录索引,内容为数据存储位置。
步骤10,offset=offset+Bsize,进行步骤6。
步骤11,从行式存储介质中,按照行读取长度为Bsize的所有数据记录,为数据记录的所有字段,在表内各个字段缓存对象CObject中,存储offset对应数据块,进行步骤10;
行式存储介质,按行来读取数据,所以每次读取可以缓存全部列的数据。
步骤12,将数据返回给计算图模型的IO节点。
实施例二。
本实施例公开一种为上述方法服务的系统,该系统包括:
任务接收系统:负责与IO节点交互,接收IO节点的数据读取任务,并返回数据;
任务分解系统:将IO节点的数据解读任务,分解成独立子任务读取逐个表字段;
缓存系统:管理表字段读取任务对应的缓存,包括表字段到数据缓存对象的映射(map),在表字段中根据数据偏移获取数据块地址;
数据读取系统:对接不同存储系统,提供统一高效的读取能力,对不同存储介质(行存储和列存储),采用不同读取逻辑。
综上,本发明优势在于:(1)通过一个系统来代理所有数据读取任务;缓存已经读取过的字段,减少数据重复读取的时间;(2)以列为维度组织缓存数据。数据使用了利用了顺序读取,加速数据读取过程;(3)数据读取系统作为独立应用,能够实现多个任务共享读缓存,提高整体集群性能。本发明特点在于:(1)数据存储结构层面:设计了以列为维度的数据缓存方式,更适合图计算和深度学习使用;(2)系统架构层面:通过代理读取任务,将数据读取任务,交给独立的系统解决,实现IO优化与图计算逻辑分离;(3)针对图计算中数据读取过程进行优化,实际效果降低耗时80%
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的普通技术人员应该了解,上述实施例不以任何形式限制本发明的保护范围,凡采用等同替换等方式所获得的技术方案,均落于本发明的保护范围内。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (5)
1.一种图计算中IO节点高效读取数据的方法,其特征在于,包括以下步骤:
步骤1,对IO节点读取数据请求进行代理,将请求转发到数据读取子系统;
步骤2,在数据读取子系统中,根据要读取的表和字段,将任务拆分成多个子任务,每个任务负责读取一张表的一个字段;
步骤3,获取一个任务,初始化读取偏移量offset=0,初始化数据块大小BSize,每次读取的连续块数量BNumber,获取数据最大偏移量MaxOffset;
步骤4,根据表和字段名,判断当前表内该字段是否被缓存,如果被缓存,则进行步骤6,否则,进行步骤5;
步骤5,初始话表内该字段的缓存对象CObject;
步骤6,在缓存对象中,查找偏移量offset的数据块是否已经在缓存中,如果在缓存中,进行步骤7,否则进行步骤8;
步骤7,读取缓存中对应偏移量offset的数据块,将数据拷贝到发送队列中,offset=offset+BSize,如果数据读取完毕,进行步骤12,否则进行步骤6;
步骤8,准备从外部存储介质中读取数据,如果数据在列式存储介质中,进行步骤9,否则进行步骤11;
步骤9,从列式存储中,读取当前表内该字段偏移量是offset,长度Bsize的数据,将数据写入内存中,并在CObject中记录索引,内容为数据存储位置;
步骤10,offset=offset+Bsize,进行步骤6;
步骤11,从行式存储介质中,按照行读取长度为Bsize的所有数据记录,为数据记录的所有字段,在表内各个字段缓存对象CObject中,存储offset对应数据块,进行步骤10;
步骤12,将数据返回给计算图模型的IO节点。
2.根据权利要求1所述的一种图计算中IO节点高效读取数据的方法,其特征在于,计算图模型中,模型会被不断迭代训练,同一个IO读取节点会被执行多次。
3.根据权利要求2所述的一种图计算中IO节点高效读取数据的方法,其特征在于,按照表和列来组织缓存数据,通过缓存对象来存储数据索引表,通过索引获取数据在系统中保存的真实地址。
4.根据权利要求3所述的一种图计算中IO节点高效读取数据的方法,其特征在于,数据按照以块为单位进行存储。
5.一种图计算中IO节点高效读取数据的系统,其特征在于,该系统包括:
任务接收系统:负责与IO节点交互,接收IO节点的数据读取任务,并返回数据;
任务分解系统:将IO节点的数据解读任务,分解成独立子任务读取逐个表字段;
缓存系统:管理表字段读取任务对应的缓存,包括表字段到数据缓存对象的映射,在表字段中根据数据偏移获取数据块地址;
数据读取系统:对接不同存储系统,提供统一高效的读取能力,对不同存储介质,采用不同读取逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757955.1A CN113487026B (zh) | 2021-07-05 | 2021-07-05 | 一种图计算中io节点高效读取数据的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757955.1A CN113487026B (zh) | 2021-07-05 | 2021-07-05 | 一种图计算中io节点高效读取数据的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113487026A true CN113487026A (zh) | 2021-10-08 |
CN113487026B CN113487026B (zh) | 2024-05-03 |
Family
ID=77940303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110757955.1A Active CN113487026B (zh) | 2021-07-05 | 2021-07-05 | 一种图计算中io节点高效读取数据的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113487026B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715452A (en) * | 1993-12-27 | 1998-02-03 | Hitachi, Ltd. | Process of transferring file, process of gaining access to data and process of writing data |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN103336672A (zh) * | 2013-06-28 | 2013-10-02 | 华为技术有限公司 | 数据读取方法、装置及计算设备 |
CN104331255A (zh) * | 2014-11-17 | 2015-02-04 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据读取方法 |
CN107943858A (zh) * | 2017-11-07 | 2018-04-20 | 广州探迹科技有限公司 | 一种爬虫系统io优化方法及装置 |
US20180121366A1 (en) * | 2016-11-01 | 2018-05-03 | Alibaba Group Holding Limited | Read/write request processing method and apparatus |
CN107992358A (zh) * | 2017-11-13 | 2018-05-04 | 华中科技大学 | 一种适用于核外图处理系统的异步io执行方法及系统 |
JP2019101700A (ja) * | 2017-11-30 | 2019-06-24 | 株式会社日立製作所 | システム及びその制御方法並びにプログラム |
-
2021
- 2021-07-05 CN CN202110757955.1A patent/CN113487026B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715452A (en) * | 1993-12-27 | 1998-02-03 | Hitachi, Ltd. | Process of transferring file, process of gaining access to data and process of writing data |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN103336672A (zh) * | 2013-06-28 | 2013-10-02 | 华为技术有限公司 | 数据读取方法、装置及计算设备 |
CN104331255A (zh) * | 2014-11-17 | 2015-02-04 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据读取方法 |
US20180121366A1 (en) * | 2016-11-01 | 2018-05-03 | Alibaba Group Holding Limited | Read/write request processing method and apparatus |
CN107943858A (zh) * | 2017-11-07 | 2018-04-20 | 广州探迹科技有限公司 | 一种爬虫系统io优化方法及装置 |
CN107992358A (zh) * | 2017-11-13 | 2018-05-04 | 华中科技大学 | 一种适用于核外图处理系统的异步io执行方法及系统 |
JP2019101700A (ja) * | 2017-11-30 | 2019-06-24 | 株式会社日立製作所 | システム及びその制御方法並びにプログラム |
Non-Patent Citations (2)
Title |
---|
李琼;郭御风;蒋艳凰;: "基于强化学习的智能I/O调度算法", 计算机工程与科学, no. 07, 15 July 2010 (2010-07-15) * |
石星: "基于深度学习的块级缓存预取优化研究", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 3, 15 March 2020 (2020-03-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN113487026B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8364751B2 (en) | Automated client/server operation partitioning | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN111414389B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN103177056A (zh) | 存储为行存储和列存储二者的混合数据库表 | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
US7519636B2 (en) | Key sequenced clustered I/O in a database management system | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
CN111309266A (zh) | 一种基于ceph的分布式存储元数据系统日志优化系统与方法 | |
CN111708895B (zh) | 一种知识图谱系统的构建方法及装置 | |
CN103631838A (zh) | 用于以存储高效的方式存储表格数据的方法和系统 | |
CN113268457B (zh) | 一种支持高效写的自适应学习索引方法和系统 | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
US20100191764A1 (en) | In-memory data optimization system | |
CN113487026B (zh) | 一种图计算中io节点高效读取数据的方法及系统 | |
CN113311994A (zh) | 一种基于高并发的数据缓存方法 | |
CN110716940B (zh) | 一种增量式数据存取系统 | |
CN114185934B (zh) | 一种基于天盾数据库列存储的索引及查询方法及系统 | |
CN115543195A (zh) | 一种适用于时序存储的block落盘方法及系统 | |
CN113722320A (zh) | 一种基于并行的图数据索引的持久化方法 | |
CN109241098B (zh) | 一种分布式数据库的查询优化方法 | |
CN111695685A (zh) | 一种面向图神经网络应用的片上存储系统及方法 | |
CN114706850B (zh) | 一种分布式异构关系型数据库入库方法 | |
US20220229837A1 (en) | Data Storage and Data Retrieval Methods and Devices | |
CN115309742A (zh) | 一种建表的方法、装置、电子设备和存储介质 |
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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 210006 No. 501 Zhongshan South Road, Nanjing, Jiangsu Province Applicant after: Jiangsu Haobai Technology Co.,Ltd. Address before: 210006 No. 501 Zhongshan South Road, Nanjing, Jiangsu Province Applicant before: JIANGSU BEST TONE INFORMATION SERVICE CO.,LTD. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |