Real-world editing dataset
收藏github2025-03-18 更新2025-03-19 收录
下载链接:
https://github.com/yorkie-team/crdt-benchmarks
下载链接
链接失效反馈官方服务:
资源简介:
该数据集包含了一个大型文本文档的逐字符编辑跟踪,具体是这篇论文的LaTeX源代码:https://arxiv.org/abs/1608.03960。数据集包含182,315个单字符插入操作和77,463个单字符删除操作,总共259,778个操作,最终文档包含104,852个字符。
This dataset contains per-character edit traces of a large text document, specifically the LaTeX source code of the paper available at https://arxiv.org/abs/1608.03960. It includes 182,315 single-character insertion operations and 77,463 single-character deletion operations, amounting to a total of 259,778 edit operations. The final resulting document contains 104,852 characters.
创建时间:
2025-02-28
原始信息汇总
CRDT基准测试数据集概述
数据集基本信息
- 项目名称: CRDT benchmarks
- 项目来源: 基于Kevin Jahns的crdt-benchmarks
- 运行环境: Node.js 20.5.0,Intel® Core™ i5-8400 CPU @ 2.80GHz × 6
基准测试内容
B1: 无冲突测试
- 场景: 模拟两个客户端,一个修改文本对象并发送更新消息给另一个客户端。
- 测量指标:
- 任务执行时间(
time) - 数据交换量(
avgUpdateSize) - 编码后文档大小(
docSize) - 解析时间(
parseTime) - 内存使用量(
memUsed)
- 任务执行时间(
B2: 双用户产生冲突
- 场景: 两个客户端同时修改已同步的100字符文本对象。
- 测量指标:
- 同步时间(
time) - 更新消息大小(
updateSize) - 编码后文档大小(
docSize) - 解析时间(
parseTime) - 内存使用量(
memUsed)
- 同步时间(
B3: 多冲突测试
- 场景: 模拟
√N并发操作。 - 测量指标:
- 任务执行和同步时间(
time) - 更新消息大小(
updateSize) - 编码后文档大小(
docSize) - 解析时间(
parseTime) - 内存使用量(
memUsed)
- 任务执行和同步时间(
B4: 真实编辑数据集
- 数据来源: LaTeX源文件编辑记录(arXiv:1608.03960)
- 操作统计:
- 182,315次单字符插入
- 77,463次单字符删除
- 总计259,778次操作
- 最终文档104,852字符
- 测量指标:
- 重放时间(
time) - 更新消息总大小(
updateSize) - 编码后文档大小(
docSize) - 编码时间(
encodeTime) - 解析时间(
parseTime) - 内存使用量(
memUsed)
- 重放时间(
B4 x 100扩展测试
- 操作统计:
- 18,231,500次单字符插入
- 7,746,300次单字符删除
- 总计25,977,800次操作
- 最终文档10,485,200字符
测试结果
-
测试对象:
- yjs (v13.6.11)
- ywasm (v0.9.3)
- loro (v0.10.1)
- automerge (v2.1.10)
-
关键指标对比:
- 包大小(原始/gzipped)
- 各测试场景下的性能指标(time/updateSize/docSize/memUsed等)
注意事项
- 内存使用量(
memUsed)为近似值 - automerge在单事务中处理B4测试仅需约1秒
- loro的
snapshot特性可显著减少加载时间 - 测试结果包含浏览器和Node.js环境数据
搜集汇总
数据集介绍

构建方式
Real-world editing dataset 的构建基于对真实文本编辑行为的模拟,具体通过重放一篇大型LaTeX文档的字符级编辑轨迹来实现。该文档源自一篇学术论文的LaTeX源码,包含182,315次单字符插入操作和77,463次单字符删除操作,总计259,778次操作。数据集的构建过程中,模拟了一个客户端重放所有编辑操作,并记录每次更新的时间、更新消息的大小、编码文档的大小、解析时间以及内存使用情况。通过这种方式,数据集能够真实反映实际编辑场景中的复杂性和多样性。
特点
该数据集的特点在于其高度还原了真实世界中的文本编辑行为,涵盖了大量的单字符插入和删除操作,总计超过25万次操作。数据集不仅记录了编辑操作的时间和数据传输量,还详细测量了编码文档的大小、解析时间以及内存使用情况。此外,数据集还提供了一个扩展版本,即对原始数据集进行100次重放,生成了超过1000万字符的最终文档,进一步增强了数据集的复杂性和实用性。这些特点使得该数据集成为评估文本编辑系统性能的理想选择。
使用方法
使用该数据集时,首先需要安装Node.js环境,并通过npm安装相关依赖。随后,可以通过运行特定的命令来执行基准测试,例如`npm start`来运行所有基准测试,或通过`cd benchmarks/yjs && npm start`来运行特定基准测试。数据集支持在浏览器中运行测试,并提供了结果的可视化功能。用户可以通过`npm run table`查看收集到的结果,或通过`npm run visualize`生成可视化图表。这些方法使得用户能够灵活地评估不同文本编辑系统的性能表现。
背景与挑战
背景概述
Real-world editing dataset 是一个专注于文本编辑操作的数据集,旨在模拟真实世界中的文本编辑行为。该数据集基于一篇LaTeX论文的编辑历史,包含了超过25万次的字符插入和删除操作,最终生成了一个包含约10万字符的文档。该数据集的创建时间不详,但其核心研究问题集中在如何高效地处理并发编辑操作,特别是在分布式协作编辑系统中。通过模拟真实编辑行为,该数据集为研究分布式文本同步算法提供了宝贵的实验数据,推动了协作编辑技术的发展。
当前挑战
Real-world editing dataset 面临的挑战主要集中在两个方面。首先,该数据集旨在解决分布式协作编辑系统中的并发冲突问题,如何在多个用户同时编辑同一文档时保持数据一致性是一个复杂的挑战。其次,在构建数据集的过程中,处理大规模编辑操作的数据存储和计算资源消耗也是一个重要问题。特别是在模拟100倍数据集时,文档规模超过1000万字符,这对内存和计算性能提出了极高的要求。此外,如何准确测量和优化编辑操作的性能指标(如时间、内存使用和数据传输量)也是数据集构建中的一大挑战。
常用场景
经典使用场景
Real-world editing dataset 数据集在分布式文本编辑系统的性能评估中具有重要应用。通过模拟真实世界的编辑行为,该数据集能够帮助研究人员评估不同CRDT(Conflict-Free Replicated Data Type)算法在处理并发编辑时的性能表现。具体而言,数据集通过记录大量的单字符插入和删除操作,模拟了用户在编辑大型文档时的行为,从而为系统性能的优化提供了可靠的基准测试环境。
衍生相关工作
基于 Real-world editing dataset 数据集,许多经典研究工作得以展开。例如,Yjs、Automerge 等开源项目利用该数据集优化了其CRDT算法的性能,显著提升了协同编辑工具的实时性和稳定性。此外,该数据集还催生了一系列关于分布式系统性能评估的研究论文,为学术界提供了宝贵的实验数据和理论支持。
数据集最近研究
最新研究方向
在分布式协同编辑领域,Real-world editing dataset 数据集的最新研究方向聚焦于如何高效处理大规模并发编辑操作,尤其是在多用户同时编辑同一文档时产生的冲突问题。该数据集通过模拟真实世界的编辑行为,提供了丰富的字符级操作记录,涵盖了插入、删除等操作,为研究分布式协同编辑系统的性能优化提供了重要参考。近年来,随着协同编辑工具的广泛应用,如何减少同步延迟、优化内存使用以及提高文档解析效率成为研究热点。该数据集通过对比不同CRDT(Conflict-Free Replicated Data Type)实现的性能,揭示了在复杂编辑场景下各算法的优劣,为未来协同编辑系统的设计与优化提供了数据支持。
以上内容由遇见数据集搜集并总结生成



