“凭什么说你比我先?”——没有上帝时钟,如何判断“谁先谁后”?

thbcm阅读(504)

兰伯特逻辑时钟

兰伯特逻辑时钟(Lamport Logical Clock)为系统中的每个事件分配一个单调递增的数字(时间戳),用于捕捉事件间的偏序关系(Happened-Before Relationship)。

假设每个进程 Pi 维护一个本地计数器Ci 。

1)进程内事件发生:Pi 在执行一个内部事件或发送消息前,Ci = Ci +1。

2)消息发送:Pi 发送消息m时,附带当前Ci 值作为消息时间戳 ts(m)。

3)消息接收:Pj 接收到消息m后,更新其本地计数器 Cj = max(Cj, ts(m) )+ 1。

如果事件A发生在事件B之前(A -> B),则 C(A) < C(B)。但反之不成立,即 C(A) < C(B)并不一定意味着 A -> B,A和B可能是并发的。

兰伯特时钟虽然解决了存在依赖关系的事件时序,但无法区分两个具有相同逻辑时间戳的事件的真实顺序,也无法判断两个时间戳不同但无因果关系的事件是否为并发。

WeakMap 应用场景与示例

thbcm阅读(502)

下面是一个对比 WeakMap 和 Map 主要特性的表格,帮助你快速了解它们的区别:

为什么要用async、await ?

thbcm阅读(516)

异步编程可以提高系统的吞吐量,async/await语法简化了异步编程的实现,降低使用门槛。

API 响应体加密场景下的调试实践:Postman 的局限与 Apipost 的优化

thbcm阅读(508)

后端服务出于安全性或协议规范的考虑,对 API 的响应体进行了加密或编码处理,例如 Base64 编码、AES/RSA 加密等。这样做在生产环境中是合理且必要的,能够避免敏感数据被明文传输。但与此同时,也为开发和测试阶段的调试带来了不小的麻烦。

函数计算进化之路:AI Sandbox 新基座

thbcm阅读(524)

然而,这种强大的自主性也带来了前所未有的安全风险。如何在一个安全可控的环境中执行AI驱动生成的业务逻辑?答案就是 AI Sandbox。

AI Sandbox 是一个被严格控制的隔离环境,它允许 AI Agent 在其中安全地执行代码、与应用交互和访问资源,而不会危及主机系统或泄露敏感数据。其核心价值在于,它为创新提供了一个“安全环境”,在释放 AI 强大潜力的同时,有效规避了潜在的安全风险,是推动 Agent 技术走向成熟和商业化应用不可或缺的基础设施。

qemu的外部快照实现原理

thbcm阅读(510)

COW是外部快照的读写流程中最重要的部分。


1 什么是COW

COW(Copy-On-Write),也被称之为「即写即拷」快照技术或「写时复制」快照技术,这种方式通常也被称为“元数据(源数据指针表)”拷贝。顾名思义,如果有人试图改写源数据块上的原始数据,首先将原始数据拷贝到新数据块中,然后再进行改写。


2 为何需要COW

当写请求发生在backing file上,要先分配new cluster。如果只是把要写的数据写到new cluster上,那数据是不完整的,因为每次写入的数据并非刚刚是cluster的整数倍,可能是几个或几个sector,所以需要我们把剩下的部分从old cluster上复制到new cluster,最后把这个cluster标记为allocated cluster。

当我们下次读该cluster,在overlay上就可以读到,且数据是完整的,不是残缺不全的。


3 如何COW

qcow2的COW并非先复制再写入,而是先写入再复制。步骤如下:

联系我们