月度归档:2025年02月

No Mercy from Mercey

This blog is translated from its Chinese Version.

 

Mid-to-late February is the coldest time of the year in Toronto, with temperatures hovering between -7°C and -20°C. Just last weekend, the city was hit by the worst snowstorm in a decade.

Last Monday, exactly ten days ago (today is Wednesday), the heating in our house broke down. Perfect timing! It had actually broken once before in December, but back then, Jim, the elderly neighbor upstairs, and I managed to fix it with the good old “turn it off and on again” method. This time, no such luck. We immediately called the landlord, Keith. After understanding the situation, he quickly reached out to Mercey, the heating company responsible for maintenance. They scheduled a technician for the next day. Keith also kindly offered to cover hotel expenses if needed.

Enter Mercey. Once again, I got to experience firsthand just how inefficient things can be in Canada.

A little background: Mercey is a 50-year-old company specializing in residential heating and cooling. They are based in Scarborough, about 24 km from Rosedale—a 30-minute drive without traffic. The landlord has relied on them for years to install and maintain his heating and cooling systems.

Since 1974, Mersey Heating and Air Conditioning has provided personalized heating, air conditioning, and indoor air quality services to local homeowners across the Greater Toronto Area.

On Monday (Feb 10), Mercey Guy A showed up, gave the boiler a quick once-over, and concluded that a part was broken. And then… he left. Later, he called to inform us that the part had to be shipped from the U.S. and would take 5-7 business days to arrive.

Tuesday (Feb 11), around 2 PM, Mercey Guy B arrived. I thought he was here to fix the heating. Nope. He was just delivering two tiny space heaters, each about the size of an iPad Mini. He had no further information, dropped them off, and left. Too bad those heaters didn’t get along with our outlets—plug them in, and within five minutes, the circuit breaker tripped.

Under my wife’s urging, I rushed after work to buy a pair of wool slippers for Luna and some new batteries for the fireplace. After swapping out the fireplace’s dead batteries, I managed to get it running. The fireplace runs on natural gas, so we could keep it on 24/7, at least making the living room somewhat warm. The bedrooms, however, remained ice-cold.

So, we wanted to activate Plan B: The living room had a heat pump, which could also generate heat. We turned it on and waited ten minutes—nothing but cold air. Clearly, it wasn’t working. The landlord scheduled another Mercey visit for Wednesday to check it out.

We didn’t wait that long. Tuesday night, around 7-8 PM, Mercey Guy C arrived. Judging by his accent, he was likely local, and, surprisingly, the only one who actually seemed competent. He asked about the symptoms, checked the error codes, and despite the freezing cold, climbed a ladder outside to inspect the unit. Within about ten minutes, he confirmed the problem: a refrigerant leak had caused the pipes to freeze. It couldn’t be fixed immediately—specialists would have to come the next day.

Wednesday (Feb 12), Mercey Guys D and E showed up. But instead of jumping into work, they sat in their truck for 20 minutes before getting out. They tinkered around for an hour, then went back to the truck to rest. Fair enough, lunchtime. Half an hour later, they resumed work, only to come back and tell me: “It’s too cold. We can’t pump the refrigerant in. It won’t reach the required pressure. We’ll come back when it’s warmer.” And just like that, they left. Meanwhile, the weather kept getting colder, and waves of snowstorms kept coming.

Jim, the neighbor upstairs, was lucky. He and his wife had planned a trip to Florida for Wednesday. They only had to endure two days of freezing temperatures before escaping to the sunshine.

Fast forward six days. By this point, our entire daily life revolved around the fireplace. Outside, the snowstorms raged on. I was so cold that I started shoveling snow just to warm up. Dig deep enough, and you don’t feel the cold anymore.

Tuesday (Feb 18), new developments. No word on the boiler part, but our hallway radiator decided to give us an update—it cracked from the cold. It had likely started leaking the night before, but I hadn’t noticed until I walked in after work and was hit with a strange smell. At first, I blamed the pork ribs we had cooked, but when I stepped out in the morning, I saw a massive 10+ cm gash in the radiator. Water had leaked out and frozen into a sheet of ice. The smell? Concentrated, industrial-strength North American “wet dog” odor. I immediately checked the rest of the radiators—luckily, no other cracks. I reported the issue to the landlord, who called Mercey for an urgent appointment.

Tuesday afternoon, Mercey Guy F arrived. But surprise—he was here to check the boiler, not the radiator. Oh well, might as well let him take a look. After a quick inspection, he announced, “I’m from the new boiler sales department, not the repair team. Not sure why I was sent here.” Fantastic. After a few phone calls to his supervisors, he apologized and left. Sensing the gravity of the situation, the landlord drove 100 km from his own home to turn on the basement AC and fireplace, hoping to prevent further freezing damage.

Wednesday, Mercey Guy G arrived—presumably to fix the radiator. Instead, he:

  1. Took photos.
  2. Measured the radiator.
  3. Went to the basement and shut off a water valve.

Thankfully, I was working from home! Shortly after he left, the fireplace shut off. Normally, this would be fine—it has an automatic safety shut-off every six hours. But this time, it wouldn’t turn back on. Thinking the batteries had died, I spent $9 on a new pack. Still nothing. Panic. My wife started searching for hotels. Then it hit me—Mercey Guy G had shut off a valve right before the fireplace died. Could it be…? I ran to the basement. Sure enough, he had shut off the GAS line.

If I hadn’t caught it, here’s what would have happened:

  1. We would’ve checked into a hotel, making daily school commutes a nightmare.
  2. The landlord would’ve lost over $1,000 in hotel costs.
  3. Once the weather warmed, Mercey would return, unscrew the broken radiator, and BOOM—flooded house.

So, after ten days, let’s review:

  • Seven Mercey technicians (A, B, C, D, E, F, G) came for six visits.
  • They drove 24 km back and forth each time. Who knows how they bill for this?
  • They fixed absolutely nothing—not the boiler, not the heat pump, not even the radiator.
  • A supposedly “valuable” boiler part still hasn’t arrived in ten days. Ever heard of expedited shipping? Planes? Cars?
  • The space heaters they gave us tripped the breaker. What quality!
  • The fireplace? I had to diagnose and maintain it myself. In this place, you can only rely on yourself.
  • The bedroom is still freezing. We moved our daughter’s bed into ours and piled on every blanket we could find. On the coldest nights, I slept in thermal leggings and a Uniqlo down jacket.

No Mercy from Mercey. Right now, huddled by the fireplace, I miss my home country. I miss the workers, the efficiency, the express deliveries, and the warmth of Hangzhou’s spring.

Mercey still needs to come at least three more times: once for the radiator, once for the boiler, and once for the heat pump. But do I believe they’ll fix everything in just three visits? Absolutely not.

In two more weeks, Toronto’s temperatures will start climbing back toward zero. Until then, we wait, facing Lake Ontario, counting down to the first signs of spring.

No Mercy from Mercey!

2月中下旬,是多伦多一年中最冷的时候,温度在零下七度到零下二十度之间徘徊。上个周末,多伦多也遇上了10年不遇的暴雪。

上周一,也就是10天前(今天周三),房子暖气坏了。坏得可真是时候!十二月份的时候也坏过,但是楼上的 Jim 爷爷我和一起用重启大法弄好了,这次很不幸,重启大法失效。立即打电话给房东 Keith,他了解到情况后第一时间联系了暖气的设备供应商 Mercey 第二天上门排查,也告知我们随时可以去住酒店,费用他报销。

好,Mercey 登场。Mercey,让我再次体验加拿大社会之低效。

先交代一下背景,Mercey 是一家50年的老牌公司,专攻家庭供暖和制冷。公司位于世家堡,距离 Rosedale 24km,开车不堵半小时。房东家的水暖、空调都是 Mercey 负责安装和维护的。

Since 1974, Mersey Heating and Air Conditioning has provided personalized heatingair conditioning, and indoor air quality services to local homeowners across the Greater Toronto Area.

周一(Feb 10),Mercey 老哥 A 上门,对锅炉一番简单的望闻问切,判断是锅炉的一个零件坏了。然后就走了。随后电话告知,修复这个故障需要更换零件,而零件是从美国运输过来,需要5-7个工作日运输。

周二(Feb 11)下午两点多,Mercey 的老哥 B 开车上门,以为他是来修暖气的,结果他说我是奉命来送电暖气的(space heater),其余一概不知,放下就走了。两个可爱的小电暖气,ipad mini 那么大吧。可惜它和我家插座八字不合,插上之后5分钟之内插座必跳闸。

在老婆的督促下,我下班赶紧去买了一双棉拖鞋,一组电池。把壁炉的电池换掉后,成功启动了它。这个壁炉是烧天然气的,可以24h开着,能勉强让客厅暖和起来。卧室还是冰冷。

于是我们启动了 Plan B:客厅有一个热泵空调,可以制热。打开空调制热后,等了十分钟还是冷风,感觉是不工作的。于是,房东约了 Mercey 的人来看看空调是怎么回事。

周二(Feb 11)夜里七八点,Mercey 小哥 C 来了,从口音看感觉是本地人,全过程唯一一个让我觉得做事靠谱的小哥。它跟我询问了症状,空调错误码,然后顶着严寒在室外爬梯子诊断空调故障点。大概十几分钟,它确认了空调因为漏液/气,导致管道结冰。无法立即修复,需要明天专人上门。

周三(Feb 12)上午,Mercey 小哥 D、E 来了,到了家门口后也没下车,在车上休息了大概20分钟,然后下车干活。搞了大概个把小时,再一看,又在车上休息。嗯,这是人家的权利,也快到中午了,该吃饭了。大概半小时后,两人继续倒腾。再过半小时,来跟我说:太冷,充气充不进去了,还无法达到工作压力标准。我们今天干不了了,会等一个暖和点的时候再上门。这一等,就是越来越冷的天,以及一波又一波的暴雪。

二楼的 Jim 爷爷是幸运的,他们很早就订了周三出发去 Florida 的行程,只挨了两天冻,非常幸运!

快进6天。这段时间,全家生活中心开始围绕壁炉展开。外面连续数日暴雪。我实在太冷,就去铲雪。铲到深处,丝毫不冷。

周二(Feb 18),发生了新情况。锅炉的零件没有消息,但门厅的水暖散热器给我们带来了新消息,它,裂了,冻的。周一晚上它应该就已经裂了一些,当时下班回家进门的时候闻到一股北美骚猪味,我还心里嘀咕怎么今天的排骨骚气这么狠,门厅都是!周二我早上出门的时候赫然看到散热器被冻破,十几厘米的大口子,水溢出来地上都成了冰,空气中弥漫着10倍北美骚猪味。立即把家里和地下室的散热器都检查了一遍,还好,其余还没有裂。跟房东反馈了这个问题,房东立即打电话给 Mercey 预约了上门。

周二下午,Mercey 小哥 F 来了,他来了之后却说他接到的指令是来看锅炉的。好吧,那就看锅炉。了解了锅炉的情况,他说,我是新锅炉销售部的,不是维修部的。这尼玛也不知道怎么回事把我给派来了。真行!一通电话和他的领导们了解情况,然后拍拍屁股,“抱歉”地走了。大概是感觉到事态严重,房东也从一百多公里外的家里过来了,他打开了地下室的空调和壁炉,给房子加温,免得整个家都冷爆炸。

周三,Mercey 小哥 G 来了,应该是来修理更换水暖散热器的吧。结果,他干了这么几件事:1. 拍照;2. 拿尺子量水暖散热器尺寸;3. 去地下室关闭了水闸。幸好我今天是在家办公!小哥G走后,壁炉自己关闭了,这倒是正常,因为这个壁炉大约每 6 小时会自动关闭,按一下遥控器就能重启,倒能接受。但是这次,无论如何也启动不了了。一个多小时后,家里的温度以肉眼可见的速度下降(外面-12度),我以为是电池没电了,专门花了9加元(45人民币)买了4节5号电池换上,依然无效。这是咋了?!老婆开始看酒店了,我突然想起来,壁炉关闭的时间,就是小哥G离开的时间,莫非。。。他关闭的不是水闸?赶紧下地下室一看,卧槽,管子上赫然写着 GAS!幸亏发现了,不然可以预想的后果是:

  1. 我们要去住酒店,天天为了上学来回折腾;房东每天要损失1000+的住宿费。
  2. 天气暖和后,Mercey 来更换水暖散热器,螺丝一拧,轰,房子被淹。

所以,看看吧,十天的战况如何:

  1. Mercey 前后来了 A、B、C、D、E、F、G 7个人,6次。每次都是开车 24 公里来回。也不知道他们是怎么收费,应该不是按小时吧?!
  2. Mercey 什么都没修好,包括锅炉、热泵空调、连带伤害的水暖散热器。什么都没修好!
  3. 什么值钱的锅炉零件,10天都送不到?开车送过来都到了啊!难道不知道世界上有一种东西叫“快递”吗?不知道有一种东西叫“飞机”吗?你什么值钱零件,难道是在工厂里现场手搓的吗?
  4. Mercey 送来的小电暖气,一插就跳闸,这是什么品质!
  5. 赖以生存的壁炉,全靠我自己诊断维护。这个鬼地方,靠谁都不如靠自己!
  6. 卧室依然很冷,把闺女的小床搬到了主卧,三个人依偎在一起。把所有能盖的被子都薅出来了,一层叠一层地盖。极冷的时候,我就穿着秋裤和优衣库薄羽绒服睡,稍微好点。

No Mercy from Mercey!此时此刻,依偎着壁炉,想念我的祖国,想念祖国的劳动人民,想念我们的快递,想念我们的效率,想念杭州的春暖花开。

而Mercey,他们至少还要上门三次,至少至少,一次换水暖散热器,一次换锅炉零件,一次修空调。当然,我对此丝毫不抱希望,三次,我认为他们是绝对不可能三次搞定的。

再等两个星期,多伦多的温度就要慢慢回升了,能做到0度上下徘徊,那时候就舒服了。让我们面朝大略湖,静待雪融花开吧。

加拿大这个地方,你最好不要犯任何错误,不要惹下任何麻烦,否则你就成了无穷无尽地麻烦。届时,不仅要投入无穷的时间,还要投入无穷的金钱。如果你有兴趣听,下次我再写写我和我买的二手车,哎,一言难尽,吃了苍蝇。


补记:

换水暖散热器,我以为只需要一次,实际上花了两次。

第一次是一个British accent 的老爷爷,他跟我电话约时间来测长度,我说你不用来,我测好了告诉你就不行了?他说他必须自己来,来后,用尺子一顿测量,喃喃自语记在了本子上。走了。

第二次,来了两个壮汉,很利落地把暖气片换上了,那小东西,据说要几千刀。

接下来是换锅炉零件。终于,终于Mercy的配件来了,在我不太需要它的时候,来了。来了两个人,一个干活的,一个老师傅。老师傅是中国人,六十岁不到,来自上海,老多伦多人了。他就负责看,陪唠嗑,另一个年轻人负责干活。零件很快就装好了,启动,可以工作了。老师傅说再等半小时,热起来他们再走。于是我就跟他聊天,这次聊天也揭开了Mercy 如此低效的根本原因:工会。工人得到充分的保护,最终形成了一种明目张胆地低效利益集团。

至于修空调,Mercy似乎 已经把这个事情忘记了,再也无人提起。

本文英文版,文字非常优美:http://blog.reactshare.cn/no-mercy-from-mercey-en/

AI Database:从自动化到智能化的演进

最近对 AI Database 有了一些新认识,速记如下。


AI Database 的发展可以划分为以下几个阶段,每个阶段都在数据库的智能化能力上逐步进化,为用户提供更高效、更智能的体验。

1. 早期的 AI Database:Autonomous Database

最早的 AI Database 主要是 Autonomous Database,核心目标是自动化数据库运维,减少 DBA 的管理负担。它具备一定的自诊断能力,例如:

  • 自动调优(Auto-Tuning):基于历史查询模式,自动调整索引、缓存、执行计划等,提高查询性能。
  • 自修复(Self-Healing):检测异常并尝试自动修复,如自动重启崩溃的实例、调整资源分配等。
  • 智能监控(Intelligent Monitoring):分析数据库负载,预警潜在的性能瓶颈。

这类数据库的 AI 主要用于内部运维,目标是降低数据库管理成本。

2. AI + Database:向量存储 & AI 文档能力

随着大模型的兴起,AI Database 进入了新阶段,开始引入AI 相关的数据存储与处理能力,例如:

  • 向量数据库(Vector Database):支持存储和检索高维向量,如 AI 生成的文本嵌入(embedding),为搜索、推荐系统等提供支持。
  • AI 文档(AI Document):结合 AI 的能力,让文本存储更高效。例如:
    • 智能分词、自动摘要,提升文本查询体验。
    • OCR 解析,自动提取文档内容并结构化存储。
    • 自然语言查询,让用户用 AI 直接生成 SQL 语句。

这阶段的 AI Database 主要是为 AI 应用提供基础设施支持,但 AI 仍然是数据库的一个外部工具,而非核心能力。

3. 真正的 AI Database:内置 AI 模型与 AI 函数

下一代 AI Database 将深度融合 AI 能力,不仅仅是存储 AI 相关数据,而是让 AI 直接成为数据库的核心功能,提供 AI 驱动的 SQL 处理能力。例如:

3.1 内置 AI 模型服务

数据库内置 AI 推理服务,用户可以像调用普通 SQL 函数一样调用 AI 模型:

ALTER SESSION SET ai_service = ‘deepseek-r1-011503’;

这允许用户选择适合的 AI 模型,并在 SQL 查询中直接调用 AI 相关功能。

3.2 AI SQL 函数

数据库提供 AI 计算函数,用于文本处理、数据分析、智能排序等,例如:

— AI 摘要
SELECT uid, ai_summarize(comment) FROM order GROUP BY uid;

— AI 排序
SELECT *, ai_rank(age, occupation, spending) AS rank FROM customer ORDER BY rank DESC LIMIT 10;

— AI 生成短文本
SELECT ai_shorten(content) FROM blog_content;

相比传统 SQL,AI SQL 极大简化开发,让数据库具备更强的智能数据处理能力。

3.3 AI 索引

不仅 SQL 语句可以调用 AI,数据库甚至可以创建AI 驱动的索引,提升查询效率。例如:

CREATE AI INDEX idx_short_content ON blog_content ai_shorten(content);

这样,数据库可以自动对相似文本、语义相关内容进行优化索引,而不局限于传统的 B+ 树或哈希索引。

3.4 早期阶段的挑战与标准化问题

目前,AI 函数和 AI 索引仍然处于非常早期的阶段,尚未形成行业统一的标准。在实践中,不同 AI 模型的能力存在较大差异,这导致:

1. AI 函数的适用范围受限

  • 目前的 AI Database 依赖外部大模型或内置 AI 推理能力,不同模型擅长的任务不同。例如:
  • 一些模型擅长文本总结 (ai_summarize),但在智能排序 (ai_rank) 方面能力有限。
  • 一些模型可以高效处理图片、音频等非结构化数据,但无法提供高质量的自然语言处理能力。
  • 这意味着不同数据库实例,甚至同一数据库使用不同 AI 模型时,支持的 AI 函数可能是子集关系,影响用户体验。

2. AI 索引的通用性问题

  • 传统数据库索引(如 B+ 树、哈希索引)有明确的结构和性能特征,而 AI 索引(如 ai_shorten(content) 生成的索引)由于依赖 AI 模型的内部行为,不同模型生成的索引可能不具备一致性。
  • 例如:
    • 使用某个 LLM 生成的 ai_shorten(content) 索引,可能在某些数据集上表现良好,但换成另一个模型,索引的匹配效果可能会显著变化。
    • AI 索引可能依赖特定模型的 embedding 方式,不同模型的 embedding 维度、计算方式不同,导致跨模型的兼容性问题。

3. 未来需要解决的问题

  • AI 函数标准化:类似 SQL 标准(如 SQL-92、SQL-2011),未来可能需要定义一套AI SQL 规范,确保不同数据库、不同 AI 模型都能稳定支持 AI 计算能力。
  • 模型适配层:未来 AI Database 可能需要引入一个模型适配层(Model Abstraction Layer),让 AI SQL 语句能够在不同 AI 模型之间自由切换,而不依赖某个具体的 AI 实现。
  • AI 索引兼容性:需要建立一套跨模型的 AI 索引规范,确保同一 SQL 语句在不同 AI 体系下有一致的查询效果。

4. AI Database 的应用场景

基于 AI Database 的能力,它在多个领域都能大幅提升效率,例如:

  • 互联网内容应用:智能摘要、自动分类、内容生成。
  • 推荐系统:AI 排序、个性化推荐、智能标签。
  • 电商:智能商品搜索、语义匹配、智能客服。
  • 企业内部应用:知识库自动补全、智能数据查询、报告生成。

总结

AI Database 的发展经历了从自动化运维(Autonomous Database)→ AI 存储 & 文档处理 → AI SQL 计算 → AI 深度融合数据库核心功能的演进过程。

相比于依赖外部 AI 系统,直接在数据库的 SQL 接口中提供 AI 能力,是最自然且高效的方式,具备以下核心优势:

1. 极佳的易用性

  • 通过 SQL 直接调用 AI,无需额外的数据搬运或 API 集成,极大降低开发和使用成本。
  • 用户可以像使用普通 SQL 函数一样,调用 AI 进行数据分析、文本处理、智能排序等操作。

2. 强大的表达能力

  • SQL 本身就是一个强大的查询语言,结合 AI 后,用户可以在 SQL 层面进行更加智能的计算,表达更复杂的需求。
  • 例如,可以直接用 ai_summarize 提取关键信息,或用 ai_rank 计算智能排序,极大提升 SQL 的数据处理能力。

3. 更优的数据实时性

  • 数据库天然具备实时更新能力,AI Database 能在最新的数据上执行 AI 计算,而外部 AI 系统通常依赖定期同步数据,实时性较差。
  • 例如,在电商系统中,用户购买行为实时更新,AI Database 可以立即调整个性化推荐,而外部 AI 可能因数据延迟导致推荐不精准。

4. 更好的数据安全性和合规性

  • 直接在数据库内部处理 AI 任务,避免了数据外流的风险,确保数据安全和合规
  • 外部 AI 系统通常需要将数据传输到第三方服务,而 AI Database 可以在本地或企业内部环境中完成 AI 计算,提升隐私保护能力。

5. 降低系统复杂度

  • 传统 AI 解决方案通常需要多个组件(数据同步、AI API 调用、结果存储等),而 AI Database 将这些能力内聚到数据库中,简化了系统架构。
  • 开发者不需要维护额外的 AI 计算集群,数据库本身就能完成 AI 推理。

AI Database 的价值

真正的 AI Database 不是简单地支持 AI 数据存储,而是让 AI 直接成为 SQL 计算的一部分,让开发者能够更自然、更高效地使用 AI 进行数据处理。

基于 AI Database,用户可以像使用普通 SQL 语句一样使用 AI享受 AI 带来的智能化能力,同时保持数据库的实时性、安全性和高效性。这才是真正对用户有价值的 AI Database,也是数据库智能化的未来方向。