读扩散和写扩散的理解

架构师-读写扩散 图片上传到该CDN后,小王的微信客户端会通知微信的朋友圈CDN:这里有一个新的发布(比如叫K2),这个发布的图片URL是什么,谁能看到这些图片,等等此类的元数据,来把这个发布写到发布的表里。但是相对应的,读取就很简单了,每一个用户只需要读取自己的时间线表,就这一个动作就行,而不需要去遍历所有好友的相册表。至于为什么不采用读扩散,一是因为一个群聊的人数相对较少,利用写扩散更加合适,二是如果采用读扩散,微信群聊每秒钟都可能有消息产生,那么用户会执行大量的读操作,这个过程并不是完全可靠的,很可能发生数据丢失。 阅读详情

今天看一篇文章时,提到了微信的群聊是写扩散的,第一次接触到写扩散这个名词,于是去查了下资料,有写扩散就有读扩散嘛

定义如下:

 

根据上面的定义,我是这样理解的,什么是写扩散,什么是读扩散,要怎么区分他们,区别之处就在于“主动”


写扩散是主动把消息写到订阅者的消息列表里,这样订阅者就不用去我的outbox拉取消息 ,所以当我要是有很多订阅者时,我就要写很多次,这就是上面定义中说的写很重


读扩散是主动去拉取被订阅者的outbox,这样就不需要被订阅者主动写消息到我的消息列表里来,所以当我要是订阅了很多人时,我就要去读取这些人的所有新消息,所以就出现了读很重


我又联想到了数据库中表之间的关系设计了,两个表之间有关联关系,那这个关系该由谁来维护,同样可以用读扩散和写扩散的概念来思考,其实也可以说,表关系的维护设计,是写扩散和读扩散的具体实现。

IM 模型分析之读写扩散模型 什么是 IM 的读写扩散模型?读扩散模型和写扩散模型有什么优缺点和典型的应用场景? 阅读详情

相关推荐

IM 架构设计03 读扩散 && 写扩散

https://blog.youkuaiyun.com/z50L2O08e2u4afToR9A/article/details/86746814 系统通知,究竟是推送还是拉取? 任何脱离业务场景的架构设计都是耍流氓。 广义系统通知,有1对1的通知,以及一对多的通知,有相对实时的业务通知,以及能够容忍一定延时的系统通知。结合具体的场景来看下,这样的一些系统通知,究竟是推还是拉? 一、系统对1的通知 典型业务,计数类通知: 有10个美女添加了你为好友 有8个好友私信了你 很多业务经..

郭传志的博客 3363

朋友圈微博feed流,推拉实践

上一篇《feed流拉取,读扩散,究竟是啥?》关于feed流的拉取还是推送,只写了一半“拉取”,今天把另一半“推送”(写扩散)的坑填完。为了对比“拉”“推”两种方案,同时也...

架构师之路 4956

im即时通讯开发:聊天消息的同步和存储

IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品,但其核心功能还是IM。还有一些非以IM系统为核心的应用,最典型的如一些在线游戏、社交应用,IM也是其重要的功能模块。可以说,带有社交属性的应用,IM功能一定是必不可少的。 IM系统在互联网初期即存在,其基础技术架构在这十几年的发展中更新迭代多次,从早期的CS、P2P架构,到现在后台已

蔚可云的博客 1720

什么是读扩散和写扩散

写扩散是指在分布式系统中,由于数据的复制和缓存等原因,当一条数据被更新后,需要将该数据的更新操作同步到多个节点中的副本,以保证数据的一致性。读扩散是指在分布式系统中,由于数据的复制和缓存等原因,当一条数据被更新后,在多个节点中都存在该数据的副本,这时候其他节点请求该数据时,可能会读取到过期的数据,因为该节点上的数据还未被更新。因此,读扩散就是指一条数据在更新后,由于分布式系统中数据的复制和缓存等原因,可能会导致其他节点上的数据过期,读取到过期数据的现象。

qq_30503389的博客 3310

深入解析新闻订阅系统的设计和实现

本章介绍了设计新闻订阅系统的过程。讨论了系统的功能需求,包括发布帖子、查看朋友的帖子等。提出了高层次设计,包括订阅发布和新闻订阅构建的流程。还介绍了新闻订阅 API 的设计和订阅发布的详细设计。讨论了扩散模型和缓存架构的设计。最后提到了系统设计中需要考虑的一些扩展性问题。

smarter_AI的博客 823

读扩散、写扩散(推拉模式)详解 及 混合模式(实际场景分析及相关问题)

文章讲述混合模式解决方案:普通用户采用写扩散,大V用户采用读扩散,中间层用户根据活跃度动态选择策略。同时探讨了缓存优化、关注爆炸处理、N+1查询等关键问题,给出了分层获取、批量查询、多级缓存等优化方案,为构建高性能Feed系统提供了技术思路。

小韩的博客 1528

feed流,读扩散,写扩散?(第76讲)

在推模式(写扩散)中,获取“由别人发布的feed组成的主页”会变得异常简单,假设一页消息为3条feed,A如果要看自己朋友圈的第二页消息,直接返回1,2,3即可。画外音:有朋友提出,可以存储一份消息实体,只冗余msgid,这样的话,拉取feed流列表时,还要再次拉取实体,网络时延会更长,所以很多公司选择。微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。,feed数据会存储很多份,例如杨幂5KW粉丝,她每次一发博文,消息会冗余5KW份;

shenjian58的博客 1310

去噪扩散概率模型(DDPM)的简单理解

扩散模型最近在图像生成领域取得了巨大的成功,类似 OpenAI 的DALL-E 2,Google 的Imagen,以及 Stability AI 最近发行的能够达到商业级绘画目的的等,都是基于扩散模型来进行图像生成的。本文对知乎上各位大佬对于扩散模型(特别是 DDPM)的讲解进行了融合,带领大家深入浅出理解扩散和逆扩散过程。模型总览图2 DDPM 是经过训练以逐渐去除噪声数据的参数化马尔可夫链。我们估计生成过程的参数。forward 加噪过程(从右往左)reverse 去噪过程(从左往右)

XavierJ的博客 2万+

读扩散,写扩散,终于终于讲清楚了!

什么是feed流?什么是读扩散?什么是写扩散?任何脱离业务的架构设计都是耍流氓,今天和大家聊聊这几个话题。哪些产品是feed流典型业务?微博,微信朋友圈,Pinterest是典型的feed...

shenjian58的博客 4283

通俗理解DDPM:生成扩散模型

本文将逐渐介绍近两年关于生成扩散模型的一些进展。据说生成扩散模型以数学复杂闻名,似乎比VAE、GAN要难理解得多,是否真的如此?扩散模型真的做不到一个“大白话”的理解?让我们拭目以待。

zcyzcyjava的博客 7934

DDPM扩散模型公式推理----扩散和逆扩散过程

本文章旨在梳理DDPM这篇论文中的各个公式含义及推导,很多内容从其他博客处摘录,在文后列举。打个比方,就像是给你一块木头,让你把它雕刻成一个佛像,需要栩栩如生。Diffusion model在推理阶段就是在执行逆扩散过程,也就是雕刻佛像的过程。用数学语言进行描述,生成式模型本质上是从一组概率分布中得到另一组概率分布。如下图所示,左边是一个训练数据集,里面所有的数据都是从某个数据pdata p_{\text {data }}pdata ​中独立同分布取出的随机样本。右边就是其生成式模型(概率分布),在这种概率

weixin_45453121的博客 5846

读扩散与写扩散

哪些产品是feed流典型业务? 答:微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。 这类业务的特点是: 有好友关系,例如关注,粉丝 我们的主页由别人发布的feed组成 这类业务的典型动作是: 关注,取关 发布feed 拉取自己的主页feed流 这类业务的核心元数据是: 关系数据 ...

Never__give__up的博客 1459

WPS文档编辑时空行问题解决方案

本文详细介绍了如何解决WPS文档编辑时空行的问题,从问题描述与分析、解决方案详解到操作示例与注意事项等多个方面进行了全面阐述。通过本文的介绍和指导,用户可以快速定位问题根源并采取有效措施进行解决,从而提升文档编辑效率和美观性。未来,随着WPS软件的不断升级和优化,相信会有更多便捷高效的功能被添加到软件中。同时,用户也需要不断学习和探索新的操作技巧和方法,以适应不断变化的办公需求。希望本文能够为广大WPS用户提供有益的参考和帮助,共同推动办公效率的提升和发展。

mmoo_python的博客 1244

扩散模型(Diffusion Model)——由浅入深的理解

对扩散模型(diffusion model)进行由浅入深的理解

WSLGN的博客 8万+

Vue3 + OpenLayers 开发指南(一) - 环境搭建与基础配置

本文详细介绍了如何从零开始搭建Vue3与OpenLayers的集成开发环境。通过项目初始化、核心依赖安装、目录结构规划及基础配置,手把手引导开发者创建一个结构清晰、可维护的现代化WebGIS应用骨架,为后续添加地图图层和交互功能奠定坚实基础。

weixin_28049429的博客 339

Benchmark系列——UnixBench测试项深度解析与性能优化指南

本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。

weixin_29230901的博客 275

写扩散同步介绍 | OpenIM

摘要: 写扩散同步是IM系统高级版3.8.6引入的优化能力,通过服务端在写入时预标记会话变化,减少客户端同步时的数据量和计算开销。该方案适用于会话量大、群消息活跃的场景(如企业账号、多端用户),通过混合同步策略(写扩散为主,快照校准兜底)提升同步效率。核心优势包括:1)客户端仅需处理已标记变化的会话,降低传输量;2)服务端写入时预计算差异,减轻读压力;3)动态策略适配大群等高负载场景。最终显著改善用户登录速度、多端状态同步及弱网表现,同时优化服务端资源消耗。(149字)

OpenIM的博客 360

防止加入域主机脱离域的控制(管理员权限)

一、简介   当公司所有主机加入到域后,SA首要工作就是防止加入域的主机脱离域的控制。让我发现该工作的必要性是一程序猿,前一天刚配完禁止执行QQ、微信执行,第二天就看到那家伙在用微信聊天,肯定是用回旧的本地账号登陆了。   本人所在公司安装软件的类型繁杂,无管理员权限运行不少软件会报错,不得不授予「域账号」本地管理员权限。过大的权限带也来了一系列后果:用户可随意退出域、创建本地管理员...

der69615的博客 3173

数据库分库分表是啥?读写热点是什么?读扩散又是什么?

我们在上面的分库分表中,都用这个id去分,这其实就是所谓的分片键,实际上我们一般也是用数据库的主键作为分片键,这样理想情况下我们已知一个ID,不管是那个规则,我们根据ID都能很快的知道该去查询那张表。

qq_42268998的博客 1001

从IMU数据到精准定位:手把手推导ESKF中的四元数运动学与误差状态方程

本文详细介绍了如何从IMU数据推导ESKF中的四元数运动学与误差状态方程,实现精准定位。通过分析误差状态卡尔曼滤波器的优势、四元数表示的必要性,以及IMU测量模型和运动学基础,提供了完整的数学推导和实现要点。适合机器人定位和自动驾驶领域的算法工程师参考,帮助优化导航系统性能。

weixin_30271335的博客 680

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库创建数据库安装 Entity Framework配置数据库连接字符串添加实体模型类添加数据库上下文类添加控制器类运行测试 创建数据库 创建【全局数据库名】为 demodb 的Oracle数据库,用 SYSTEM 用户连接成功后创建【用户名】为 DJIANG 的用户,并授予该用户 DBA 角色 安装 Enti...

idjiang的博客 2537

feed流拉取,读扩散,究竟是啥?

任何脱离业务的架构设计都是耍流氓。哪些产品是feed流典型业务?答:微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。这...

shenjian58的博客 937

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 903
上一篇: Java中的字符串连接符(+)
下一篇: explain分析
AAA821
博客等级 码龄14年 19粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值