Feed流系统设计工作讨论
忧愁的老王:
有些疑问UP可以回答一下嘛[思考][脱单doge]
Ehcache作为降级后的数据源,那ehcache的数据来源是从哪来的
是定时任务请求Redis吗?感觉这样是非常大的开销吧,全量请求,Redis的数据太多了
还是在批处理写入计数到jimKV和Redis的时候,顺便写入到ehcache?如果是这样,频繁写入Ehcache进行序列化、刷盘,不是会带来很大的性能问题吗
【回复】回复 @你爷爷关注的CYT : 其实不用理解的那么复杂,ehcache在本质上和caffine没有本质区别,都是一个本地缓存,只不过ehcache缓存的过期时间比较长而已,caffine的过期时间短,放在内存中,ehcache的过期时间长,放在硬盘中;现在我们来回忆常规的本地缓存是什么时候构建的,答案是在检查本地的caffine缓存不存在用户请求的数据之后向分布式KV读取数据返回给用户之前种到本地缓存中的
【回复】[思考]redis与JimKv 用mq同步时,发布写事件,应该可以创建一个ehcache consumer去监听写事件,然后同步到encache中爱喝咖啡的milk:
可以详细讲一下SDS如何计算得出一个kv对开销为53字节吗?AI视频小助理:
一、一个信息流社区的技术架构,包括低成本高性能的技术读写服务、点赞服务以及缓存一致性方案的设计和实现。
00:01 - 用户可以在不同的圈子发帖和关注其他用户
00:54 - 使用KV数据库存储技术数据,避免复杂的表结构和查询
03:19 - 使用冷热分离的数据存储策略,降低存储成本和提高效率
二、使用Facebook的Releas集群来存储技术数据的成本优化过程,包括使用ZIPLIST压缩列表实现希类型、变长编码等多项技术。
06:02 - 使用FDF简单动态字符串存储技术数据,存储成本从2.7Tb下降到700GB
09:04 - 使用ZIPLIST压缩列表实现的希类型存储KV队,节省大量内存开销
11:01 - 采用变长编码实现多列存储和数据压缩,优化读取性能
三、一种基于UTF8编码的整型编码方案,可以将多个整数合并成一个二进制串来存储,从而利用整型编码的优化,减少存储成本和提高读取性能。
12:00 - 使用特殊符号连接数字,但无法利用ZIPLIST对整形的优化
12:30 - 用UTF8编码将整数编码成二进制串,合并拼接后再存储,读取时进行解码
16:33 - 使用UTF8编码可以成倍减少数据量,提升读取性能,预计可节约500万每年的存储成本
四、一个技术服务的存储架构,包括短TTL和长TTL缓存、本地缓存、预聚合和批量写入的优化等,以提高可用性和降低故障感知。
18:02 - 短TTL可以保证本地缓存和存储层的一致性
20:26 - 优化写请求,预聚合和批量写入,以提高吞吐量
22:00 - 使用MQ事件驱动模式实现最终一致性,保证数据的读写一致性
五、一个技术服务,包括基于磁盘的持久化缓存和布隆过滤器的高性能缓存,以及使用CDC组件和GMQ保证缓存的一致性。
24:01 - 设计一个服务端,使用磁盘持久化缓存,不会丢失消息
25:10 - 使用布隆过滤器作为低成本高性能的缓存,避免大key问题
28:33 - 使用CDC组件和GMQ保证缓存的一致性,支持多租户技术服务
--本内容由AI视频小助理生成,关注解锁AI助理,由@想佛了 召唤发送你爷爷关注的CYT:
up JimKV网上的资料比较少,是否可以使用etcd平替呢[思考]
【回复】可以看一下基于rocksdb改造的分布式kv数据库比如阿里云提供的Tair,效力是一样的Belief_7:
大佬,这个判断点赞的布隆过滤器是内容纬度存储的用户点赞吗?