首页 > 其他分享 >网盘设计

网盘设计

时间:2023-06-21 14:35:15浏览次数:18  
标签:文件 网盘 分区 下载 设计 上传 block

目录

前言

文件图片等诸多文件,无U盘无法copy到其他地方使用,期望实现一个网盘,实现文件的上传、下载、共享

产品命名:DBox

一、需求分析

功能分析

性能分析

[每个需求的目标如何制定的,每个活跃用户每天上传下载个数是如何确认的,这里其实有些存疑如何调研的]

目标支持10亿用户注册使用,每个用户免费1TB,预计日活用户2亿,每个用户每日上传、下载4个文件

  1. 总存储量

    最大免费容量 = 10亿*1TB

    考虑到很多人不会完全使用掉这个空间,且设计优化为相同文件只会存一份,因此大约需要10%的容量

  2. 吞吐量

    1. QPS

      2亿 * 4 / 24 * 60 * 60 ≈ 1万

      高峰2倍则2万

    2. TPS

      写入同QPS

  3. 网络带宽

    假设上传文件平均大小1M,所以需要带宽是10GB/s,按照高峰期评估则20GB/s

非功能需求

  1. 高可靠。TP6个9。100万个文件允许一个文件损坏
  2. 高可用。TP4个9。
  3. 数据安全性。文件访问的安全性需要保证
  4. 避免重复上传。若不同人传的文件相同,则无需重复上传,直接指向即可,实现“秒传”
  5. 可断点上传与下载。

二、概要设计

关注点分离(元数据与文件内容的分离存储与管理)

整体架构图

查询调用时序图

下载调用时序图

三、详细设计

元数据库设计

限速设计

根据元数据中用户是否是会员,限制并发下载的block服务器数、block数、和下载block的线程数

秒传设计

user表:按照userId分区

logic_file表:按照userId分区

physics_file表:按照fieldId分区;同时建立MD5分区映射fieldId

block表:按照field分区


标签:文件,网盘,分区,下载,设计,上传,block
From: https://www.cnblogs.com/ningxinjie/p/17496123.html

相关文章

  • PG-DBA培训04:PostgreSQL数据类型与数据库设计规范
    一、风哥PG-DBA培训04:PostgreSQL数据类型与数据库设计规范本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据类型与数据库设计规范,学完本课程可以掌握PostgreSQLSQL语句基础讲解,PostgreSQLSQL语言基础知识,安......
  • PG-DBA培训06:PostgreSQL数据定义与数据对象开发设计
    一、风哥PG-DBA培训06:PostgreSQL数据定义与数据对象开发设计本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据定义与数据对象开发设计,学完本课程可以掌握索引类型,索引,约束,视图,序列,存储过程,触发器,游标,函数的创......
  • PG-DBA培训04:PostgreSQL数据类型与数据库设计规范
    一、风哥PG-DBA培训04:PostgreSQL数据类型与数据库设计规范本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据类型与数据库设计规范,学完本课程可以掌握PostgreSQLSQL语句基础讲解,PostgreSQLSQL语言基础知识,安装......
  • 稳,从数据库连接池 testOnBorrow 看架构设计 | 京东云技术团队
    本文从CommonsDBCPtestOnBorrow的作用机制着手,管中窥豹,从一点去分析数据库连接池获取的过程以及架构分层设计。以下内容会按照每层的作用,贯穿分析整个调用流程。1️⃣框架层commons-poolTheindicationofwhetherobjectswillbe validatedbeforebeingborrowed fromthe......
  • 基于安卓游戏商店app设计与实现
    随着社会发展,网络也不断的高速发展,网络网页新闻已经成为全国甚至全球人民获取新闻的主要途径之一,传统的新闻门户虽然拥有海量信息,却只是扮演信息集合的角色。用户只能被动式地浏览网站提供的信息,查找需要的内容。如何为每个用户提供快速、准确的信息,以满足个人的实际需求,已成为业界......
  • 《C程序设计伴侣》诞生记
    引自图灵教育陈冰老师的【编辑的话】我第一次看谭老师的《C程序设计》,是20年前,那时我17岁,大学一年级。当时感觉这本书很神奇,对编程充满了好奇。同时也感觉这本书有些难,有些地方,比如指针,虽然看过书,也有老师讲过了,但依然感觉似懂非懂。还有些知识,书中只讲了怎么做,但没有讲为什么要这......
  • 手把手教你使用Flex 3——《Flex 3程序设计》
     手把手教你使用Flex3——《Flex3 1954年Fortran语言的发明,使软件业跨入了高级语言时代;1972年Smalltalk的发布,标志着“面向对象”语言时代的到来;2004年Adobe公司推出的Flex框架,预示着富因特网应用程序(RIA)浓墨重彩地登上了历史舞台,从此网络应用程序的表示层只能......
  • 《Flex 3程序设计》——Adobe技术专家力作
    媒体评论“本书详细介绍了用Flex3开发应用程序时用到的相关知识……强烈推荐想快速入门的Flex初学者使用!”——PBader,PlumtreeGroup和Flexpertschicago.com的高级业务开发经理、芝加哥大学的Flex程序员“本书是开启Flex大门的钥匙。”——RichRodecker,F1Flash......
  • 世界知名XML专家力作 ——《重构HTML:改善Web应用的设计》
    世界知名XML——《重构HTML:改善Web媒体评论Elliotte的著作在我的书架上始终占据一席之地。……他通过本书把重构的益处带入了HTML世界。                                   ——MartinFowler ......
  • Martin Fowler谈《重构HTML:改善Web应用的设计》
    MartinFowler谈《重构HTML:改善Web仅仅十余年,Web就从一门大有希望的技术演变成了世界基础设施的重要组成部分。在这个绚丽迷人的年代中,涌现了许多有用的资源。一如往常,我们在追求最佳实践的过程中不断地学习技术,而技术本身的成熟也促使我们更好地使用它。无论多么复杂的Web应......