<antirez>10 hours agohttp://antirez.com/news/85Redis的速度是一个卖点,但由于数据模型、持久性和测试条件的差异,比较基准测试往往具有误导性。公平的比较需要相同的协议和客户端库;否则,结果反映的是网络栈和内核,而非数据库性能。在大型EC2实例(244 GB RAM)上比较Redis和AerospikeDB的基准测试是不现实的;较小的m3.medium实例显示Redis在没有管道化的情况下实现了32k ops/sec。使用管道化(例如,32个操作)极大地提升了Redis的性能:单核上达到250k ops/sec,超过了基准测试的多核结果。仅对简单的GET/SET操作进行基准测试是不够的;Redis擅长复杂操作,如用于排行榜的ZADD和用于基数估计的HyperLogLog,组合操作可达500k ops/sec。更好的性能比较应侧重于特定用例、现实的实例类型以及处理同等流量所需的实例数量。
Support for atomic block writes in Linux 6.13 (2025)13 days agohttps://lwn.net/Articles/1009298/Linux 6.13 引入了原子块写入功能,以防止数据库中的数据撕裂。原子写入需要硬件支持(NVMe/SCSI)和软件栈更新(VFS、文件系统、块层)。数据库使用双重写入确保一致性,原子写入可以替代此机制以提升性能。当前实现通过 O_DIRECT 和带有 RWF_ATOMIC 标志的 pwritev2() 支持单块原子写入。文件系统块大小必须与设备限制对齐;ext4 将块大小限制为页大小,而 XFS 支持更大的块。statx() 系统调用查询原子写入能力,包括最小/最大单元大小和支持标志。未来工作包括多块原子写入支持和更广泛的文件系统集成。