中文

面向更安全笔记本交互的细粒度血缘追踪

软件工程 2021-06-22 v2 数据库 人机交互 编程语言

摘要

计算笔记本已成为数据科学与分析工作流的首选平台,支持快速迭代与探索。通过将中间程序状态保留在内存中并将执行单元切分为所谓的“单元格”,笔记本允许用户交互式执行其工作流并享有尤为紧密的反馈。然而,随着单元格被添加、删除、重排与重跑,这种隐藏的中间状态以未必与笔记本可见代码相关的方式累积,使得执行行为难以推理,并导致错误与可复现性缺失。我们提出 NBSafety,一种自定义 Jupyter 内核,它利用运行时追踪与静态分析自动管理关联于单元格执行与全局笔记本状态的血缘。NBSafety 检测并防止用户在无辅助笔记本交互中产生的错误,同时保留现有笔记本语义的灵活性。我们通过重放并分析 666 个真实笔记本会话来评估 NBSafety 防止错误交互的能力。其中,NBSafety 识别出 117 个存在潜在安全错误的会话,而在其余 549 个会话中,NBSafety 识别为解决安全问题的单元格被用户选中重执行的可能性比随机基线高出逾 7×7\times,尽管这些用户并未使用 NBSafety 因而未受其建议影响。

关键词

引用

@article{arxiv.2012.06981,
  title  = {Fine-Grained Lineage for Safer Notebook Interactions},
  author = {Stephen Macke and Hongpu Gong and Doris Jung-Lin Lee and Andrew Head and Doris Xin and Aditya Parameswaran},
  journal= {arXiv preprint arXiv:2012.06981},
  year   = {2021}
}