网络文章@202401


And let’s take Meta as a good example. Their Instagram app alone is used by over 300 million people in Europe. Let’s just say for easy math there’s 250 million of those in the EU. In order to distribute Instagram on, say, a new Microsoft iOS App Store, Meta would have to pay Apple $11,277,174 PER MONTH(!!!) as a “Core Technology Fee”. That’s $135 MILLION DOLLARS per year. Just for the privilege of putting Instagram into a competing store. No fee if they stay in Apple’s App Store exclusively.

苹果的新勒索制度旨在保留大型应用程序制造商 — Apple’s new extortion regime to keep big app makers

让我们以 Meta 为例。仅他们的 Instagram 应用程序就有超过 3 亿欧洲人使用。简单计算一下,欧盟有 2.5 亿人。例如,为了在新的 Microsoft iOS 应用商店上分发 Instagram,Meta 必须每月向 Apple 支付 11,277,174 美元(!!!)作为“核心技术费”。也就是说每年 1.35 亿美元。只是为了将 Instagram 纳入竞争商店的特权。如果它们只停留在 Apple 的 App Store 中,则无需付费。

Which, of course, is the entire point. Apple doesn’t want Meta, or anyone, to actually use these alternative app stores. They want everything to stay exactly as it is, so they can continue with the rake undisturbed.

当然,这就是重点。苹果不希望 Meta 或任何人真正使用这些替代应用商店。他们希望一切都保持原样,这样他们就可以不受干扰地继续使用耙子。

This poison pill is therefore explicitly designed to ensure that no second-party app store ever takes off. Without any of the big apps, there will be no draw, and there'll be no stores. All of the EU’s efforts to create competition in the digital markets will be for nothing. And Apple gets to send a clear signal: If you interrupt our tool-booth operation, we’ll make you regret it, and we’ll make you pay. Don’t resist, just let it be.

因此,这种毒丸计划的明确目的是确保任何第二方应用程序商店都不会成功。没有任何大型应用程序,就不会有吸引力,也不会有商店。欧盟在数字市场创造竞争的所有努力都将毫无意义。苹果公司可以发出一个明确的信号:如果你中断我们工具间的操作,我们会让你后悔,我们会让你付出代价。不要抗拒,顺其自然。


AI 时代的数据与分析市场变化

我们在 OLAP 的场景中,经常碰到的挑战就是 Performance,虽然性能是我们的强项,但往往我们花费了无数的心血,可能只是为了帮助客户的某条 SQL 提速了几秒钟,或者只是让他们在点开仪表盘的时候少等待几秒。Performance/性能,是在技术 PK 中,最常见的,也是最近很多友商来进攻的一个点。性能良好的系统/OLAP,当然是非常好的,但当大家都到了秒级的时候,其实已经没什么可比的。而往往改变一个数据结构,或者一个数据 Pipeline,就能够以数量级的方式提升性能。

那为什么需要这么好的性能?在 AI 时代,性能依然重要吗?我们认为,之所以需要 OLAP 或者数据仓库端有极好的性能,是因为大量的数据分析工作,依赖于有限的几个分析师或业务用户,而这个人群的业务压力非常大,且往往数据出来后,依然有着非常繁重的任务,比如对比数据、查阅历史、分析原因、重跑各种可能性等等,并要形成报告和决策、行动建议。所以一个非常好用的工具确实是必不可少的。

但在 AI 时代,这里的大量工作其实可以委托给 AI 完成,甚至可以让 AI 提前完成,尤其是固有的、常用分析套路,同时 AI 可以快速给出大致的总结,这已经能够大大节省人力,甚至 AI 可以让各种系统自动化连接起来。

今天我们用 Kyligence Zen 出一个周报或者做一次归因,只要十秒左右即可,而且自带了总结,这比出来结果,再去查资料写报告,已经有了质的提升,性能尤其是查询性能,在这个场景下其实已经没那么严苛了。反而,并发性成了下一个挑战,因为会有越来越多的人来使用系统。而并发,正好也是我们的强项。

而最近,更多的客户已经将关注点,从性能转移到了 Performance 的另外一个含义:绩效。指标平台,本质上是一个 KPI 平台,而 KPI 则是 Key Performance Indicator 的缩写。当我们将关注点从性能转移到绩效的时候,突然发现,这才是客户真正要的产品:仪表盘或者报表从来不是客户要得最终结果,他们要得是基于数据的管理能力。几乎每一个有用的指标/Metric,都展示了某个业务或者管理的结果,而一个公司之所以需要指标,就是为了更好地观测相关业务的进展、健康状态以及及时采取措施来修正组织行为,从而确保公司的整体或者部分绩效能够按照设定的目标行进。


All my favorite tracing tools: eBPF, QEMU, Perfetto, new ones I built and more - Tristan Hume

各种追踪工具


A Quick Tour of NVM Express (NVMe)

介绍NVMe的科普文章,后面都没有怎么看,就看了前面几个关于存储的概念。

存储设备几个因素:尺寸能不能放在主板上,主板是不是有对应接口插上这个设备,以及是否支持这个存储设备的协议。SSD还是可以走SATA/ACHI, 也可以放在PCIe/NVMe(速度更快).

Form Factor vs. Interface vs. Protocol

Form Factor means the shape and the size of a device. Common form factors for storage devices are:

Interface means how the device communicates with the computer. Common interfaces for storage devices are:

PCIe is much faster than SATA. SATA III maximum speed is 6 Gb/s whereas M.2 connector using 4 PCIe v3 lane has a maximum speed of almost 4GB/s = 32 Gb/s.

Protocol specifies how to manage and transfer data from/to device. Common protocols are:

In order to understand better, we need to make an explicit distinction between the controller and the storage device. The storage device is the one actually keeps data, however, software does not communicate with the storage device directly. It communicates with the controller. So in SATA case, a storage device may use ATA commands, but controller is used with AHCI. In PCMe case, on the other hand, NVMe specifies both.

So possible and common combinations are:

In this article, I will give examples using an M.2 SSD using PCIe interface.


A Minimum Complete Tutorial of Linux ext4 File System

关于ext4 fs存储结构分析,作为入门学习文章挺好的。flex block group是为了改善大文件设计的,可以将连续的blocks放在一起管理,这样大文件就不用使用indirect blocks有多次访问跳转的问题了。另外就是里面的各种工具不错, debugfs, dumpefs啥的。