一种邮件提取方法

文档序号:8383847阅读:562来源:国知局
一种邮件提取方法
【技术领域】
[0001]本发明涉及文件存储,特别涉及一种邮件提取方法。
【背景技术】
[0002]在这样的数据总量飞速增长的大背景下,数据中心、全球化的企业、云存储系统均要求能够有效并可靠的访问互联网分布的数据,例如用户的邮件可以存储在各个web集群服务器中。相比内网环境,互联网具有低带宽、高延时的显著特征,并且网络抖动和中断时有发生,这样便对文件的访问性能和可靠性带来挑战,难以向应用提供持续稳定的服务。基于网络的邮件系统在web服务器和客户端的每次“往返”过程都会对邮件的访问性能造成巨大的影响。当客户端访问某文件,向服务器发送open操作时,将打开文件的全部数据内容通过网络读取到客户端浏览器对应的网页目录,也就是说其只支持全文件的缓存方式,不支持部分文件数据的缓存。当客户端访问较大文件的一小部分数据时,不仅会造成带宽的严重浪费,而且在高延迟低带宽的网络环境下会严重影响数据的访问性能。
[0003]因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

【发明内容】

[0004]为解决上述现有技术所存在的问题,本发明提出了一种邮件提取方法,包括:
[0005]在邮件服务器端设置访问目录,使客户端获取与服务器端访问目录一致的目录视图;客户端对远程服务器端文件及目录使用标准的系统调用进行存取访问;
[0006]客户端的事件驱动层支撑相关的接口调用,接收系统调用请求,包括邮件系统创建、删除和数据读写;服务器端的事件处理层用于处理客户端的访问请求,与底层进行交互并根据请求类型作出处理;客户端和服务器端的数据传输层建立客户端和服务器之间的通Is ;
[0007]当应用请求到达客户端的文件系统层时,文件系统层继续将请求发送至内核组件,触发客户端的事件驱动层,然后通过数据传输层将请求远程发送给服务器端的数据传输层,服务器端收到请求后将请求传送给事件处理层进行数据读写。
[0008]优选地,所述客户端还包括缓存,用于缓存服务器邮件的配置数据信息和数据内容信息,所述数据内容信息包含与邮件对象对应的文件数据以及与目录对象对应的目录数据;
[0009]所述配置数据采用RAM缓存和数据库永久存储缓存相结合,RAM缓存为配置数据提供访问,将系统正在引用的配置数据缓存在RAM中,并且在RAM中维护配置数据的引用计数,当引用计数变为O时,就将配置数据从RAM中替换出去,并永久存储到数据库中;
[0010]对目录数据的存储采用数据库进行存储,对文件数据提供大容量的数据缓存,利用文件片段的数据缓存方式,其偏移量信息作为配置数据的一部分进行缓存,而偏移量所对应的实际数据内容则缓存在邮件系统中。
[0011]优选地,还包括:应用请求在到达内核模块后,被转换为配置数据请求或者数据内容请求,利用节点将请求与缓存联系起来,该节点与文件/目录一一对应,其包括所访问对象的配置数据以及数据内容信息,一旦获得节点就能访问相应对象的配置数据和文件数据;所述节点采用以下数据结构:
[0012]id:用于标识节点,是全局唯一的id值,由服务器端产生并维护;
[0013]attr:表示节点的属性信息;
[0014]cachetime:用于记录更新配置数据的系统时间;
[0015]Iru:用于缓存容量管理中节点缓存数据的回收,所有被操作过的节点都会以LRU的方式组织成LRU链表,尾部的节点代表最久未被访问的对象;
[0016]extent:用于标识节点在缓存中缓存数据对应的数据片段,在读/写过程中将对应的片段信息链接到该extent链表上;
[0017]flush:用于表明该节点上的脏数据片段,在写过程中将写片段链接到该flush链表上,在刷新过程中访问该链表获取片段信息,并将对应的脏数据写回到服务器端;
[0018]cache_size:表示该节点的缓存数据大小;
[0019]data_state:代表该节点的缓存数据状态;
[0020]文件数据的缓存存在3种状态:清洁状态、脏状态以及锁定状态;所述清洁状态表明缓存数据与服务器端的源数据完全一致;所述脏状态表明客户端对缓存文件发生过写操作而没有将脏数据刷新到服务器端;所述锁定状态表明客户端正在将脏数据刷新到服务器端;
[0021]数据节点被创建时,节点处于清洁状态,此时对该节点执行读操作不会改变节点的状态,但对该节点执行写操作会使节点处于脏状态;当节点处于脏状态时,对该节点的读/写操作均不会修改节点的状态,但对该节点执行刷新操作时,则会使节点处于锁定状态;当节点处于锁定状态时,对该节点执行读操作不修改节点的状态,当刷新操作完成后并且在数据刷新期间没有被修改,则节点会变为清洁状态,否则节点会再次进入脏状态;上述刷新操作是指将客户端对数据的修改同步到服务器端的过程。
[0022]本发明相比现有技术,具有以下优点:
[0023]提出了一种邮件处理方法,减少客户端与服务器之间的交互次数;并对数据支持部分缓存,维护缓存的一致性;不依赖于底层邮件系统,具有良好的通用性;在网络不稳定时,继续向上层应用提供可靠的数据服务。
【附图说明】
[0024]图1是根据本发明实施例的邮件提取方法的流程图。
【具体实施方式】
[0025]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0026]本发明的一方面提供了一种邮件提取方法。图1是根据本发明实施例的邮件提取方法流程图。邮件系统支持跨局域网数据访问,该系统是典型的B/S模式,包含一个客户端和一个服务器端。在服务器端仅需要设置访问目录后,在客户端就可以看到与服务器端访问目录一致的目录视图。在客户端可以像操作客户端邮件系统一样操作位于远程的邮件系统。客户端支持对远程(即服务器端)文件及目录使用标准的系统调用进行存取访问。
[0027]邮件系统的整体架构中,客户端的事件驱动层用于支撑相关的接口调用,接收邮件系统创建、删除、读、写等系统调用请求;服务器端的事件处理层主要用于处理客户端的访问请求,与底层进行交互并根据请求类型作出相应处理;而数据传输层分别存在于客户端和服务器端,用于客户端和服务器之间的通信。
[0028]邮件系统操作的处理过程包括:应用请求到达客户端的文件系统层,文件系统层继续将请求发送至内核组件,触发客户端的事件驱动层,之后通过数据传输层将请求远程发送给服务器端的数据传输层,服务器端收到请求后将请求传送给事件处理层,事件处理层与邮件系统交互,并完成
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1