logo
0
0
Login

本仓库包含数据集和代码,用于Cloudscape: A Study of Storage Services in Modern Cloud Architectures,该研究在FAST25会议上发表。

BibTeX
@inproceedings {cloudscape-fast25, author = {Sambhav Satija and Chenhao Ye and Ranjitha Kosgi and Aditya Jain and Romit Kankaria and Yiwei Chen and Andrea C. Arpaci-Dusseau and Remzi H. Arpaci-Dusseau and Kiran Srinivasan}, title = {Cloudscape: A Study of Storage Services in Modern Cloud Architectures}, booktitle = {23rd USENIX Conference on File and Storage Technologies (FAST 25)}, year = {2025}, address = {Santa Clara, CA}, url = {https://www.usenix.org/conference/fast25/presentation/satija}, publisher = {USENIX Association}, month = feb }

本仓库包含以下三个主要部分:
  1. 数据集: 数据集描述了396个云架构。每个云架构是一个位于 data/graphs/ 中的 GraphML 文件。这些架构中使用的服务记录在 data/services.csv 文件中。数据集模式部分描述了如何解释这些 GraphML 和 CSV 文件。

  2. 分析 Jupyter Notebook: 我们提供了一个 Jupyter notebook,用于复现论文中的分析。该 notebook 不一定生成论文中发布的图表,而是更注重展示查询的执行方式,并尽量减少展示代码的复杂性。我们的目标是向未来的研究人员展示如何遍历数据集。有关环境设置的说明,请参考分析部分

  3. 基于 Web 的架构浏览器: 为了更方便地访问数据集,我们提供了一个托管在 cloudscape.cs.wisc.edu 的 Web 平台。本仓库还包含该平台的源代码。如果您希望修改它,请参考浏览器部分中的设置说明。

1. 数据集模式

架构

每个 GraphML 文件描述一个架构。架构被编码为一个 MultiDiGraph,即图包含有向边,并且可能在两个节点之间存在多条边。GraphML 文件有许多读取工具,我们使用 Python 的 networkx 包。

每个图具有以下属性:

属性名称可选描述示例值
name描述该架构的 YouTube 视频的标题。Snap: Journey of a Snap on Snapchat Using AWS
link指向源 YouTube 视频的链接。https://www.youtube.com/watch?v=Cgv0kfp_6xQ
categories功能目标的逗号分隔列表。可能的目标包括:(data_ingestion, interactive, compute_intensive, control, other)。data_ingestion,compute_intesive
graph_usable编码的图是否可用于任何定量图分析?论文仅分析标记为 True 的架构。True
notes从视频中提炼的上下文,捕捉架构的需求以及服务的使用方式。每天向 S3 传输 13TB 的峰值数据。使用 DynamoDB 存储元数据提高了吞吐量。

节点

每个节点具有以下属性:

属性名称可选描述示例值
serviceAWS 服务的名称或其他服务的类别。使用于 services.csvLambda 或 UserMobile
name(仅适用于 ThirdParty 节点)服务的名称。nginx 或 legacy API
notes关于该服务使用方式的附加上下文。每秒 6000 次调用,验证 20 万条记录

节点分为五种类型: AWS 节点、User 节点、Partner 节点、ThirdParty 节点、OnPremDC 节点。

AWS 节点表示 AWS 服务,User 节点表示终端用户,有时还包括设备(例如 Web 应用或 Alexa)。ThirdParty 节点表示不属于上述类别的节点,但通常在视频中提到,缺乏详细上下文(例如“内部公司 API”)。Partner 节点保留给通过 AWS Marketplace 提供软件的 AWS 合作伙伴公司(例如 SAP 或 Couchbase)。OnPremDC 节点表示公司的本地数据中心。实际上,ThirdParty 描述了仅用于解释单个架构的一次性服务,因此每个 ThirdParty 节点通过其 name 描述。

属性名称可选描述示例值
flow_id表示该边所属的工作流的编号。具有相同 flow_id 的所有边属于同一工作流。1
seq对工作流中的边进行排序。当事件不是严格同步时,分支用撇号(')表示。分支内的事件可以有顺序。访问浏览器以查看示例。3'.2
typedata/meta。data 边表示数据的移动,meta 边表示请求触发或确认响应。data
notes关于这两个(连接的)节点如何通信的附加上下文。periodic

工作流

视频通常描述一组交互,这些交互共同完成一个逻辑工作单元。我们将这些交互捕获为工作流。工作流使用 edge.flow_id 编码。具有相同 flow_id 的所有边及其对应的节点描述了该工作流的交互集。

服务

data/services.csv 文件描述了数据集中使用的所有不同类型的节点。

字段描述
nameAWS 服务的名称或节点类型。如节点部分中所述。
capabilityAWS 服务将具有以下之一(storagecomputenetworkingintegrationcontrolother)。用户、合作伙伴、第三方和本地数据中心节点将包含相关值(UserPartnerThirdPartyOnPremDC)。
is_aws对于 AWS 服务为 True,否则为 False。
schema仅适用于 AWS 存储服务。以下之一(fssqlnosqlspecializedobject)。
aws_product_categories仅适用于 AWS 服务。逗号分隔的类别列表。
image_url仅用于浏览器目的。指向 static/icons 中的 SVG 文件。

2. 分析

要在本地运行 notebook,请克隆仓库并使用 pip install -r requirements-analysis.txt 安装依赖项。然后,您可以使用 jupyter-notebook 打开 notebook。开发环境为 Python 3.11

3. 架构浏览器

要在本地运行浏览器,请克隆仓库并使用 pip install -r requirements-explorer.txt 安装依赖项。然后,您可以使用 streamlit run explorer_st.py 部署平台。开发环境为

About

FAST25论文的数据集和分析:“Cloudscape:现代云架构中的存储服务研究”

Language
Jupyter68.4%
Python17.6%
CSV8.1%
Markdown4.2%
Others1.7%