Exploring Solutions for Near Data Processing in a Serverless Cloud Environment
Exploring Solutions for Near Data Processing in a Serverless Cloud Environment
批准号:
2784619
负责人:
金额:
$0.0万
依托单位:
依托单位国家:
英国
项目类别:
Studentship
财政年份:
2023
资助国家:
英国
项目状态:
未结题
起止时间:
2023 至 --
中文摘要
导论.近年来,无服务器计算在云服务提供商和应用程序开发人员中因托管应用程序和服务而获得了显着地位。在无服务器计算中,管理硬件资源是云服务提供商的责任,而开发人员只需要关注他们的应用程序代码。这种云计算模型允许随着服务器负载的增加而弹性地和自动地扩展服务,更有效地使用硬件资源,以及透明的成本模型,其中客户仅以非常细粒度的方式对其应用所消耗的资源进行收费。在无服务器计算的范例中,如FaaS(功能即服务),应用程序代码作为微小的事件驱动的无状态单元托管。数据(或状态)必须存储在远程存储集群中。这种计算和状态的分解是使无服务器计算工作负载能够很好地扩展的关键因素之一。 问题所在并非所有工作负载都能从这种计算和存储的分解中平等受益。这种分解对于数据密集型应用程序和访问大量存储数据尤其有害。在无服务器场景中,当应用程序需要访问存储的数据时,它会向远程存储集群发送请求,远程存储集群处理请求并将数据传输回应用程序代码在其上执行的服务器。这种数据传输通过网络进行,通常比访问本地存储的数据慢得多。此外,它还消耗大量的网络带宽,这与同时在服务器上运行的其他服务的网络带宽需求竞争。云服务提供商通常会在需要很长时间才能完成的请求的时间阈值之后限制网络速度,这会影响数据密集型服务的性能。 Objective.我们建议将数据与操作它的代码结合起来的过程不应该像“将数据发送到代码”,而是“将代码发送到数据”,并且旨在研究,设计和构建在真实的无服务器云平台上实现相同的机制。例如,考虑托管在云服务器上的应用程序。应用程序的一部分需要访问存储在远程集群中的数据。我们提出了一种机制,通过该机制,应用程序的这一部分(“子功能”或“函数”)可以被转移到存储节点,并在那里执行。一旦数据密集型操作已经完成,计算的结果可以被传送回源计算节点。该解决方案将帮助云服务提供商节省网络带宽并更有效地利用硬件资源,同时云服务开发人员和最终用户将从更快的应用程序运行中受益。该解决方案将无服务器计算的范围扩展到各种数据密集型服务,如分析,机器学习训练和推理,数据库辅助应用程序等。设计并实现一种新的机制,用于在无服务器集群中的计算节点和存储节点之间卸载代码和计算结果。使该机制能够在分布式存储上运行。为复制的数据实施负载平衡策略。在计算节点和存储节点上设计和实施具有恢复功能的检查点或快照,以快速启动并防止由于初始化而导致的延迟和计算开销。允许在存储节点上进行有效的状态共享,并以低开销实现安全隔离。测试真实世界的存储后端。使用真实基准测试评估真实的云服务数据中心场景。
英文摘要
Introduction. In recent years, Serverless Computing has gained prominence among Cloud Service Providers and application developers alike for hosting applications and services. In Serverless Computing, managing hardware resources is the responsibility of the Cloud Service Provider, while the developers need concern themselves with just their application code. This model of cloud computing allows elastic and automatic scaling of services with increased server load, more effective use of hardware resources and a transparent cost model wherein the customer is charged only for the resources consumed by their application in a very fine-grained manner. In paradigms of serverless computing such as FaaS (Function as a Service), application code is hosted as tiny event-driven stateless units. The data (or state) must be stored in remote storage clusters. This disaggregation of computation and state is one of the key factors that allows serverless computing workloads to scale so well. The Problem. All workloads do not benefit equally from this disaggregation of computation and storage. This disaggregation is particularly harmful for data intensive applications and access large amounts of stored data. In the serverless scenario, when an application needs to access stored data, it sends a request to the remote storage cluster which processes the request and transfers the data back to the server on which the application code executes. This data transfer happens over the network, which is typically much slower than accessing data stored locally. Furthermore, it also consumes copious amounts of network bandwidth which competes with the network bandwidth requirements of other services running on the server at that same time. Cloud Service Providers typically throttle network speeds after a time threshold for requests that take a long time to finish, which worsens the performance of data intensive services. Objective. We propose that the process of uniting data with the code that operates on it should not be like 'send the data to the code' but rather 'send the code to the data ' and aim to study, design and build mechanisms to implement the same on real serverless cloud platforms. For instance, consider an application which is hosted on a cloud server. A part of the application needs to access data stored in a remote cluster. We propose a mechanism by which this part of the application (a 'sub-function' or 'funclet') may be transferred to the storage node and executed there itself. Once the data-intensive operation has completed, the result of the computation may be transferred back to the source compute node. This solution should help Cloud Service Providers to save network bandwidth and utilize hardware resources more effectively, while the Cloud Service developers and end users benefit from faster running applications. This solution would extend the scope of the Serverless Computing to diverse varieties of data intensive services such as analytics, machine learning training and inference, database-assisted applications and so on.Methodology.- Design and implement a novel mechanism for offloading code and computation results between compute nodes and storage nodes in a serverless cluster.- Enable the mechanism to function on distributed storage.- Implement load balancing strategies for replicated data.- Design and implement Checkpointing or Snapshotting with Restoration at both compute node and storage node for quick starts and preventing delays and computational overheads due to initialization.- Allow efficient state-sharing at storage nodes with secure isolation at low overheads.- Test on real-world storage backends.- Evaluate on realistic cloud service datacenter scenarios with real-world benchmarks.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
海外基金