您当前的位置:首页 > 电脑百科 > 电脑知识

Google Drive 和 Dropbox 系统设计概述

时间:2023-08-30 13:58:06  来源:微信公众号  作者:小技术君

在现代信息世界中,我们有许多照片、文件、视频等需要存储。我相信几乎所有人都尝试过使用 google Drive 或 Dropbox。

功能需求

1.用户可以从任何设备上传和下载文件。2.用户可以通过替换相同的文件名来更新文件。3.用户可以通过电子邮件链接将文件和文件夹分享给其他人。4.用户可以随时从任何设备删除文件和文件夹。5.删除的文件和文件夹将在回收站中存储 15 天。6.系统应该支持离线编辑。用户可以在离线状态下添加/修改文件和文件夹名称,一旦网络恢复,更改将与远程服务器同步。7.用户可以进行文件版本管理,以恢复文件的先前版本。(系统可以支持多次更改的同一文件的多个版本,带宽和所需空间将显著增加)8.系统可以支持跨设备的文件和文件夹同步。9.系统允许每个用户免费上传高达 10 GB 的文件。10.系统将为不同存储大小提供不同的市场计划。

非功能需求

1.系统必须高度可靠。任何上传的文件都不得丢失。用户可以恢复其重要文件。2.系统可以支持每周 7 天 24 小时。3.用户可以随时升级其计划,并立即使用系统。4.用户必须能够轻松地将其系统与其他应用程序集成。例如,系统支持通过其他应用程序共享文档。5.系统可以提供延迟或并发利用(这意味着以高效的方法从云中反复上传和下载完整文件)。

存储估算

1.用户数量 = 5 亿2.活跃用户数量 = 1 亿3.用户平均存储的文件数量 = 3004.每个文件的平均大小 = 200 KB5.总文件数量 = 5 亿 * 300 = 1500 亿6.需要的总存储空间 = 1500 亿 * 200 KB = 30 PB

系统组件

1.客户端(安装在您的桌面或移动应用程序中,用于访问与存储相关的应用程序)•监视用户机器上的工作区文件夹,并通过与远程服务器同步文件来维护一致性。因此,它必须由 4 个基本组件组成,即监视器、分块器、索引器和内部数据库。•监视器将监视本地工作区文件夹,并通知索引器用户执行的任何操作(添加、删除、替换和更新文件或文件夹),并追踪来自其他设备的任何更改,这些更改由同步服务广播。•分块器将文件分成更小的块,并从这些块中重建文件,以便完整的文件可以在没有任何丢失块的情况下传输。分块算法将检测用户修改的文件部分,并仅将已修改的部分传输到云存储,从而节省带宽和同步时间。•索引器将处理来自监视器的事件,并更新内部元数据数据库。一旦成功从云存储下载或上传了块,索引器将与远程同步服务通信,广播更改给其他客户端,并更新远程元数据数据库。•内部元数据数据库将跟踪所有文件、块、任何已更新的版本以及其在文件系统中的位置。•客户端应用程序将通过请求上传、下载和编辑 API 与后端云存储服务器进行通信。客户端还与远程同步服务进行交互,以处理任何文件元数据更新,例如文件名、大小、修改日期等。2.元数据数据库•保持有关文件、块、用户、设备、工作区和存储位置的版本和元数据信息。•元数据数据库可以是关系数据库,如 MySQL,也可以是 NoSQL 数据库服务,如 DynamoDB。•同步服务在多个用户同时处理同一文件时,提供文件的一致视图。•由于 NoSQL 数据存储不支持 ACID 属性,编程代码会将 ACID 属性与 NoSQL 数据库结合在一起,用于同步服务的逻辑。3.同步服务•更新客户端创建的文件或文件夹。•将客户端的本地数据库与存储在远程元数据数据库中的信息同步。•使用 HTTP 长轮询从云存储获取响应,或在脱机一段时间后将文件和更新发送到云存储,一旦重新脱机,将向所有设备或用户发送通知。•同步服务还尝试在客户端和云存储之间传输更少的数据,以实现更快的响应时间,因此使用差异化算法来减少需要同步的数据量。不再将整个文件从客户端传输到服务器,而是传输两个版本文件之间的差异。仅传输已更改的部分(块)。这减少了终端用户的带宽消耗和

云数据存储。服务器和客户端将计算哈希值,以查看是否更新修改的块。该过程称为数据去重。

1.消息队列服务•这是一个处理读写请求数量的消息中间件。•一个可扩展的消息队列服务,支持客户端和同步服务之间的异步通信。•可用性和可靠性必须被设计得最适合消息队列服务。•请求队列:此队列将在所有客户端之间共享。当客户端执行任何更新和请求时,此请求将发送到消息队列服务,然后由同步服务进一步处理,最后更新元数据数据库。•响应队列:每个客户端都有一个相关的响应队列,因为每个客户端都有一个单独的响应队列。•一旦文件更新,同步服务将通知所有响应队列有关更改的信息,然后响应队列将通知每个客户端进行的更改。2.云/块存储•存储文件的块•使用 Amazon S3 服务•客户端将使用 API 服务与云存储进行交互

图片

文件处理工作流程:客户端 A 将块上传到云存储,然后更新元数据并提交更改,然后获得确认。服务器将通知客户端 B 和 C 有关更改的信息。客户端 B 和 C 接收元数据更改并下载更新的块。•数据去重:消除数据的重复副本。这还可以减少相同数据传输(发送的字节数)以提高传输速率。对于每个传入的块,都会打上一个哈希标签,然后计算并将该哈希与现有块的所有其他哈希进行比较。 a) 后处理去重:新块存储在存储设备上,并且将分析块以了解它们是否是重复的。优点是,客户端不需要等待哈希计算或查找完成,然后再存储数据,这会提高存储性能。缺点是短时间内会存储不必要的重复数据,并且会传输和消耗带宽。 b) 内联去重:去重哈希计算可以实时执行,以便系统可以识别重复块,然后仅存储不存在的块。优点是优化网络和存储使用。缺点是消耗用户的时间并降低存储性能。

1.缓存•在 Google Drive / Dropbox 系统设计中有两种类型的缓存•用于块存储的缓存•使用像 Memcache 这样的现成解决方案的缓存,可以存储带有其相应 ID/哈希的整个块和块服务器•可以采用最近最少使用(LRU)缓存策略。2.负载均衡器(LB)•在客户端和块服务器之间•在客户端和元数据服务器之间•在后端服务器之间平均分配传入的请求3.安全性/权限和文件共享•上传/下载的文件将与远程服务器同步•不允许对单个文件进行多个操作(并发问题)•如果在某个过程中出现了某些连接问题,客户端必须重新上传或下载整个文件,或者恢复下载或上传块。

系统 API

1.Upload(string uploadToken, fileInfo file, userInfo user)2.Edit(string authToken, fileInfo file, userInfo user)3.Delete(string authToken, fileInfo file, userInfo user)4.Download(string authToken, fileInfo file, userInfo user)5.GenerateToken (string userName, string password)

高级系统架构

详细系统架构
图片



Tags:Google   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
机械设备B2B工厂外贸网站如何做Google谷歌SEO优化关键字排名?
在今天的全球化市场中,机械设备行业正面临着激烈的竞争。要在这一领域脱颖而出,拥有一个优化良好的B2B外贸网站至关重要。通过精准的谷歌SEO关键字排名,您的网站可以吸引更多海...【详细内容】
2024-04-08  Search: Google  点击:(5)  评论:(0)  加入收藏
Google搜索引擎索引的网页数量有多少?谷歌官方提供数据进行参考
Google搜索引擎索引的网页数量有多少?二十世纪九十年代,网页的索引数量成了一个各大搜索引擎相互对比的指标。小编记得2000年谷歌搜索引擎的首页搜索框上方,还标记着谷歌索引的...【详细内容】
2024-03-27  Search: Google  点击:(12)  评论:(0)  加入收藏
从Google Gemini到OpenAI Q*:生成式AI研究领域全面综述
新智元报道来源:专知【新智元导读】这项综述性研究报告批判性地分析了生成式AI的发展现状和发展方向,并探究了谷歌Gemini和备受期待的OpenAI Q*等创新成果将如何改变多个领域...【详细内容】
2024-01-09  Search: Google  点击:(164)  评论:(0)  加入收藏
Google Play谷歌开发者公司邓白氏编码办理流程
Google Play是谷歌公司推出的一款应用程序市场,为开发者提供了一个平台,让他们可以将自己的应用程序发布到全球用户手中。在Google Play上发布应用程序需要邓白氏编码(邓白氏编...【详细内容】
2023-12-20  Search: Google  点击:(69)  评论:(0)  加入收藏
Google收录的查询方法和收录
Google收录的查询方法不少。但,最简便的谷歌收录查询工具就是Google搜索本身,只需要输入一个查询指令,即可查看到Google对于网站的详细收录情况。site:example.com (example.co...【详细内容】
2023-12-20  Search: Google  点击:(114)  评论:(0)  加入收藏
Google发布最强文生图大模型Imagen 2
DoNews12月15日消息,近日,Google 推出其最先进的文生图大模型 Imagen 2,可提供与用户提示词紧密结合且一致的高质量、逼真的输出图像。Google 的增强模型 Imagen 2 是利用 Goog...【详细内容】
2023-12-15  Search: Google  点击:(53)  评论:(0)  加入收藏
谷歌站长工具(Google Search Console)最新使用教程
谷歌站长工具(Google Search Console)是一款网站效果监测工具,由谷歌官方免费提供,帮助用户查看和维护自己网站在Google搜索里的表现。通过这款站长工具,你可以详细了解Google是...【详细内容】
2023-12-11  Search: Google  点击:(157)  评论:(0)  加入收藏
Google SRE 二十年的经验教训
前言二十年可以发生很多事情,尤其是当你忙于发展的时候。二十年前,谷歌有一对小型数据中心,每个中心有几千台服务器,通过一对 2.4G 网络链路环形连接。我们使用 Python 脚本(如 "...【详细内容】
2023-12-11  Search: Google  点击:(43)  评论:(0)  加入收藏
谷歌站长工具Google Search Console:最新使用教程与功能详解
谷歌站长工具(Google Search Console)是一款网站效果监测工具,由谷歌官方免费提供,帮助用户查看和维护自己网站在Google搜索里的表现。通过这款站长工具,你可以详细了解Google是...【详细内容】
2023-12-11  Search: Google  点击:(60)  评论:(0)  加入收藏
Google Bard现在可以帮你总结YouTube视频内容了
凭借新的扩展,谷歌Bard已经能够理解视频内容并响应用户的查询请求。换言之,用户现在可以通过这款AI聊天机器人,快速了解自己关注的YouTube视频大致表达了哪些内容。谷歌在11月2...【详细内容】
2023-11-29  Search: Google  点击:(56)  评论:(0)  加入收藏
▌简易百科推荐
云计算和边缘计算
云计算和边缘计算是两种不同的计算模型,它们各有特点,适用于不同的场景和需求。云计算是一种基于互联网的计算模型,它将计算资源、存储资源和应用服务集中在云端,用户可以通过网...【详细内容】
2024-03-01    简易百科  Tags:云计算   点击:(28)  评论:(0)  加入收藏
云计算与边缘计算:有何不同?
公共云计算平台可以帮助企业充分利用全球服务器来增强其私有数据中心。这使得基础设施能够扩展到任何位置,并有助于计算资源的灵活扩展。混合公共-私有云为企业计算应用程序...【详细内容】
2024-02-28  通信产品推荐官    Tags:云计算   点击:(21)  评论:(0)  加入收藏
量子计算机是什么?跟现在的计算机相比优缺点是什么?
量子计算机是什么?跟现在的计算机相比优缺点是什么? 随着科技的不断发展,计算机技术也取得了巨大的进步。然而,随着摩尔定律的趋近于极限,传统的计算机技术面临着许多挑战。这时...【详细内容】
2024-02-23    简易百科  Tags:量子计算机   点击:(36)  评论:(0)  加入收藏
量子计算机:未来电脑的革命性技术
在科技的广袤天空中,量子计算机如一颗璀璨的新星,以其独特的光芒预示着未来电脑的革命性变革。这项令人瞩目的技术不仅代表着计算机科学的最前沿,更承载着人类对于速度和效率的...【详细内容】
2024-02-23  小浩长得帅    Tags:量子计算机   点击:(40)  评论:(0)  加入收藏
为什么计算机需要十六进制?
今天简单聊聊十六进制。实际上计算机本身是不需要十六进制的,计算机只需要二进制,需要十六进制的是人。每个十六进制中的数字代表4个比特,你可以非常直观的从十六进制中知道对...【详细内容】
2024-02-22  码农的荒岛求生  微信公众号  Tags:计算机   点击:(48)  评论:(0)  加入收藏
多模态RAG应用:跨越文本与图片的智能交互
近年来,多模态RAG(Retrieval-AugmentedGeneration)应用的兴起引发了人们对人工智能技术发展方向的广泛关注。传统的RAG应用主要基于文本的输入和输出,而随着GPT4-V的发布,多模态R...【详细内容】
2024-01-29  况成放    Tags:多模态RAG   点击:(66)  评论:(0)  加入收藏
量子计算机真相揭秘,一篇文章颠覆你的认知
你看过《三体》吗?在刘慈欣笔下,三体人用一种叫“智子”的黑科技干扰了人类的实验,从而锁死了人类的技术。而在现实世界,一把无形的“锁”其实也悄然逼近了我们,它就是芯片。随着...【详细内容】
2024-01-23  天才简史  今日头条  Tags:量子计算机   点击:(25)  评论:(0)  加入收藏
生成对抗网络(GAN)在计算机视觉领域中的应用
生成对抗网络(GAN)是一种在计算机视觉领域中广泛应用的深度学习模型。它由一个生成器网络和一个判别器网络组成,通过对抗训练的方式实现图像的生成和判别。GAN在计算机视觉中的...【详细内容】
2024-01-15  数码小风向    Tags:生成对抗网络   点击:(72)  评论:(0)  加入收藏
如何免费生成logo?
Logo设计对于一个品牌来说非常重要,它是品牌的身份标识,可以帮助人们迅速识别和记住一个品牌。同时还可以帮助建立品牌认知度,传达出品牌的专业形象。无论是大公司还是刚起步的...【详细内容】
2024-01-05  阳仔问文    Tags:logo   点击:(87)  评论:(0)  加入收藏
自然语言处理中的句法分析方法研究与实现
自然语言处理(NLP)中的句法分析方法是NLP领域的重要研究内容之一,它旨在通过对句子结构的分析和理解,揭示句子中单词之间的语法关系,为后续的语义理解和信息提取提供基础支撑。本...【详细内容】
2024-01-04  毛晓峰    Tags:自然语言处理   点击:(55)  评论:(0)  加入收藏
站内最新
站内热门
站内头条