一文看懂 ACID/CAP/BASE

本文详细阐述了数据库事务的四个基本属性——原子性、一致性、隔离性和持久性(ACID),以及分布式系统中的核心需求——一致性、可用性和分区容错性(CAP定理)。同时,介绍了在CAP理论基础上,为了平衡一致性和可用性而提出的BASE理论,即基本可用、软状态和最终一致性。通过对这些概念的理解,读者能够更好地掌握分布式系统的设计原则。

事务的4个基本要素–ACID

原子性(Atomicity)

一个事务中的所有操作要么全部成功,要么全部失败;没有中间状态

一致性(Consistency)

如A向B转账100元,要保证A扣除100元,B增加100元

隔离性(Isolate)

同一时间对同一个资源只有1个事务在操作
比如A在从银行卡中取钱,在A操作完成之前,B不可以向这张卡转账;

持久性(Durability)

事务操作结果 要持久化到数据库中,不可以回滚


分布式系统3个核心需求–CAP定理

一致性(Consistency)

  • 这里的一致性与数据库ACID中的“一致性”类似,但略有不同:
  • ACID中的“一致性”指的是单个事务中的数据一致性;
  • 分布式系统的“一致性”指的是 所有(备份)节点在同一时刻数据是一样的
  • 对上层应用来说,对所有节点的访问到的数据是一样的

可用性(Availability)

  • 指服务正常可用,而且每一个操作都会在一定时间内返回结果
  • 不会出现响应超时或者操作失败的情况
  • 另一种说法:只要收到用户请求,就必须给予响应,这时候才叫可用。

分区容错性(Parititon Tolerance)

  • 大多数分布式系统存在多个子网络,每个子网络就叫做1个分区。分区容错的意思是:区间通信可能失败
  • 比如,一台服务器在中国,一台在美国,这就是2个区,他们可能无法通信,这时候就需要分区容错
  • 分布式系统都具备分区容错性

任何系统中只能满足CAP其中的2个,三者不可兼得

可以这样理解CAP

  • 分布式系统必然具备分区容错性,每个节点(副本)都是一个分区。这时候可用性(A)和一致性(C)是矛盾的:
  • 如果选择一致性,那么系统必须在所有节点数据一致之前锁住资源(禁止读写),待各节点数据一致后才可用,这叫CP
  • 如果选择可用性,那么节点之间数据可能不一致,从不同节点读取到的结果不一样,违背了一致性,这叫AP
  • 单点(无副本/分区)系统,必然满足一致性和可用性,即CA,但不具备分区容错性

BASE理论

BASE,是指Basically Available(基本可用),Soft state(软状态),Eventually
consistency(最终一致性)。

BASE理论是对CAP的一致性和可用性权衡的结果。

Basically Available(基本可用)

  • 分布式系统在发生故障时,允许损失部分可用性
  • 例如,
  • 性能上的损失:正常情况下响应时间为0.5s;当系统发生故障(如部分机房发生故障)时,响应时间增加到1-2s;
    * 功能上的损失:业务高峰时,为防止系统奔溃,会把用户请求引导到一个降级页面(显示“服务暂时不可用”等提示信息);

Soft state(软状态)

  • 也叫弱状态,与硬状态相对。即,允许数据存在中间状态
  • 也就是说,允许不同副本的数据同步存在一定的延时;

Eventually consistency(最终一致性)

  • 在一段时间后,所有副本节点的数据是一致的
### 视觉语言模型的基本概念 视觉语言模型(Vision-Language Models, VLMs)是一种跨模态的人工智能技术,旨在连接视觉数据(如像、视频)与自然语言之间的关系。这些模型可以理解并生成关于视觉内容的语言描述,或者反过来根据语言指令分析解释视觉信息[^1]。 具体来说,在像描述任务中,VLM 需要识别像中的对象、场景及其相互作用,并将其转化为连贯的自然语言叙述;而在像问答任务中,则需结合输入的文字问题解析像内容,提供精确的回答。这表明 VLM 不仅具备强大的感知能力,还拥有一定的推理能力表达能力。 ### 工作原理 视觉语言模型的核心工作流程通常涉及以下几个方面: #### 跨模态特征提取 为了实现对多种类型的数据的理解,VLM 使用预训练方法来获取高质量的跨模态表示向量。例如,基于 Transformer 的架构被广泛应用于这一过程,因为它能有效捕捉序列间的依赖关系,无论是来自文本还是像素级的空间分布信息[^2]。 ```python import torch from transformers import CLIPProcessor, CLIPModel model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") image = ... # PIL image object text = ["a photo of a cat", "a photo of a dog"] inputs = processor(text=text, images=image, return_tensors="pt", padding=True) outputs = model(**inputs) logits_per_image = outputs.logits_per_image # this is the image-text similarity score probs = logits_per_image.softmax(dim=1) # we can take the softmax to get probability distribution print(probs) ``` 此代码片段展示了如何利用 Hugging Face 提供的 `CLIP` 模型计算片与若干候选词句之间的相似度得分,进而推断最匹配的结果。 #### 对齐机制 另一个关键技术是对齐机制的设计——即怎样让两个异质空间内的元素建立起映射关联。一些先进方案采用对比学习框架构建损失函数,促使正样本对拉近彼此距离的同时推开负样例组。 ### 应用领域 由于其卓越性能表现,VLM 正迅速渗透到多个实际应用场景之中: - **电子商务**: 自动生成商品详情页文案; - **社交媒体平台**: 辅助审核违规内容或增强用户体验交互界面设计; - **医疗健康行业**: 协助医生诊断疾病影像资料同时记录诊疗意见等复杂操作步骤说明文档撰写服务等等[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员柒叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值