CN106599323B - 在分布式文件***中实现分布式管道的方法和装置 - Google Patents
在分布式文件***中实现分布式管道的方法和装置 Download PDFInfo
- Publication number
- CN106599323B CN106599323B CN201710002254.0A CN201710002254A CN106599323B CN 106599323 B CN106599323 B CN 106599323B CN 201710002254 A CN201710002254 A CN 201710002254A CN 106599323 B CN106599323 B CN 106599323B
- Authority
- CN
- China
- Prior art keywords
- interface
- truncation
- reading
- session
- read
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种在分布式文件***中实现分布式管道的方法和装置。方法包括:写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;元信息管理器响应于写入长度与管道文件现有长度之和超过管道限定阈值,管道文件属性中预设的数据清除策略允许自动清除,通知写入接口向截断接口发送前向截断通知;截断接口响应于接收到前向截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移;元信息管理器响应于接收到截断请求,比较截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作,从而显著提升了写入效率和分布式管道的稳定性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及一种在分布式文件***中实现分布式管道的方法和装置。
背景技术
主流的操作***都支持一种叫做“管道”的进程间通信方式。其原理就是,写入端将数据往管道中推送,而读取端从管道中获取数据,数据的流动符合先入先出的规则。
在存在分布式文件***的情况下,譬如数据传输/发布/订阅,或作为集群操作***的分布式进程间通信基础设施的情况下,管道依然存在着很大的应用需求:在数据传输/发布/订阅情况下:分布式文件***上层的***基于分布式管道,只需要简单的架构和代价就可以实现数据的传输/发布/订阅,在分布式进程间通信的情况下,目前主要实现方式是PVM(并行虚拟机)和MPI(消息传递接口)等技术,可以和在本地环境下使用管道一样简单地使用分布式管道,不需要额外引入其它复杂的分布式进程间通信技术。
然而,上述分布式管道的实现方式,在数据传输/发布/订阅时存在以下问题:***同时要考虑可用性、传输效率、数据的可靠性和一致性等复杂的问题,使得***架构变得十分复杂,灵活度受限,规模很小,扩展性受限;在分布式进程间通信时,由于技术本身复杂,并且需要提供专门的编程接口,从而造成应用***的使用代价较高。
发明内容
本申请的目的在于提出一种改进的一种在分布式文件***中实现分布式管道的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种在分布式文件***中实现分布式管道的方法,所述方法包括:写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;所述元信息管理器响应于所述写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知所述写入接口向截断接口发送前向截断通知;所述写入接口向所述截断接口发送所述前向截断通知;所述截断接口响应于接收到所述前向截断通知,向元信息管理器发送截断请求,所述截断请求包括截断偏移;所述元信息管理器响应于接收到所述截断请求,比较所述截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作。
在一些实施例中,所述方法还包括:所述元信息管理器响应于所述写入长度与管道文件现有长度之和未超过所述管道限定阈值,向所述写入接口发送写入通知;所述写入接口响应于接收到所述写入通知,将数据写入对应所述写入通知的数据服务器。
在一些实施例中,所述方法还包括以下一项或多项:所述元信息管理器响应于所述截断偏移小于或等于所述起始偏移,通知前向截断接口向所述写入接口返回截断成功信息,向所述写入接口发送写入通知;所述元信息管理器响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,在所述管道文件属性中更新所述起始偏移,通知所述截断接口向所述写入接口返回截断成功信息;以及所述元信息管理器响应于无数据服务器截断成功,通知所述截断接口向所述写入接口返回截断失败信息。
在一些实施例中,所述方法还包括:所述元信息管理器响应于更新所述起始偏移,遍历所有的读会话,若更新后的所述起始偏移大于当前访问的读会话的下一次读取偏移,将所述当前访问的读会话的会话状态标记为错误状态。
在一些实施例中,所述方法还包括:读取接口接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送读取通知;读取接口响应于接收所述读取通知,从所述读取通知指示的数据服务器读取数据。
在一些实施例中,所述方法还包括:所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知所述读取接口所述读会话进入阻塞状态;所述元信息管理器响应于有新数据写入,并且写入的新数据满足所述读会话的下一次读取范围,向所述读取接口发送读取通知以唤醒所述进入阻塞状态的读会话。
在一些实施例中,所述方法还包括:所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向所述读取接口返回空;所述读取接口向所述会话前端返回空。
在一些实施例中,所述方法还包括:所述元信息管理器响应于所述读取偏移小于管道文件的起始偏移或所述读会话的会话状态为错误状态,向所述读取接口发送读取失败信息;所述读取接口向所述会话前端发送读取失败信息。
在一些实施例中,所述方法还包括:所述读取接口接收数据服务器响应于所述读取偏移大于管道文件的起始偏移返回的数据,向所述会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
在一些实施例中,所述方法还包括:所述读取接口接收所述数据服务器响应于所述读取偏移小于管道文件的起始偏移发送的读取失败信息,向所述会话前端发送读取失败信息。
第二方面,本申请提供了一种在分布式文件***中实现分布式管道的装置,所述装置包括:写入接口,用于接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;响应于所述元信息管理器的通知,向截断接口发送前向截断通知;所述元信息管理器,用于响应于所述写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知所述写入接口向所述截断接口发送所述前向截断通知;响应于接收到截断请求,比较所述截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作;所述截断接口,用于响应于接收到所述前向截断通知,向元信息管理器发送所述截断请求,所述截断请求包括截断偏移。
在一些实施例中,所述装置还包括:所述元信息管理器进一步用于:响应于所述写入长度与管道文件现有长度之和未超过所述管道限定阈值,向所述写入接口发送写入通知;所述写入接口进一步用于:响应于接收到所述写入通知,将数据写入对应所述写入通知的数据服务器。
在一些实施例中,所述装置还包括以下一项或多项:所述元信息管理器进一步用于:响应于所述截断偏移小于或等于所述起始偏移,通知前向截断接口向所述写入接口返回截断成功信息,向所述写入接口发送写入通知;所述元信息管理器进一步用于:响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,在所述管道文件属性中更新所述起始偏移,通知所述截断接口向所述写入接口返回截断成功信息;以及所述元信息管理器进一步用于:响应于无数据服务器截断成功,通知所述截断接口向所述写入接口返回截断失败信息。
在一些实施例中,所述装置还包括:所述元信息管理器进一步用于:响应于更新所述起始偏移,遍历所有的读会话,若更新后的所述起始偏移大于当前访问的读会话的下一次读取偏移,将所述当前访问的读会话的会话状态标记为错误状态。
在一些实施例中,所述装置还包括:读取接口,用于接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;响应于接收读取通知,从所述读取通知指示的数据服务器读取数据;所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送所述读取通知。
在一些实施例中,所述装置还包括:所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知所述读取接口所述读会话进入阻塞状态;响应于有新数据写入,并且写入的新数据满足所述读会话的下一次读取范围,向所述读取接口发送读取通知以唤醒所述进入阻塞状态的读会话。
在一些实施例中,所述装置还包括:所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向所述读取接口返回空;所述读取接口进一步用于:向所述会话前端返回空。
在一些实施例中,所述装置还包括:所述元信息管理器进一步用于:响应于所述读取偏移小于管道文件的起始偏移或所述读会话的会话状态为错误状态,向所述读取接口发送读取失败信息;所述读取接口进一步用于:向所述会话前端发送读取失败信息。
在一些实施例中,所述装置还包括:所述读取接口进一步用于:接收数据服务器响应于所述读取偏移大于管道文件的起始偏移返回的数据,向所述会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
在一些实施例中,所述装置还包括:所述读取接口进一步用于:接收所述数据服务器响应于所述读取偏移小于管道文件的起始偏移发送的读取失败信息,向所述会话前端发送读取失败信息。
本申请提供的在分布式文件***中实现分布式管道的方法和装置,首先写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;元信息管理器响应于写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知写入接口向截断接口发送前向截断通知;写入接口向截断接口发送前向截断通知;截断接口响应于接收到前向截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移;元信息管理器响应于接收到截断请求,比较截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作,从而显著提升了写入效率和分布式管道的稳定性,降低了分布式管道的复杂性,提升了分布式文件***的规模和扩展性,同时,由于实现技术简单,在分布式进程间通信时,无需提供专门的编程接口,因此降低了应用***的使用代价。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的在分布式文件***中实现分布式管道的方法的一个实施例的示意性流程图;
图3a是根据本申请的在写会话时在分布式文件***中实现分布式管道的方法的一个实施例的示例性应用场景;
图3b是根据本申请的在读会话时在分布式文件***中实现分布式管道的方法的一个实施例的示例性应用场景;
图4是根据本申请的在分布式文件***中实现分布式管道的装置的一个实施例的示例性结构图;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的在分布式文件***中实现分布式管道的方法或在分布式文件***中实现分布式管道的装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102、103通过网络104与服务器105、106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如视频播放类应用、搜索引擎类应用、购物类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持弹幕交互功能的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105、106可以是提供各种服务的服务器,例如对终端设备101、102、103提供支持的后台服务器。后台服务器可以对终端提交的数据进行存储或计算等处理,并在接收到终端的请求时将存储或计算结果反馈给终端设备。
需要说明的是,本申请中实施例所提供的在分布式文件***中实现分布式管道的方法一般由服务器105、106执行,相应地,在分布式文件***中实现分布式管道的装置一般设置于服务器105、106中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的在分布式文件***中实现分布式管道的方法的一个实施例的流程200。
该在分布式文件***中实现分布式管道的方法,包括以下步骤:
步骤201,写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求。
在本实施例中,在分布式文件***中实现分布式管道的方法运行于其上的电子设备可以设置写入接口,通过写入接口连接写会话与分布式文件***的元信息管理器。这里的写会话可以通过写入接口发送数据写入请求,之后写入接口基于接收的数据写入请求,可以向元信息管理器发送包括写入长度的写入数据请求。这里的写入长度,可以为写入接口向元信息管理器请求的每次写入数据的长度。
步骤202,元信息管理器响应于写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知写入接口向截断接口发送前向截断通知。
在本实施例中,分布式文件***的元信息管理器,可以首先接收写入接口发送的写入数据请求,之后响应于写入数据请求中的写入长度与管道文件现有长度之和超过管道限定阈值,也即表明此时管道中空余长度无法满足本次写入数据,这时可以检查管道文件属性中预设的数据清除策略是否允许自动清除,若允许,则可以通知写入接口向截断接口发送前向截断通知,以便截断接口执行前向截断,从而可以在管道文件被清除至少部分数据后,由写入接口继续写入数据。这里的截断通知,包括写入接口基于元信息管理器的通知计算得到的截断偏移。
这里的管道文件,是指管道类型的文件,该文件在常规的文件属性之外,增加以下属性:起始偏移、管道限定阈值、数据清除策略和读会话列表。其中,管道限定阈值用于限定文件末尾减去起始偏移的长度。数据清除策略用于限定在写入时,如果长度超过管道大小限制,是否需要自动触发旧数据清除,该策略至少包括以下信息:是否触发自动清除和每次清除的最小长度(也即清除的粒度阈值,例如每次1MB)。读会话列表用于标示以下信息:会话标识、会话状态、会话策略和下一次读取长度。这里的会话标识由读会话来源机器的物理IP和网络端口,已经读会话进程内唯一的一个随机数组成。这里的会话状态可以包括正常/阻塞中/错误这几个状态,错误状态意思是指如果上次读的位置偏移已经小于文件的起始偏移了(比如自动清除老的数据之后),也就是说,无法紧接上次的偏移继续读了,下次会话发读请求的时候,元信息服务器会告知会话前端读取失败。这里的会话策略标示是否为阻塞式会话,如果是,则当读取不到足够数据时,读会话进入阻塞状态等待元信息服务器通知该读会话。这里的下一次读取长度是指如果是阻塞式会话,并且会话处于阻塞状态,则当元信息服务器发现可读数据长度超过了下一次读取长度时,会通知读会话继续去读。
步骤203,写入接口向截断接口发送前向截断通知。
在本实施例中,在步骤202中元信息管理器通知写入接口向截断接口发送前向截断通知后,写入接口触发向截断接口发送前向截断通知。
步骤204,截断接口响应于接收到前向截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移。
在本实施例中,截断接口响应于接收到前向截断通知,向元信息管理器发送截断请求以调用数据服务器执行截断操作,这里的截断请求,可以包括截断偏移。这里的截断偏移,也即标示管道文件的截断位置的偏移信息。
步骤205,元信息管理器响应于接收到截断请求,比较截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作。
在本实施例中,分布式文件***的元信息管理器在接收到截断请求后,需要查询截断偏移指示的管道文件的起始偏移,之后比较截断请求中的截断偏移是否大于管道文件的起始偏移,当截断偏移大于管道文件的起始偏移时,也即表明该管道文件中存在截断请求中所要求截断的数据,此时元信息管理器可以通知管道文件副本对应的数据服务器来执行前向截断操作,也即通过数据服务器删除小于截断偏移的管道文件数据。
本申请实施例提供的在分布式文件***中实现分布式管道的方法,与现有技术中业界的开源***(例如分布式消息***Kafka、开源分布式高性能日志复制服务DistributedLog等)相比,可以通过写入接口与元信息管理器的通信来确定是否可以进行截断操作,在确定可以截断操作之后,可以通过写入接口与截断接口的通信通知截断接口可以前向截断数据,之后由截断接口向元信息管理器发送的截断请求,截断请求中包括截断偏移,最后通过元信息管理器比较截断偏移与管道文件的起始偏移,并在截断偏移大于管道文件的起始偏移时通知管道文件副本对应的数据服务器执行前向截断操作,从而在数据写入时,显著提升了写入效率和分布式管道的稳定性,降低了分布式管道的复杂性,提升了分布式文件***的规模和扩展性,同时,由于实现技术简单,在分布式进程间通信时,无需提供专门的编程接口,因此降低了应用***的使用代价。
对于本申请的上述实施例,还存在一些可选的实现方式,以下针对上述实施例的可选实现方式进行说明。
在上述实施例的一些可选实现方式中(图中未示出),方法还可以包括:元信息管理器响应于写入长度与管道文件现有长度之和未超过管道限定阈值,向写入接口发送写入通知;之后写入接口响应于接收到写入通知,将数据写入对应写入通知的数据服务器。
这里的元信息管理器响应于写入长度与管道文件现有长度之和未超过管道限定阈值,也即表明管道中空余的长度可以直接满足写入数据请求中的写入长度,此时可以直接向写入接口发送写入通知,之后写入接口响应于接收到写入通知,可以将数据写入对应写入通知的数据服务器,实现了快速写入数据,并且实现分布式管道的方法简单且具有较高的稳定性。
在上述实施例的一些可选实现方式中(图中未示出),方法还可以包括:元信息管理器响应于截断偏移小于或等于起始偏移,通知前向截断接口向写入接口返回截断成功信息,并且向写入接口发送写入通知。
在这里,当元信息管理器发现截断请求中的截断偏移小于或等于起始偏移时,也即表明此时分布式管道中的空余长度可以满足写入长度,无需截断,因此可以直接向前向截断接口返回截断成功信息并向写入接口发送写入通知,从而可以高效的向分布式管道中写入数据。
备选地或附加地,元信息管理器响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,并且在管道文件属性中更新起始偏移,通知截断接口向写入接口返回截断成功信息。
在这里,当数据服务器截断成功时,该管道文件的起始偏移已经发生改变,此时更新该管道文件在分布式文件***中的所有副本并且更新该管道文件的文件属性中的起始偏移,可以供后续的对管道文件的操作调用更新后的参数,从而提高了后续操作的效率以及分布式管道的稳定性。
备选地或附加地,元信息管理器响应于无数据服务器截断成功,通知截断接口向写入接口返回截断失败信息。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:元信息管理器响应于更新起始偏移,遍历所有的读会话,若更新后的起始偏移大于当前访问的读会话的下一次读取偏移,将当前访问的读会话的会话状态标记为错误状态。
在这里,若元信息管理器更新起始偏移,则表明管道文件发生化,若更新后的起始偏移大于当前访问的读会话的下一次读取偏移,也即表明正在读取管道文件数据的读会话的下一次读取的数据已不存在,因此可以通过将当前访问的读会话的会话状态标记为错误状态,从而提高读会话的下一次读取效率,并且增强分布式管道的稳定性。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:读取接口接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;元信息管理器响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送读取通知;读取接口响应于接收读取通知,从读取通知指示的数据服务器读取数据。
在这里,元信息管理器通过读取接口向元信息管理器发送的包括读取偏移和读取长度的读取数据请求,可以得到需要读取的管道文件的起始读取位置和读取长度,并且当读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾时,可以向读取接口发送读取通知,之后读取接口从读取通知指示的服务器读取数据,从而提高了读会话的读取效率,并且提高了分布式管道的稳定性。这里的读取请求所要求读取的范围,可以由读取偏移得到读取的起始位置,之后将起始位置加上读取长度,则可以得到读取请求所要求读取的范围。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:元信息管理器响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知读取接口读会话进入阻塞状态;元信息管理器响应于有新数据写入,并且写入的新数据满足读会话的下一次读取范围,向读取接口发送读取通知以唤醒进入阻塞状态的读会话。
在这里,当读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾时,表明当前读取的数据已经超出管道文件的范围,元信息管理器此时需要检查被读取的管道文件的会话策略是否为阻塞式会话,也即被读取的管道文件是否允许读会话进入阻塞状态直至写入的新数据满足读会话的下一次读取范围,之后元信息管理器向读取接口发送读取通知以唤醒进入阻塞状态的读会话,从而提高了读会话读取管道文件的成功率,提高了分布式管道的稳定性。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:元信息管理器响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向读取接口返回空;读取接口向会话前端返回空。
在这里,当读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话时,也即表明此次读会话不能读取到所需的数据,因此可以向读取接口返回空,从而提高读会话的读取效率,并且提高了分布式管道的稳定性。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:元信息管理器响应于读取偏移小于管道文件的起始偏移或读会话的会话状态为错误状态,向读取接口发送读取失败信息;读取接口向会话前端发送读取失败信息。
在这里,当读会话的读取偏移小于管道文件的起始偏移或读会话的会话状态为错误状态时,表明读会话需要读取的管道文件不存在或部分存在,因此无法读取读会话所要求读取的数据,可以向读取接口发送读取失败信息,这一实现方式提高了读会话的读取效率,也提高了分布式管道的稳定性。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:读取接口接收数据服务器响应于读取偏移大于管道文件的起始偏移返回的数据,向会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
在这里,当读取接口接收到服务器返回的数据时,读取接口可以向元信息管理器提交已完成读取的读取偏移,以便将该读取偏移记录至管道文件属性,以便下次对管道文件进行操作时调用,从而提高后续操作的效率。
在上述实施例的一些可选实现方式中(图中未示出),方法还包括:读取接口接收数据服务器响应于读取偏移小于管道文件的起始偏移发送的读取失败信息,向会话前端发送读取失败信息。这里表明了现有的管道文件不存在可以读取的数据,因此向会话前端发送读取失败信息,以提高会话效率并提高分布式管道的稳定性。
进一步参考图3a,图3a描述了根据本申请的在写会话时在分布式文件***中实现分布式管道的方法的一个实施例的示例性应用场景。
如图3a所示,在写会话时在分布式文件***中实现分布式管道的方法包括:
在步骤301中,写入接口接收写会话的数据写入请求,之后执行步骤302;
在步骤302中,写入接口向元信息管理器发送包括写入长度的写入数据请求,之后执行步骤303;
在步骤303中,元信息管理器判断写入长度与管道文件现有长度之和是否超过管道限定阈值,若否,则执行步骤304,若是,则执行步骤309;
在步骤304中,元信息管理器向写入接口发送写入通知,之后执行步骤305;
在步骤305中,写入接口将数据写入对应写入通知的数据服务器,之后执行步骤306;
在步骤306中,写入接口检测是否接收到数据服务器返回的写入成功响应,若是,则执行步骤307,若否,则执行步骤308;
在步骤307中,写入接口向会话前端返回写入成功信息。
在步骤308中,写入接口向会话前端返回写入失败信息。
在步骤309中,元信息管理器判断管道文件属性中预设的数据清除策略是否允许自动清除,若是,则执行步骤310,若否,则执行步骤320;
在步骤310中,元信息管理器通知写入接口向前向截断接口发送截断通知,之后执行步骤311;
在步骤311中,前向截断接口响应于接收到截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移,之后执行步骤312;
在步骤312中,元信息管理器比较截断请求中的截断偏移是否大于管道文件的起始偏移,若是,则执行步骤313,若否,则执行步骤318;
在步骤313中,元信息管理器通知管道文件副本对应的数据服务器执行前向截断操作,之后执行步骤314;
在步骤314中,元信息管理器判定是否至少一个数据服务器截断成功,若是,则执行步骤315,若否,则执行步骤319;
在步骤315中,元信息管理器仅保留截断成功的数据服务器上的数据副本,之后执行步骤316;
在步骤316中,元信息管理器在管道文件属性中记录读取偏移,并更新起始偏移,之后执行步骤317;
在步骤317中,元信息管理器遍历所有的读会话,若更新后的起始偏移大于当前访问的读会话的下一次读取偏移,将当前访问的读会话的会话状态标记为错误状态,之后执行步骤318;
在步骤318中,元信息管理器通知前向截断接口向写入接口返回截断成功信息,之后执行步骤304;
在步骤319中,元信息管理器通知前向截断接口向写入接口返回截断失败信息,之后执行步骤308;
在步骤320中,元信息管理器通知写入接口写入失败,之后执行步骤308。
在本应用场景中,本申请上述实施例提供的在写会话时在分布式文件***中实现分布式管道的方法,对于写入时可能出现的各种情况提供了写入方案,并为管道文件的后续操作修改了文件属性信息,显著提高了写会话的写入效率,并且提升了在分布式文件***中实现分布式管道的稳定性,同时,由于实现技术简单,在分布式进程间通信时,无需提供专门的编程接口,因此降低了应用***的使用代价。
进一步参考图3b,图3b描述了根据本申请的在读会话时在分布式文件***中实现分布式管道的方法的一个实施例的示例性应用场景。
如图3b所示,在读会话时在分布式文件***中实现分布式管道的方法包括:
在步骤321中,读取接口接收会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求,之后执行步骤322;
在步骤322中,元信息管理器判断是否读取偏移大于管道文件的起始偏移且管道文件的会话状态并非错误状态,若是,则执行步骤323,若否,则执行步骤336;
在步骤323中,元信息管理器判断读取请求所要求读取的范围未超过管道文件末尾,若是,则执行步骤324,若否,则执行步骤331;
在步骤324中,元信息管理器向读取接口发送读取通知,之后执行步骤325;
在步骤325中,读取接口接收读取通知,之后执行步骤326;
在步骤326中,读取接口从读取通知指示的数据服务器读取数据,之后执行步骤327;
在步骤327中,数据服务器判断读取偏移是否大于管道文件的起始偏移,若是,则执行步骤328,若否,则执行步骤330;
在步骤328中,数据服务器向读取接口返回数据,之后执行步骤329;
在步骤329中,读取接口向会话前端返回数据,向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性;
在步骤330中,数据服务器向读取接口发送读取失败信息,之后执行步骤337;
在步骤331中,元信息管理器判断管道文件属性中预设的会话策略是否为阻塞式会话,若是,则执行步骤332,若否,则执行步骤334;
在步骤332中,元信息管理器通知读取接口进入阻塞状态,之后执行步骤333;
在步骤333中,元信息管理器响应于有新数据写入,并且写入的新数据满足读会话下一次读取范围,向读取接口发送读取通知以唤醒进入阻塞状态的读会话,之后执行步骤325;
在步骤334中,元信息管理器向读取接口返回空,之后执行步骤335;
在步骤335中,读取接口向会话前端返回空;
在步骤336中,元信息管理器向读取接口发送读取失败信息;
在步骤337中,读取接口向会话前端发送读取失败信息。
在本应用场景中,本申请上述实施例提供的在读会话时在分布式文件***中实现分布式管道的方法,对于读取数据时可能出现的各种情况提供了读取方案,并将读取偏移记录至管道文件属性以备后续操作调用,显著提高了读会话的读取效率,并且提升了在分布式文件***中实现分布式管道的稳定性,同时,由于实现技术简单,在分布式进程间通信时,无需提供专门的编程接口,因此降低了应用***的使用代价。
应当理解,本申请上述实施例中的在分布式文件***中实现分布式管道的方法,仅为对本申请的示例性描述,并不代表对本申请的限定。例如,可以根据需要将其中包括的单个步骤拆分为多个子步骤,也可以根据需要将其中包括的多个步骤合并为一个步骤。
进一步参考图4,作为对上述方法的实现,本申请提供了一种在分布式文件***中实现分布式管道的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,由此,上文针对方法描述的操作和特征同样适用于装置400及其中包含的单元,在此不再赘述。该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的在分布式文件***中实现分布式管道的装置400包括:写入接口410、元信息管理器420和截断接口430。
其中,写入接口410,用于接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;响应于元信息管理器的通知,向截断接口发送前向截断通知;
元信息管理器420,用于响应于写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知写入接口向截断接口发送前向截断通知;响应于接收到截断请求,比较截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作;
截断接口430,用于响应于接收到前向截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:元信息管理器进一步用于:响应于写入长度与管道文件现有长度之和未超过管道限定阈值,向写入接口发送写入通知;写入接口进一步用于:响应于接收到写入通知,将数据写入对应写入通知的数据服务器。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括以下一项或多项:元信息管理器进一步用于:响应于截断偏移小于或等于起始偏移,通知前向截断接口向写入接口返回截断成功信息,向写入接口发送写入通知;元信息管理器进一步用于:响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,在管道文件属性中更新起始偏移,通知截断接口向写入接口返回截断成功信息;以及元信息管理器进一步用于:响应于无数据服务器截断成功,通知截断接口向写入接口返回截断失败信息。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:元信息管理器进一步用于:响应于更新起始偏移,遍历所有的读会话,若更新后的起始偏移大于当前访问的读会话的下一次读取偏移,将当前访问的读会话的会话状态标记为错误状态。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:读取接口,用于接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;响应于接收读取通知,从读取通知指示的数据服务器读取数据;元信息管理器进一步用于:响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送读取通知。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:元信息管理器进一步用于:响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知读取接口读会话进入阻塞状态;响应于有新数据写入,并且写入的新数据满足读会话的下一次读取范围,向读取接口发送读取通知以唤醒进入阻塞状态的读会话。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:元信息管理器进一步用于:响应于读取偏移大于管道文件的起始偏移、读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向读取接口返回空;读取接口进一步用于:向会话前端返回空。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:元信息管理器进一步用于:响应于读取偏移小于管道文件的起始偏移或读会话的会话状态为错误状态,向读取接口发送读取失败信息;读取接口进一步用于:向会话前端发送读取失败信息。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:读取接口进一步用于:接收数据服务器响应于读取偏移大于管道文件的起始偏移返回的数据,向会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
在本实施例的一些中可选实现方式中(图中未示出),装置还包括:读取接口进一步用于:接收数据服务器响应于读取偏移小于管道文件的起始偏移发送的读取失败信息,向会话前端发送读取失败信息。
应当理解,本申请上述实施例中的在分布式文件***中实现分布式管道的装置,仅为对本申请的示例性描述,并不代表对本申请的限定。例如,可以根据需要将其中包括的多个单元合并为一个单元,也可以根据需要将其中包括的单元拆分为多个子单元。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机***500的结构示意图。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的
程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,所述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括写入接口、元信息管理器和截断接口。其中,这些接口和器件的名称在某种情况下并不构成对该单元本身的限定,例如,写入接口还可以被描述为“接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;响应于元信息管理器的通知,向截断接口发送前向截断通知的接口”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收用户输入的弹幕信息;记录对应弹幕信息的起始输入时刻的视频播放进度;接收用户输入的发送操作;将弹幕信息和视频播放进度发送至服务器以供服务器执行以下步骤:将弹幕信息同步至视频播放进度所指示的视频画面帧,响应于接收到播放端向服务器发送的视频播放请求,将已同步弹幕信息的视频发送至播放端。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;元信息管理器响应于写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知写入接口向截断接口发送前向截断通知;写入接口向截断接口发送前向截断通知;截断接口响应于接收到前向截断通知,向元信息管理器发送截断请求,截断请求包括截断偏移;元信息管理器响应于接收到截断请求,比较截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种在分布式文件***中实现分布式管道的方法,其特征在于,所述方法包括:
写入接口接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;
所述元信息管理器响应于所述写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知所述写入接口向截断接口发送前向截断通知;
所述写入接口向所述截断接口发送所述前向截断通知;
所述截断接口响应于接收到所述前向截断通知,向元信息管理器发送截断请求,所述截断请求包括截断偏移;
所述元信息管理器响应于接收到所述截断请求,比较所述截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述元信息管理器响应于所述写入长度与管道文件现有长度之和未超过所述管道限定阈值,向所述写入接口发送写入通知;
所述写入接口响应于接收到所述写入通知,将数据写入对应所述写入通知的数据服务器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括以下一项或多项:
所述元信息管理器响应于所述截断偏移小于或等于所述起始偏移,通知前向截断接口向所述写入接口返回截断成功信息,向所述写入接口发送写入通知;
所述元信息管理器响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,在所述管道文件属性中更新所述起始偏移,通知所述截断接口向所述写入接口返回截断成功信息;以及
所述元信息管理器响应于无数据服务器截断成功,通知所述截断接口向所述写入接口返回截断失败信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述元信息管理器响应于更新所述起始偏移,遍历所有的读会话,若更新后的所述起始偏移大于当前访问的读会话的下一次读取偏移,将所述当前访问的读会话的会话状态标记为错误状态。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:
读取接口接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;
所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送读取通知;
读取接口响应于接收所述读取通知,从所述读取通知指示的数据服务器读取数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知所述读取接口所述读会话进入阻塞状态;
所述元信息管理器响应于有新数据写入,并且写入的新数据满足所述读会话的下一次读取范围,向所述读取接口发送读取通知以唤醒所述进入阻塞状态的读会话。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述元信息管理器响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向所述读取接口返回空;
所述读取接口向会话前端返回空。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述元信息管理器响应于所述读取偏移小于管道文件的起始偏移或所述读会话的会话状态为错误状态,向所述读取接口发送读取失败信息;
所述读取接口向会话前端发送读取失败信息。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述读取接口接收数据服务器响应于所述读取偏移大于管道文件的起始偏移返回的数据,向会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
10.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述读取接口接收所述数据服务器响应于所述读取偏移小于管道文件的起始偏移发送的读取失败信息,向会话前端发送读取失败信息。
11.一种在分布式文件***中实现分布式管道的装置,其特征在于,所述装置包括:
写入接口,用于接收写会话的数据写入请求,向元信息管理器发送包括写入长度的写入数据请求;响应于所述元信息管理器的通知,向截断接口发送前向截断通知;
所述元信息管理器,用于响应于所述写入长度与管道文件现有长度之和超过管道限定阈值,且管道文件属性中预设的数据清除策略允许自动清除,通知所述写入接口向所述截断接口发送所述前向截断通知;响应于接收到截断请求,比较所述截断请求中的截断偏移是否大于管道文件的起始偏移,若大于,通知管道文件副本对应的数据服务器执行前向截断操作;
所述截断接口,用于响应于接收到所述前向截断通知,向元信息管理器发送所述截断请求,所述截断请求包括截断偏移。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
所述元信息管理器进一步用于:响应于所述写入长度与管道文件现有长度之和未超过所述管道限定阈值,向所述写入接口发送写入通知;
所述写入接口进一步用于:响应于接收到所述写入通知,将数据写入对应所述写入通知的数据服务器。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括以下一项或多项:
所述元信息管理器进一步用于:响应于所述截断偏移小于或等于所述起始偏移,通知前向截断接口向所述写入接口返回截断成功信息,向所述写入接口发送写入通知;
所述元信息管理器进一步用于:响应于至少一个数据服务器截断成功,仅保留截断成功的数据服务器上的数据副本,在所述管道文件属性中更新所述起始偏移,通知所述截断接口向所述写入接口返回截断成功信息;以及
所述元信息管理器进一步用于:响应于无数据服务器截断成功,通知所述截断接口向所述写入接口返回截断失败信息。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
所述元信息管理器进一步用于:响应于更新所述起始偏移,遍历所有的读会话,若更新后的所述起始偏移大于当前访问的读会话的下一次读取偏移,将所述当前访问的读会话的会话状态标记为错误状态。
15.根据权利要求11-14任意一项所述的装置,其特征在于,所述装置还包括:
读取接口,用于接收读会话的数据读取请求,向元信息管理器发送包括读取偏移和读取长度的读取数据请求;响应于接收读取通知,从所述读取通知指示的数据服务器读取数据;
所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态且读取请求所要求读取的范围未超过管道文件末尾,向读取接口发送所述读取通知。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略为阻塞式会话,通知所述读取接口所述读会话进入阻塞状态;响应于有新数据写入,并且写入的新数据满足所述读会话的下一次读取范围,向所述读取接口发送读取通知以唤醒所述进入阻塞状态的读会话。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
所述元信息管理器进一步用于:响应于所述读取偏移大于管道文件的起始偏移、所述读会话的会话状态并非错误状态、读取请求所要求读取的范围已超过管道文件末尾且管道文件属性中预设的会话策略并非阻塞式会话,向所述读取接口返回空;
所述读取接口进一步用于:向会话前端返回空。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
所述元信息管理器进一步用于:响应于所述读取偏移小于管道文件的起始偏移或所述读会话的会话状态为错误状态,向所述读取接口发送读取失败信息;
所述读取接口进一步用于:向会话前端发送读取失败信息。
19.根据权利要求15所述的装置,其特征在于,所述装置还包括:
所述读取接口进一步用于:接收数据服务器响应于所述读取偏移大于管道文件的起始偏移返回的数据,向会话前端返回数据,并向元信息管理器提交已完成读取的读取偏移以记录至管道文件属性。
20.根据权利要求15所述的装置,其特征在于,所述装置还包括:
所述读取接口进一步用于:接收所述数据服务器响应于所述读取偏移小于管道文件的起始偏移发送的读取失败信息,向会话前端发送读取失败信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710002254.0A CN106599323B (zh) | 2017-01-03 | 2017-01-03 | 在分布式文件***中实现分布式管道的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710002254.0A CN106599323B (zh) | 2017-01-03 | 2017-01-03 | 在分布式文件***中实现分布式管道的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599323A CN106599323A (zh) | 2017-04-26 |
CN106599323B true CN106599323B (zh) | 2020-04-10 |
Family
ID=58582322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710002254.0A Active CN106599323B (zh) | 2017-01-03 | 2017-01-03 | 在分布式文件***中实现分布式管道的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599323B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679197A (zh) * | 2017-10-10 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种文件截断的优化方法及装置 |
CN108683717B (zh) * | 2018-04-26 | 2021-11-09 | 宝牧科技(天津)有限公司 | 一种不占用本地磁盘空间的数据转储下载方法 |
CN108595287B (zh) * | 2018-04-27 | 2021-11-05 | 新华三技术有限公司成都分公司 | 基于纠删码的数据截断方法及装置 |
CN117573622B (zh) * | 2024-01-15 | 2024-04-09 | 北京持安科技有限公司 | 一种自动清理前端项目中废弃接口方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1826593A (zh) * | 2003-10-24 | 2006-08-30 | 微软公司 | 通过网络以事务形式办理文件操作的方法与*** |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件***数据i/o优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7388488B2 (en) * | 2003-10-30 | 2008-06-17 | Peter Lupoli | Method and system for storing, retrieving, and managing data for tags |
-
2017
- 2017-01-03 CN CN201710002254.0A patent/CN106599323B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1826593A (zh) * | 2003-10-24 | 2006-08-30 | 微软公司 | 通过网络以事务形式办理文件操作的方法与*** |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件***数据i/o优化方法 |
Non-Patent Citations (1)
Title |
---|
分布式管道通信机制的设计与实现;张洁;《中国优秀硕士学位论文全文数据库 信息科技辑》;20060315;第I138-301页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106599323A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
US10803016B2 (en) | Predictive models of file access patterns by application and file type | |
US10380103B2 (en) | Object data updating method and apparatus in an object storage system | |
US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
CN106599323B (zh) | 在分布式文件***中实现分布式管道的方法和装置 | |
US9614646B2 (en) | Method and system for robust message retransmission | |
US10579595B2 (en) | Method and device for calling a distributed file system | |
US9189303B2 (en) | Shadow queues for recovery of messages | |
JP2017531250A (ja) | 粒状同期/半同期アーキテクチャ | |
CN105338078A (zh) | 用于存储***的数据存储方法和装置 | |
US10229010B2 (en) | Methods for preserving state across a failure and devices thereof | |
CN106095957A (zh) | 分布式文件***的跨域多副本文件同步方法及装置 | |
CN109639827B (zh) | 客户端升级方法及装置 | |
CN113190384B (zh) | 基于纠删码的数据恢复控制方法、装置、设备及介质 | |
CN106528876B (zh) | 分布式***的信息处理方法及分布式信息处理*** | |
CN107145303B (zh) | 一种用于在分布式存储***中执行文件写入的方法与设备 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
CN107145302B (zh) | 一种用于在分布式存储***中执行文件写入的方法与设备 | |
CN111274176B (zh) | 一种信息处理方法、电子设备、***及存储介质 | |
CN108345431B (zh) | 一种数据读取的方法及装置 | |
CN112882655A (zh) | 数据缓存方法、装置、电子设备及存储介质 | |
US20140344352A1 (en) | Activity internet-accessible data storage view that shows recent and relevant content to the user | |
CN111399753A (zh) | 写入图片的方法和装置 | |
CN112711572A (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN114281604B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |