CN103123575A - 一种数据写入方法 - Google Patents

一种数据写入方法 Download PDF

Info

Publication number
CN103123575A
CN103123575A CN2011103674407A CN201110367440A CN103123575A CN 103123575 A CN103123575 A CN 103123575A CN 2011103674407 A CN2011103674407 A CN 2011103674407A CN 201110367440 A CN201110367440 A CN 201110367440A CN 103123575 A CN103123575 A CN 103123575A
Authority
CN
China
Prior art keywords
disk
instruction
write
buffer memory
file server
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
Application number
CN2011103674407A
Other languages
English (en)
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.)
BEIJING CUZKON TECHNOLOGY DEVELOPMENT Co Ltd
Original Assignee
BEIJING CUZKON TECHNOLOGY DEVELOPMENT Co Ltd
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 BEIJING CUZKON TECHNOLOGY DEVELOPMENT Co Ltd filed Critical BEIJING CUZKON TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CN2011103674407A priority Critical patent/CN103123575A/zh
Publication of CN103123575A publication Critical patent/CN103123575A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据写入方法,包括:为文件服务器的每个磁盘或磁盘组设置一个写入定时器任务;文件服务器将所有写入数据的指令缓存到内存中;分别等待属于自身的写入定时器任务后,文件服务器的磁盘或磁盘组到缓存中读取关于该磁盘或磁盘组的写入指令并执行存储操作;当缓存中的所有关于该磁盘或磁盘组的写入指令执行完后,等待属于自身的所述写入定时器任务,重复执行前一步骤。本发明实施例提供了一种高性能的数据写入方法,通过将文件服务器接收到的写入指令放入缓存,并对写入指令进行分类排序,每隔一段时间提取执行多个写入指令,将属于同一文件的写入指令按顺序执行,避免重复寻址,能够较大提升存储效率。

Description

一种数据写入方法
技术领域
本发明涉及计算机存储技术,特别是一种数据写入方法。
背景技术
在互联网中,以文件数据共享为目标,将供多台计算机共享的文件存放于一台计算机中,这台计算机就被称为文件服务器。文件服务器具有分时系统管理的全部功能,能够对全网统一管理,能够提供网络用户访问文件、目录的并发控制和安全保密措施。
对于一个大量用户同时使用的文件服务器,磁盘的速度往往是整个系统的瓶颈,尤其是磁盘的写入速度。在磁盘的性能中,读速度是最快的,写速度相对比较慢,特别是随机写,由于磁头要不断的寻址,相对于顺序写入,随机写入性能大幅度降低。
举个例子,在现有的文件服务器系统中,用户针对文件服务器中文件的存储主要采用先到先写入的方式进行,如图1所示:假如系统中有三个文件A、B和C,用户客户端按时间顺序先后向文件服务器发送了9条写入指令,分别是指令1-指令9,其中指令1、4、7是针对同一文件A的写入操作,指令2、5、8是针对同一文件B的写入操作,以此类推,针对同一文件写入的数据会保存在一段连续的地址空间中。则文件服务器接收到这9条指令后执行的写入顺序与其接收顺序相同,分别也是指令1-指令9。由于用户客户端所发送的针对同一文件的3条写入指令其存储的数据应保存在一段连续的地址空间中,如果这3条指令连续执行的话其存储效率是最高的,但事实上,按接收顺序执行的话,文件服务器每接收到一条新的写入指令就要重新寻址一次,导致存储效率被大幅降低。因此,现有的存储方式已经成为了提升文件服务器存储速度的主要瓶颈。
为了提高写入性能,通常服务器都会采用缓存技术,接受到数据后并不马上将数据写入到磁盘,而是缓存一段时间以后,累积了比较多的数据以后才将数据同时写入,这在一定程度上提高了磁盘的写入性能。但是这种简单的缓存方式,也不能完全发挥整个系统的io潜能。在采用缓存的系统里面,如果允许多个文件并发写入磁盘,由于不同文件可能在同一个磁盘里面,因此并发写入有上文所述的问题(磁头不断重新寻址);如果不允许并发写入,由于现有文件服务器一般由多个磁盘组成,顺序写入将导致只有部分磁盘处于工作状态,也不利于发挥服务器磁盘的最大性能。
发明内容
有鉴于此,本发明的目的在于提供一种数据写入方法,用于最大限度提高文件服务器的磁盘存储性能。
本发明的实施例提供了一种数据写入方法,包括:
为文件服务器的每个磁盘或磁盘组设置一个写入定时器任务;
文件服务器将所有写入数据的指令缓存到内存中;
分别等待属于自身的写入定时器任务后,文件服务器的磁盘或磁盘组到缓存中读取关于该磁盘或磁盘组的写入指令并执行存储操作;
当缓存中的所有关于该磁盘或磁盘组的写入指令执行完后,等待属于自身的所述写入定时器任务,重复执行前一步骤。
本发明实施例提供了一种高性能的数据写入方法,通过将文件服务器接收到的写入指令放入缓存,并对写入指令进行分类排序,每隔一段时间提取执行多个写入指令,将属于同一文件的写入指令按顺序执行,避免重复寻址,能够较大提升存储效率。
进一步地,将不同磁盘(磁盘组)的文件进行分类写入,允许不同磁盘组的数据同时写入,提高了磁盘io性能。
附图说明
图1为背景技术中用户针对文件服务器中文件的存储方式的示意图;
图2为本发明实施例提供的数据写入方法的流程图;
图3为本发明实施例提供的文件服务器到缓存中读取写入指令执行存储操作的方法流程图。
具体实施方式
本发明实施例提供了一种高性能的数据写入方法,通过将文件服务器接收到的写入指令放入缓存,并对写入指令进行分类排序,每隔一段时间提取执行多个写入指令,将属于同一文件的写入指令按顺序执行,避免重复寻址,能够较大提升存储效率;同时,将不同磁盘(磁盘组)的文件进行分类写入,允许不同磁盘组的数据同时写入,提高磁盘io性能。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图2为本发明实施例中的数据写入方法的流程图,包括以下步骤:
步骤201、为文件服务器的每个磁盘或磁盘组设置一个写入定时器任务timer(i)(i为文件服务器中磁盘或磁盘组的编号)。所述timer(i)是指文件服务器中的第i个磁盘或磁盘组在间隔该时间段后即启动一个数据写入过程,文件服务器的第i个磁盘或磁盘组在该写入过程中到内存中读取关于本磁盘文件的写入指令,并执行相应的存储操作,直到所有写入指令都已经执行完毕,然后再进入下一个timer(i)。在系统负载高时,由于需要写入的数据比较多,一个timer过程可能执行较长时间,两个timer过程间隔的时间也就比较长,累积的数据量比较大,一次顺序写入的数据也比较多,从而导致平均写入性能提高。在一个较佳实施例中,可以设置timer间隔为200ms。为不同磁盘或磁盘组设置的timer可以相同也可以不同。
步骤202、文件服务器将所有写入数据的指令缓存到内存中。将写入指令放到内存中缓存,并分类排序后执行,这是本发明实施例针对现有技术的重大改进,避免文件服务器每接收到一条写入指令就执行一条,将多个写入指令先放入内存缓存,每隔timer(i),文件服务器中的第i个磁盘或磁盘组就到缓存中读取关于第i个磁盘或磁盘组的写入指令,并将属于用户客户端对同一文件的写入指令顺序执行,避免重复寻址,能够较大提升存储效率。
步骤203、等待timer(i)后,文件服务器的第i个磁盘或磁盘组到缓存中读取关于第i个磁盘或磁盘组的写入指令执行存储操作;同时,文件服务器的其它磁盘或磁盘组也执行该操作,即等待为自己设定的timer后,到缓存中读取属于自己的写入指令并执行存储操作。以200ms的timer(i)为例,每隔200ms,文件服务器的第i个磁盘或磁盘组到缓存中读取写入指令,其操作的步骤如图3所述,包括:
步骤2031、文件服务器的第i个磁盘或磁盘组将缓存中的所有关于第i个磁盘或磁盘组的写入指令归类排序。以图1中的情况为例,假如在等待了200ms后,文件服务器的第i个磁盘或磁盘组在缓存中读取了9条关于第i个磁盘或磁盘组的写入指令,则将该9条指令按其针对的文件进行分类,将针对同一文件的指令1、4、7分成一类,指令2、5、8分成一类,指令3、6、9分成一类。并在同类指令中,按指令写入数据的地址顺序对该类所有指令进行排序,写入地址靠前的先执行,否则后执行。之所以还要进行排序,也是为了提高存储效率,使得文件服务器尽可能对同一段地址空间连续写入,减少寻址操作。需要注意的是,文件服务器只将针对同一文件的写入指令归入一类,因为只有这类指令执行时才会对一段连续的地址空间进行写入操作,该分类并不区分用户客户端,即使不同客户端发送的对同一文件的写入指令同样会分为一类。
步骤2032、文件服务器的第i个磁盘或磁盘组顺序执行缓存中同类指令的写入操作。执行时,按每类指令所属文件的文件名或每类指令中的第一条的发送时间,先执行文件名排序靠前或第一条指令发送时间最早的指令类。在图1的例子中,其指令执行顺序为:1、4、7、2、5、8、3、6、9。文件服务器的第i个磁盘或磁盘组在缓存中的写入指令越多,则存在属于对同一文件的写入指令的概率越大,从而一次顺序写入的数据也比较多,导致平均写入性能得到较大提高。图1的例子中,只需进行3次寻址,而按现有的存储方法,则需寻址9次。
步骤2033、文件服务器的第i个磁盘或磁盘组执行完缓存中的所有关于本磁盘或磁盘组的写入指令,停止存储操作。文件服务器中的磁盘或磁盘组持续将缓存中的所有有关自己的写入指令顺序执行,如果在执行过程中有新的有关自己的写入指令进入缓存,则按两种情况处理:如果该写入指令所属文件的其它写入指令已经开始执行,则暂不执行该指令;如果该写入指令所属文件的其它写入指令尚未执行,则同样对其分类排序,并顺序执行,直到缓存中关于本磁盘或磁盘组的所有指令执行完。
步骤204、缓存中的所有写入指令执行完后,等待timer,重复执行步骤203。
通过以上方法,将缓存中的写入指令按其所针对的文件和写入的地址顺序进行分类和排序后,再顺序执行对同一文件的写入指令,使得一次顺序写入的数据更多,明显提升了存储效率,
在现有技术中,用户发送写入指令,则文件服务器即顺序执行该指令,会回复一条确认响应消息,表明响应成功,则客户端不再重复发送该写入指令。而当大量寻址导致存储速度低时,一旦服务器发生宕机,导致某写入指令未执行,则客户端在一定时间没接收到该指令的响应后,会重新发送。
而在本发明实施例所述的数据写入方法中,某用户的客户端在发送完针对同一文件的所有写入指令时,会上传一条commit(提交)指令,向服务器确认完成了写入操作;而一旦用户客户端在发送commit指令后没有得到响应确认,会将针对该文件的所有写入指令都重新发送或将未写入成功的指令重新发送。由于用户客户端发送的写入指令都存储在缓存中,只要缓存接收到某指令,即会向相应客户端返回响应确认。于是可能会存在这种情况,某客户端发送了写入指令和commit指令,也接收到了文件服务器端的响应确认,而实际上该写入指令还在缓存中等待,尚未被执行。如果此时服务器发生宕机,缓存中的指令丢失,则该指令未被执行,客户端却无法获知,因为客户端接收到了响应确认后就不再重新发送该写入指令了。
为了避免这种情况,减少宕机带来的写入指令丢失造成的损失,本发明实施例对前述数据写入方法的流程进行了补充,即在缓存接收到了客户端发送的commit指令时,会立即执行该客户端针对该文件的所有写入指令。在客户端发送的commit指令中,包含客户端信息及其针对的文件信息,文件服务器根据该信息,立即执行该客户端针对该文件的所有写入指令,避免此时文件服务器宕机,导致的指令丢失而没有被执行的情况。这样的话,即使用户客户端在发送写入指令的过程中发生宕机,由于宕机后不能对commit指令确认,使得该客户端还是会重新发送写入指令。
一般情况下,在文件服务器中都会包含多个磁盘阵列,以容纳海量的数据文件,例如,可将文件服务器中的24个磁盘划为4个磁盘阵列,每个磁盘阵列绑定6个磁盘,用于提高磁盘阵列内部的容错能力。在本发明的实施例中,对文件服务器的磁盘进行分组的依据有两个,一种是对文件服务器中的多个磁盘任意分组;另一种是在文件服务器中存在磁盘阵列的情况下,分组的方式是确保一个磁盘阵列中的磁盘不会被划分到多个磁盘组中。本实施例通过对磁盘或磁盘阵列分组,比如给每个磁盘组设置一个timer,使得多个磁盘组可以并发执行存储操作,进一步提高了存储速度。以图1情况为例,假如文件A和B在同一磁盘中,文件C在另一磁盘中,则按照磁盘分类的话,缓存中的指令1-9除了按照文件和地址进行分类排序外,还进一步按照磁盘分组,1-6为一组,7-9为另一组。这样,在执行过程中,文件服务器在顺序执行指令1、4、7、2、5、8的同时,还并发执行指令3、6、9,进一步提高的存储效率。这个实施例也适合对文件服务器进行扩容时,例如要在文件服务器中增加一个新的磁盘,那么按此方案只需给新的磁盘设置一个timer即可。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (7)

1.一种数据写入方法,其特征在于,包括:
为文件服务器的每个磁盘或磁盘组设置一个写入定时器任务;
文件服务器将所有写入数据的指令缓存到内存中;
分别等待属于自身的写入定时器任务后,文件服务器的磁盘或磁盘组到缓存中读取关于该磁盘或磁盘组的写入指令并执行存储操作;
当缓存中的所有关于该磁盘或磁盘组的写入指令执行完后,等待属于自身的所述写入定时器任务,重复执行前一步骤。
2.根据权利要求1所述的数据写入方法,其特征在于,所述为不同磁盘或磁盘组设置的写入定时器任务相同或不同。
3.根据权利要求2所述的数据写入方法,其特征在于,所述到缓存中读取关于该磁盘或磁盘组的写入指令并执行存储操作的方法具体包括:
文件服务器的磁盘或磁盘组将缓存中的所有关于该磁盘或磁盘组的写入指令分类排序;
文件服务器的所述磁盘或磁盘组按所述分类排序后的顺序分别执行缓存中关于该磁盘或磁盘组的各分类写入指令的存储操作;
文件服务器的所述磁盘或磁盘组执行完缓存中的所有关于该磁盘或磁盘组的写入指令,停止存储操作。
4.根据权利要求3所述的数据写入方法,其特征在于,所述对缓存中所有关于该磁盘或磁盘组的写入指令分类排序具体包括:
将缓存中关于该磁盘或磁盘组的属于对同一文件的写入指令分为一类,并在同一类别写入指令中按指令写入数据的地址顺序对该类所有指令进行排序,写入地址靠前的先执行,否则后执行;针对不同类别的写入指令,按每类指令中的第一条的发送时间,先执行第一条指令发送时间最早的指令类。
5.根据权利要求4所述的数据写入方法,其特征在于,所述文件服务器的磁盘或磁盘组在执行缓存中的关于自身的写入指令时,如果在执行过程中有新的有关自身的写入指令进入缓存,则:
如果该新的写入指令所属文件的其它写入指令已经开始执行,则暂不执行该指令;
如果该新的写入指令所属文件的其它写入指令尚未执行,则同样对其分类排序,并顺序执行,直到缓存中关于本磁盘或磁盘组的所有写入指令执行完。
6.根据权利要求1-5中任意一项所述的数据写入方法,其特征在于,该方法进一步包括:
当所述缓存中接收到了一客户端发送的针对一文件的数据写入提交commit指令时,则立即执行该客户端针对该文件的所有写入指令。
7.根据权利要求1-5中任意一项所述的数据写入方法,其特征在于,该方法进一步包括:
当文件服务器中包含磁盘阵列时,对磁盘分组的方式是确保一个磁盘阵列中的磁盘不被划分到多个磁盘组中。
CN2011103674407A 2011-11-18 2011-11-18 一种数据写入方法 Pending CN103123575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103674407A CN103123575A (zh) 2011-11-18 2011-11-18 一种数据写入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103674407A CN103123575A (zh) 2011-11-18 2011-11-18 一种数据写入方法

Publications (1)

Publication Number Publication Date
CN103123575A true CN103123575A (zh) 2013-05-29

Family

ID=48454569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103674407A Pending CN103123575A (zh) 2011-11-18 2011-11-18 一种数据写入方法

Country Status (1)

Country Link
CN (1) CN103123575A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077110A (zh) * 2014-07-09 2014-10-01 肖龙旭 一种基于系统行为的文件调度方法
CN105243027A (zh) * 2015-09-24 2016-01-13 华为技术有限公司 在存储设备中存储数据的方法和存储控制器
CN105471955A (zh) * 2014-09-11 2016-04-06 北京金山云网络技术有限公司 分布式文件系统的写方法、客户端设备及分布式文件系统
CN104077110B (zh) * 2014-07-09 2016-11-30 肖龙旭 一种基于系统行为的文件调度方法
CN110007966A (zh) * 2019-04-10 2019-07-12 龚伟峰 一种降低内存读取乱序的方法
CN111158883A (zh) * 2019-12-31 2020-05-15 青岛海尔科技有限公司 用于操作系统任务分类的方法、装置及计算机
CN114489515A (zh) * 2022-02-11 2022-05-13 北京中电兴发科技有限公司 一种基于流存储的数据写入方法
WO2022261836A1 (zh) * 2021-06-15 2022-12-22 华为技术有限公司 存储控制方法及装置、存储方法及装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0216622A (ja) * 1988-07-05 1990-01-19 Nec Corp 外部記憶装置シュミレータ
EP1193591A2 (en) * 2000-09-29 2002-04-03 Matsushita Electric Industrial Co., Ltd. Data storage array device and data access method
CN101398746A (zh) * 2007-09-25 2009-04-01 广达电脑股份有限公司 检测并修复失败指令的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0216622A (ja) * 1988-07-05 1990-01-19 Nec Corp 外部記憶装置シュミレータ
EP1193591A2 (en) * 2000-09-29 2002-04-03 Matsushita Electric Industrial Co., Ltd. Data storage array device and data access method
CN101398746A (zh) * 2007-09-25 2009-04-01 广达电脑股份有限公司 检测并修复失败指令的方法及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077110A (zh) * 2014-07-09 2014-10-01 肖龙旭 一种基于系统行为的文件调度方法
CN104077110B (zh) * 2014-07-09 2016-11-30 肖龙旭 一种基于系统行为的文件调度方法
CN105471955A (zh) * 2014-09-11 2016-04-06 北京金山云网络技术有限公司 分布式文件系统的写方法、客户端设备及分布式文件系统
CN105471955B (zh) * 2014-09-11 2019-01-18 北京金山云网络技术有限公司 分布式文件系统的写方法、客户端设备及分布式文件系统
CN105243027A (zh) * 2015-09-24 2016-01-13 华为技术有限公司 在存储设备中存储数据的方法和存储控制器
CN110007966A (zh) * 2019-04-10 2019-07-12 龚伟峰 一种降低内存读取乱序的方法
CN111158883A (zh) * 2019-12-31 2020-05-15 青岛海尔科技有限公司 用于操作系统任务分类的方法、装置及计算机
CN111158883B (zh) * 2019-12-31 2023-11-28 青岛海尔科技有限公司 用于操作系统任务分类的方法、装置及计算机
WO2022261836A1 (zh) * 2021-06-15 2022-12-22 华为技术有限公司 存储控制方法及装置、存储方法及装置、电子设备及介质
CN114489515A (zh) * 2022-02-11 2022-05-13 北京中电兴发科技有限公司 一种基于流存储的数据写入方法
CN114489515B (zh) * 2022-02-11 2022-08-16 北京中电兴发科技有限公司 一种基于流存储的数据写入方法

Similar Documents

Publication Publication Date Title
JP6044539B2 (ja) 分散ストレージシステムおよび方法
CN103123575A (zh) 一种数据写入方法
CN104408088B (zh) 并发请求的控制方法及装置
US20160210229A1 (en) Accelerating cache state transfer on a directory-based multicore architecture
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
WO2017041638A1 (zh) 日志数据处理方法及装置
WO2016101664A1 (zh) 一种指令调度方法及装置
CN101635682B (zh) 一种存储管理的方法和系统
CN101324869B (zh) 一种基于axi总线的多路复用器
CN107273542B (zh) 高并发数据同步方法及系统
CN102833337A (zh) 一种ftp文件上传、下载方法及装置
CN103248645A (zh) Bt离线数据下载系统及方法
CN102724314B (zh) 一种基于元数据管理的分布式缓存客户端
CN106909554B (zh) 一种数据库文本表数据的加载方法及装置
CN102456076A (zh) 海量片段数据汇聚的系统和方法
CN104754052A (zh) 一种基于Websocket实现消息推送的方法
CN109582686B (zh) 分布式元数据管理一致性保证方法、装置、系统及应用
CN105574008B (zh) 应用于分布式文件系统的任务调度方法和设备
CN113886494A (zh) 即时通讯的消息存储方法、装置、设备及计算机可读介质
CN102710790B (zh) 一种基于元数据管理的分布式缓存实现方法及系统
CN104281673A (zh) 一种数据库的缓存构建系统及对应的构建方法
CN111177032A (zh) 缓存空间申请方法、系统、装置及计算机可读存储介质
CN113553306B (zh) 数据处理方法及数据存储管理系统
CN102970349B (zh) 一种dht网络的存储负载均衡方法
CN103634374A (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
DD01 Delivery of document by public notice

Addressee: Beijing CUZKON Technology Development Co., Ltd.

Document name: Notification of Publication and of Entering the Substantive Examination Stage of the Application for Invention

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100101 Beijing city Chaoyang District Datun Road No. 5 Fenglin oasis 7C

Applicant after: Beijing CUZKON Technology Development Co., Ltd.

Address before: 100101 Beijing city Chaoyang District Datun Road Theo center A room 2201

Applicant before: Beijing CUZKON Technology Development Co., Ltd.

DD01 Delivery of document by public notice

Addressee: Beijing CUZKON Technology Development Co., Ltd.

Document name: Notification of Passing Examination on Formalities

DD01 Delivery of document by public notice

Addressee: Beijing CUZKON Technology Development Co., Ltd.

Document name: the First Notification of an Office Action

DD01 Delivery of document by public notice

Addressee: Beijing CUZKON Technology Development Co., Ltd.

Document name: Notification that Application Deemed to be Withdrawn

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130529