本发明涉及服务器计算领域,尤其涉及一种面向服务器无感知计算的状态共享方法、系统及装置。
背景技术:
1、服务器无感知结算最初是为事件驱动型的无状态函数设计的,但是由于其极致的弹性和细粒度的按需付费的成本效益特性,已经有越来越多的工作开始研究将其用于处理复杂的数据分析型应用。
2、现有的服务器无感知计算平台都支持基于工作流的服务器无感知计算应用。如openwhisk允许函数之间组成一个工作序列,openwhisk会自动地完成序列中函数的调用并在它们之间传递消息。然而这个中间消息大小的往往存在一定的限制,因此业界最佳实践是借助s3和elitic cache等作为第三方存储来实现状态的传递,但是远程存储会带来高昂的数据交互延迟,约为10几秒,这种高延迟在函数调用很短的情况下,如数百毫秒下变得更加严重。
技术实现思路
1、有鉴于此,为了解决现有无感知计算中需要频繁访问远程数据存储,进而导致访存密集型应用程序性能不高的技术问题,本发明提出一种面向服务器无感知计算的状态共享方法,所述方法包括以下步骤:
2、在进行数据交互的函数之间设定共享内存对象;
3、创建状态函数并利用所述状态函数管理所述共享内存对象的生命周期;
4、在共享之前,将所述状态函数初始化;
5、所述状态函数将所述共享内存对象中的数据交换至磁盘,并在计算函数访问对应数据之前将其加载回内存中;
6、在与状态相关的所有函数运行结束后,所述状态函数销毁所述共享内存对象。
7、其中,本实施例允许在需要进行数据交互的函数之间共享一个共享内存对象(shm对象),并依赖内存写时复制(cow)来确保一致性和可靠性。
8、在一些实施例中,所述生命周期包括创建、初始化、交换和销毁。
9、在一些实施例中,还包括基于所述状态函数的传输机制,其中:
10、构建状态函数管理器,所述状态函数管理器用于存放实体状态函数和影子状态函数的信息;
11、通过tcp打洞技术进行所述影子状态函数和所述实体状态函数之间的通讯;
12、所述共享内存对象对应一个实体状态函数。
13、在一些实施例中,还包括构建状态函数池,其中:
14、按照数据规模将状态划分为大状态和小状态;
15、将所述大状态设定为独立的状态函数;
16、将所述小状态放置至状态函数池。
17、在一些实施例中,还包括:
18、从状态函数池中取出状态函数后,根据需求调整内存资源的限制。
19、在一些实施例中,所述状态函数为队列结构。
20、在一些实施例中,所述所述状态函数将所述共享内存对象中的数据交换至磁盘这一步骤,其具体包括:
21、当函数调用访问状态的接口后,尝试将其交换至磁盘中;
22、若该状态被判定为最后一次被访问,则将其交换至磁盘中;
23、若该状态被判定为非最后一次被访问,则:
24、根据访问次序和历史统计信息获取下次访问状态的时间间隔;
25、根据状态大小,获取将该状态换入和换出的时间开销;
26、如果时间间隔与时间开销的差超过了受益时间,则将状态换出;
27、当状态被换出后,设定定时器,在函数访问该状态之前将状态提前换入到内存中。
28、本发明还提出了一种面向服务器无感知计算的状态共享系统,所述系统包括:
29、对象设定模块,用于在进行数据交互的函数之间设定共享内存对象;
30、创建模块,用于创建状态函数
31、初始化模块,用于在共享之前,将所述状态函数初始化;
32、管理模块,并用所述状态函数管理所述共享内存对象的生命周期;所述状态函数将所述共享内存对象中的数据交换至磁盘,并在计算函数访问对应数据之前将其加载回内存中;在与状态相关的所有函数运行结束后,所述状态函数销毁所述共享内存对象。
33、本发明还提出了一种面向服务器无感知计算的状态共享装置,包括:
34、至少一个处理器;
35、至少一个存储器,用于存储至少一个程序;
36、当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种面向服务器无感知计算的状态共享装置。
37、基于上述方案,本发明提供了一种面向服务器无感知计算的状态共享方法、系统及装置,根据程序的访存特征来指导调度,在维持虚拟化层透明性的前提下,通过减少远端内存访问次数和缓解共享资源竞争来保证访存密集型应用程序的性能。
1.一种面向服务器无感知计算的状态共享方法,其特征在于,包括以下步骤:
2.根据权利要求1所述一种面向服务器无感知计算的状态共享方法,其特征在于,所述生命周期包括创建、初始化、交换和销毁。
3.根据权利要求1所述一种面向服务器无感知计算的状态共享方法,其特征在于,还包括基于所述状态函数的传输机制,其中:
4.根据权利要求1所述一种面向服务器无感知计算的状态共享方法,其特征在于,还包括构建状态函数池,其中:
5.根据权利要求4所述一种面向服务器无感知计算的状态共享方法,其特征在于,还包括:
6.根据权利要求1所述一种面向服务器无感知计算的状态共享方法,其特征在于,所述状态函数为队列结构。
7.根据权利要求1所述一种面向服务器无感知计算的状态共享方法,其特征在于,所述所述状态函数将所述共享内存对象中的数据交换至磁盘这一步骤,其具体包括:
8.一种面向服务器无感知计算的状态共享系统,其特征在于,包括:
9.一种面向服务器无感知计算的状态共享装置,其特征在于,包括: