回复: 2
收起左侧

2024年Google 设计和题解

本楼:   👍  3
100%
0%
0   👎
全局:   352
99%
1%
2

2024(10-12月) 码农类General 硕士 全职@Google - 内推 - Onsite  | 😃 Positive 😐 AverageOther | 在职跳槽

去年总结了亚麻和灭他的设计题,这次把地里看到的谷歌设计题整理一下。


2023年 亚麻半年设计和BQ
https://www.1point3acres.com/bbs/thread-1016786-1-1.html


2023年 灭他系统设计半年总结
https://www.1point3acres.com/bbs/thread-1016549-1-1.html


因为分数原因,有足够分数的同学可以贴一下题目。我会根据经验进行解读。


要求设计一个分布式缓存
https://www.1point3acres.com/bbs/thread-1096436-1-1.html


在领英找了一个比较详细的 例子,然后用Chat GPT Highlight,中文是我的解读。 https://www.infoq.com/articles/netflix-global-cache/
Building a Global Caching System at Netflix: A Deep Dive into Global Replication

Key Takeaways
        •        Global Replication Strategy: Netflix replicates data across four regions, reducing latency and enhancing reliability during regional outages.
        •        EVCache Caching: EVCache, a distributed key-value store on SSDs, enables linear scalability and resilience, managing huge data volumes.
        •        Infrastructure Scale: EVCache includes 200 clusters and 22,000 servers, handling 30 million global replication events, 400 million operations per second, and storing around 2 trillion items totaling 14.3 petabytes.
        •        Client-Initiated Replication: The topology-aware EVCache client manages data routing, reducing server load and supporting flexible replication.
        •        Efficiency Improvements: Batch compression and a switch to Eureka DNS for service discovery have reduced network costs, enhancing performance.


缓存服务器常见的有Memcached和Redis,Redis更轻量级,适用小数据,比如Json/String。Memcached更适用大文件,比如短视频。这应该是Netflix选择Memcached原因,因为有些视频,比如短视频影片预告需要进行缓存。
(1)replicates在大数据存储比较普遍,主要是用于灾难备份。比如世贸中心被袭击了,整个数据中心没了,要访问哪里?另外本地的访问可以链到本地的Region,速度更快。比如硅谷访问东岸Region(East 1),纽约访问东岸Region(West 2)。(2)EVCache Key-Value指的是类似Hash MAP这种数据结构,可以实现O(1)的访问速度,在各种No-SQL普遍运用,如Cassandra,Redis。(3)4亿的访问量,2万2的服务器,每个服务器平均18 requests/milisecond,这个量还是蛮大的。没有测过Memcached,做过的同学可以提供一下参数。(4)Topology-Aware Client,记录物理位置(比如那个数据中心,那个机架?)和虚拟位置,还有通过Get Health来获得服务器的实时状态。(5)Eureka DNS用来取代Load Balance,减少Cost。文中没有给出设计逻辑。普通的NLB问题是不管访问速度,比如NGINX,只是随机分发Request。如果某个服务器(群)Response 很慢,它是不管的。估计Eureka带进了解决方案。https://github.com/bfg/eureka-dns-server


Introduction
In the global entertainment landscape, Netflix focuses on maintaining data availability across regions to offer a smooth user experience. Distributed caching through EVCache is key to achieving high availability and performance.


这个图,我的理解是US West 2是故障(Fail over)Region,原来数据是有的,因为某些Server Down了之类的原因,数据没了。Client应该是在West 2,Request被转到US EAST 1,然后把数据从East 1 的 Reader,写到 West 2的Writer,以便让访问更快。数据应该在EVCache Servers,Reader/Writer应该是logical Module。


EVCache: Backbone of Netflix’s Caching
EVCache (Ephemeral Volatile Cache) is Netflix’s customized Memcached-based, SSD-backed solution providing scalability and resilience. EVCache spans 200 clusters across four regions, supporting diverse applications with over 22,000 servers.


Key Features of EVCache
        •        Global Replication: Ensures cross-region data access.
        •        Topology-Aware Client: Optimizes data storage and retrieval.
        •        Resilience: Withstands failures across vari
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
ents
        •        Batch Compression: Reduced network bandwidth by 35%.
        •        Removing Load Balancers: Shifted from NLBs to Eureka DNS for routing, reducing network costs by 50%.


跨Region的Request,用了Batch Compression,毕竟从东岸到西岸比较远。

Conclusion
Netflix’s global caching solution, driven by EVCache and client-initiated replication, provides a scalable, low-latency infrastructure. Ongoing improvements in replication efficiency, data availability, and cost management ensure Netflix’s infrastructure supports seamless user experiences worldwide.


总结一下,EVCache部署在AWS的环境,Instance/Network都很贵。文中给出了一些Solution,来减少Cost。比如Eureka DNS。 欢迎大家给出不同的解读,有问题可以留言。

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 2大米 +16 收起 理由
清道神君 + 15 欢迎分享你知道的情况,会给更多大米奖励!
shtseng + 1 给你点个赞!

查看全部评分


上一篇:Stripe条纹intern HM面
下一篇:鲁布里克 VO
leehome 2024-11-11 17:02:10 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   3
100%
0%
0
太感谢了!好好学习一下先
回复

使用道具 举报

 楼主| yangzhit 2024-11-15 08:01:32 来自APP | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   352
99%
1%
2
这个设计源自于Machine Learning System Design Interview(Ali Aminian & Alex Xu)里面的Harmful Content Detection. 没有书的,可以参考油管的视频。 两者比较类似,没有找到剽窃比较好的系统设计详解。https://www.youtube.com/watch?v=sPz4-PyAE_g



App指Client,比如手机APP,桌面应用,网页。Users could upload paper and use Plagiarism Detection Service to identify possible Plagiarism.  Features 比如 Text/Papers, Images, 我不太确定会不会包括Videos. Scope应该问面试官。
论文这种,Model可以使用GPT或者LLM或者Bert。理论不是我的强项,可以参考Amazon最新的论文https://assets.amazon.science/29 ... language-models.pdf 想手动去测试的可以看看https://huggingface.co/docs/transformers/index
检测的结果会有两种情况,1,不太确定不是剽窃,人工确定。比如说,一张DNA的图,ML可能只能找出类似的,是否是抄袭要人工判断。2, 确定是抄袭。比如贺锦丽的论文直接抄几段,但是没有引用。
《图再传》
接下来,我们讨论一下Scalability的问题。比如,Corpus有100M Papers。下面借用 ElasticSearch的Design。我们可以建立学科分类,比如物理/化学/天文/生物,然后做Shard。这样可以降两个数量级。APP那边用Keyword来Classify。当然也可用SVM之类的算法来分类。
https://www.hellointerview.com/l ... dives/elasticsearch
《图再传》
Elastic基于Lucene,而Lucene是最早的Open Source Search Engine,早于谷歌。所以最适合存Text Corpus。Image可以用AWS S3 或者 Azure Blob。
《图再传》
这个Sequence Diagram比较类似我们的剽窃检测服务,细节可以去看链接原文。大概步骤就是先把文Ingest(Node)到不同的Data Node。然后从Coordinating Node去读。

补充内容 (2024-11-15 08:02 +08:00):



补充内容 (2024-11-15 08:03 +08:00):

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
扫码关注一亩三分地求职移民公众号
更多干货内容等你发现
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表