本文探讨了基于单元的架构如何增强现代分布式系统的弹性和可扩展性。单元架构通过将系统划分为独立的单元,限制故障的影响范围,提高系统的容错能力。文章详细介绍了单元架构的组成部分,包括单元、控制平面和数据平面,并讨论了单元划分、单元放置和数据迁移等关键概念。此外,文章还分析了采用单元架构的优势和挑战,以及在哪些情况下应该考虑使用这种架构。
James Munro,Man Group 的 ArcticDB 负责人,分享了他们为何要自建数据库 ArcticDB。Man Group 是一家大型另类资产管理公司,管理着超过 1600 亿美元的资产,每年交易额高达 6 万亿美元。他们面临着数据量大、数据类型多样化、研究效率等挑战。传统的数据库解决方案无法满足他们在性能、可扩展性和数据科学工作流程方面的需求,尤其是在处理高频时间序列数据和非结构化数据时。ArcticDB 采用无服务器架构,将数据存储在 AWS S3 等云存储服务上,并提供类似 Pandas 的 Python API,方便数据科学家进行分析和建模。
本文介绍了架构回顾的价值和实践方法。架构回顾不同于架构评审,它侧重于反思团队如何制定架构决策,并从中汲取经验教训,以改进未来的工作方式。文章还提供了一系列问题,供团队在回顾过程中进行思考和讨论,例如如何制定和验证质量属性需求、如何使用反馈、如何识别和解决技术债务等。
文章探讨了Java 21中引入的虚拟线程技术,并将其与Open Liberty应用运行时的线程池技术进行了比较。研究发现,对于典型的云原生Java工作负载,虚拟线程在CPU密集型任务中表现不如Open Liberty线程池,但在处理突发大量短时任务时启动速度更快。内存占用方面,虚拟线程的优势不明显,甚至可能因为其他因素导致内存占用更高。文章最后指出了一些虚拟线程存在的性能问题,建议开发者谨慎使用。
电商安全公司Sansec披露了一起新的供应链攻击,攻击目标是通过多个托管Polyfill JS服务的CDN访问该服务的用户。Sansec表示,超过10万个网站受到攻击。该服务最初的作者Andrew Betts建议从任何使用Polyfill的网站上移除它。攻击者自2023年6月以来一直控制着多个域名来传播恶意软件。
文章批判了在Web开发中过度依赖CSS框架的现象。作者认为,虽然框架初期能提升开发速度和代码一致性,但随着项目规模扩大,其弊端会逐渐显现:开发者需要花费大量时间精力去覆盖框架样式,且难以保证团队成员使用框架的一致性。作者建议开发者使用原生CSS,并提供了编写易维护CSS代码的技巧,例如使用语义化类名、CSS变量、作用域、嵌套语法和辅助函数等。
由于 Enzyme 缺乏对 React 18 的支持,Slack 工程团队借助大型语言模型 (LLM) 将 15,000 个单元测试从 Enzyme 迁移到 React Testing Library (RTL)。团队结合抽象语法树 (AST) 和 AI 自动化,实现了 80% 的转换成功率,显著减少了人工工作量。
Meta联合南加州大学、卡内基梅隆大学和加州大学圣地亚哥分校的研究人员开源了MEGALODON,这是一个具有无限上下文长度的大语言模型。MEGALODON采用分块注意力机制替代标准的多头注意力机制,并在训练中引入了基于序列的并行化,提高了长上下文训练的可扩展性。在WinoGrande和MMLU等标准LLM基准测试中,MEGALODON的性能优于参数量、训练数据和训练计算预算相同的Llama 2模型。
微软在 Build 2024 大会上发布了 C# 13 预览版,其中包括对 params 参数、新的扩展类型以及性能和内存增强方面的改进。C# 13 允许 params 关键字用于任何与集合表达式兼容的集合类型,并优化了 System.Span 和 System.ReadOnlySpan 的使用,以减少内存分配。新的扩展类型功能允许开发人员向现有类型添加方法、属性和成员。
为了节省成本,Uber将其所有支付交易数据从DynamoDB和blob存储迁移到名为LedgerStore的新型专用数据存储中。该公司之前已经减少了使用DynamoDB存储热数据(12周前的数据)。此举带来了显著的成本节省,并简化了存储架构。LedgerStore是一个不可变的存储解决方案,通过提供可验证的数据完整性和正确性保证,确保交易数据的完整性。
提供有关 Cloudflare R2 事件通知的新功能的详细信息,包括主动通知、可配置目的地和灵活的筛选条件,从而提高应用程序的可见性和响应能力。