Lumis是一款基于Tree-sitter的代码高亮引擎,支持110多种语言和250多种主题。它通过解析代码结构生成语法树,实现准确的代码高亮,避免传统工具的错误。Lumis与Neovim主题生态兼容,适合技术博客和API文档,提升代码展示体验。
本文探讨了 Git 中松散对象的结构,包括 commit、tree 和 blob 的关系。一次提交生成多个松散对象,commit 指向 tree,tree 再指向 blob。文章详细介绍了 commit 和 tree 对象的格式,以及如何通过添加文件和修改路径生成新的对象链,还提到标签对象的创建和合并提交的 parent 链。这些结构的理解有助于深入掌握 Git 的内部机制。
AWS disclosed that Resilient Network Graphs, a flat network architecture based on quasi-random graph theory, is now the default for most new data center builds. The design replaces fat-tree...
space-tree 是一个 Emacs 的树形工作区管理工具,旨在解决现有工具的扁平结构问题。它支持任意深度的嵌套,用户可以自由创建和管理工作区,避免强制命名和持久化。研究表明,层次化结构有助于提升记忆效果,符合认知心理学原理。space-tree 通过三张哈希表实现高效管理,提供灵活的窗口布局,适合复杂任务的需求。
KD-tree是一种用于多维空间搜索的数据结构,能够有效解决最近邻查询和范围查询问题。其构建时间为O(n log n),查询时间为O(log n),但在高维情况下性能会迅速下降,出现“维度灾难”。本文分析了KD-tree的构建和查询算法及其局限性,并与Ball tree等其他结构进行了比较,指出KD-tree在低维场景下表现优异,适用于点云处理和游戏碰撞检测等应用。
B+树和LSM树是两种主要的数据结构,分别代表原地更新和追加写入的存储方式。B+树优化读取和空间,但写放大较高;LSM树优化写入,但读取和空间放大较高。RUM猜想表明,无法在读、写和空间放大上同时达到最优。B+树适合OLTP场景,而LSM树在写入密集型应用中表现更好。选择存储引擎时需考虑具体应用需求。
本文介绍了一个完整的LSM-Tree数据库引擎的实现,分为两个部分:第一部分使用C语言组装各个组件,提供六个API;第二部分用Rust重写核心模块,记录编译过程中的真实故事并进行性能对比。文章详细描述了数据库的内部结构、读写路径、崩溃恢复机制及后台线程的工作原理,强调了Rust在安全性方面的优势,并通过基准测试比较了C、Rust和LevelDB的性能,指出各自的优缺点。
本文讨论了LSM-Tree中的Compaction机制,解决了SSTable只增不删的问题。Compaction通过合并多个SSTable文件,回收无效数据,提升读性能。文章介绍了不同层级的设计、Compaction的触发条件、文件选择策略及去重逻辑,确保数据的有序性和一致性,并管理版本信息以支持并发读写操作。
本文介绍了SSTable的构建与读取过程,重点在于数据块的前缀压缩和布隆过滤器的实现,强调其在减少无效I/O中的作用。SSTable通过分块存储数据,利用索引和布隆过滤器提高查找效率,避免不必要的磁盘读取。文章还提供了相关的C代码实现。
本文介绍了WAL(Write-Ahead Log)和MemTable的实现,解决了数据持久性问题。WAL通过先写日志再写内存,确保崩溃后数据可恢复。MemTable使用跳表结构,支持高效的插入和查找。文章讨论了WAL的记录格式、分片策略及崩溃恢复的正确性,确保数据在系统崩溃时不会丢失。
LSM-Tree(日志结构合并树)是一种适合写入远多于读取的存储系统的结构。其核心思想是将数据先写入内存中的有序结构,再顺序写入磁盘,以避免随机写入的性能瓶颈。与B-Tree相比,LSM-Tree通过追加写和后台归并优化写入性能,适合时序数据库和日志存储。文章介绍了LSM-Tree的组件及其工作原理,包括WAL、MemTable、SSTable和Compaction等。
该系列文章通过五篇深入探讨如何从零构建LSM-Tree KV存储引擎,涵盖设计决策、组件功能及Rust重写,涉及WAL、MemTable、SSTable、Compaction等关键概念,最终提供完整引擎及性能对比。
作者在年末假期访问了Point Reyes National Seashore,特别是Cypress Tree Tunnel。首次到达时游客众多,适合拍照;而在12月30日早晨再次前往时人少,非常适合摄影。Cypress Tree Tunnel没有停车场,需在附近路边停车,游客停留时间较短。
Cloudflare提出Merkle Tree证书(MTC),旨在重构Web公钥基础设施,以支持后量子密码学。MTC通过减少TLS握手中的数据交换,解决了后量子算法的性能问题,兼顾安全性与用户体验。该提案引发了开发者对实施可行性及浏览器依赖性的讨论,预计将在未来10-15年内逐步推广。
LSM-Tree通过将随机写转换为顺序写来优化性能,但会导致写放大、读放大和空间放大。写放大影响磁盘带宽和SSD寿命,读放大影响查询效率,空间放大影响存储成本。本文分析了三种Compaction策略(Leveled、Tiered、FIFO)的放大特性,并探讨了调优参数如Size Ratio和布隆过滤器的配置,提出了不同负载场景下的调优策略以实现性能优化。
《Tree of Savior: NEO》在2025手机游戏大奖中获最佳热门游戏奖。游戏以华丽的视觉效果和多样的战斗机制为特色,玩家可以选择不同的圣职,征服地下城和首领,参与PvE副本和公会战斗,现已上线HUAWEI AppGallery。
本文探讨了五种主流Linux文件系统的树形结构设计,包括ext4的Extent Tree、XFS的B+Tree、btrfs的CoW B-Tree、ZFS的间接块树和F2FS的NAT/SIT。分析了每种文件系统的优缺点、性能表现及适用场景,强调了树形结构在处理大文件和提高I/O效率方面的重要性。
2025年6月Rust OSDev更新,Tree Borrows论文获PLDI杰出论文奖,介绍MiniRust核心语言,CGP模块化解释器,Rust Web框架错误处理,Wasmtime构建脚本引擎,RapidRAW图像编辑器,AutoAgents AI代理框架,TOML v0.9重写提升性能。
在 CI/CD 环境中,多个进程并发操作 Git 仓库可能导致元数据损坏。使用 flock 加锁机制可以串行执行 Git 操作,避免锁冲突。Linux 和 macOS 用户可安装 flock,以确保自动化操作的安全与高效。
完成下面两步后,将自动完成登录并继续当前操作。