优步通过使用子集群重新设计了M3DB的分片机制,以此来降低故障带来的影响。
Uber重新设计了M3DB中的分片布局,采用了固定大小的子集群结构,以此来减少节点故障、维护操作以及集群扩展所带来的影响。这种设计方式能够有效控制分片之间的依赖关系,保证副本数据的隔离性,并通过贪婪算法来决定分片的迁移方案,从而避免进行额外的数据重新平衡操作及不必要的数据传输。 作者:Leela Kumili

Uber重新设计了M3DB中的分片布局,采用了固定大小的子集群结构,以此来减少节点故障、维护操作以及集群扩展所带来的影响。这种设计方式能够有效控制分片之间的依赖关系,保证副本数据的隔离性,并通过贪婪算法来决定分片的迁移方案,从而避免进行额外的数据重新平衡操作及不必要的数据传输。
作者:Leela Kumili相关文章
Uber开发了GitFarm,旨在为大规模的单仓库项目提供基于云的Git管理服务。
Uber的GitFarm将Git相关操作整合为一项集中式服务,从而避免了在大规模的单代码库项目中进行本地仓库克隆的操作。该平台通过使用预先准备好的下载资源、临时沙箱环境、仓库同步机制以及gRPC流式传输技术,有效降低了那些需要管理数千个仓库的自动化系统所消耗的资源量,并缩短了其启动延迟。 作者:Leela Kumili
阅读全文
Dropbox整合了MCP与Dash功能,从而缩小了安全设计与代码审查之间的差距。
Dropbox将其内部的知识平台Dash与Model Context Protocol(MCP)相结合,从而在人工智能辅助的代码审查过程中揭示相关的安全设计信息。该系统能够为拉取请求检索相应的威胁模型及安全要求,帮助审核人员验证代码实现是否符合设计初衷。InfoQ的一篇问答栏目进一步探讨了这一技术的架构及其实施过程中获得的关键经验。 作者:Leela Kumili
阅读全文
如何使用HTML、CSS和JavaScript构建一个用于压缩大型图像的工具
高分辨率的图片看起来很棒,但它们会显著增加页面加载时间,并占用大量的存储空间。 虽然后端压缩工具非常常见,但在客户端构建图像压缩工具却具有巨大的优势:那就是保护用户隐私。当你在浏览器中直接处理图像时,任何用户数据都不会被发送到服务器上。 在本教程中,你将学习如何开发一个功能完备的、基于浏览器的批量图像压缩工具。你会使用HTML5 Canvas API来减小图像文件的大小,并结合JSZip库将多个压缩后的文件打包成一个方便下载的ZIP文件。 为了让这个项目更具实用性,你会把代码设计成可嵌入式的组件。由于省略了标准的HTML模板标签,你可以轻松地将这段代码直接插入到WordPress的自定义HTM
阅读全文
如何防止GitHub Actions中的依赖项出现问题/被恶意代码污染
你们的工作流程使用了 actions/checkout@v4 这一标签。目前,这个标签指向的是经过审核的版本代码;但明天,如果维护者或攻击者篡改了这个标签,它就会指向恶意代码。而你们的集成管道在运行时会使用 GITHUB_TOKEN 来访问这些代码。 第三方提供的 Actions 实际上属于依赖项。这种“浮动标签”的机制就类似于未固定的包依赖关系——如果引用地址发生变化,工作流程也会执行不同的代码,但你们的仓库本身并不会因此发生任何改变。 本文会教你如何通过将Actions绑定到具体的提交哈希值上来防止连续集成过程中的安全风险,包括验证这些绑定的准确性、限制允许执行的操作类型,以及利用Depe
阅读全文