设计MP3搜索引擎

举报
格图洛书 发表于 2021/12/30 00:31:03 2021/12/30
【摘要】 假设一个 mp3 搜索引擎收录了 2^24 首歌曲,并记录了可收听这些歌曲的 2^30 条 URL,但每首歌的 URL 不超过 2^10 个。系统会定期检查这些 URL,如果一个 URL 不可用则不出现在搜索结果中。现在歌曲名和 URL 分别通过整型的 SONG_ID 和 URL_ID 唯一确定。对该系统有如下需求: 1) 通过 SO...

1) 通过 SONG_ID 搜索一首歌的 URL_ID,给出 URL_ID 计数和列表

2) 给定一个 SONG_ID,为其添加一个新的URL_ID

3) 添加一个新的 SONG_ID

4) 给定一个 URL_ID,将其置为不可用

 

限制条件:内存占用不超过 1G,单个文件大小不超过 2G,一个目录下的文件数不超过 128 个。

分析:

SONG_ID和URL_ID都从0开始。

一首歌曲的最大URL列表的大小:2^10 * 4 = 2^12 Byte = 4 KB

一个文件最多容纳歌曲数目:2G / 4KB = 2*2^30 / 2^12 = 2^19

最少文件数目:2^24 / 2^19 = 2^5 = 32

解答:1、文件系统

文件以二进制格式存储数据,以FILE_ID唯一确定,从0开始。

一个文件容纳歌曲数目为SONG_COUNT = 2^18,需要的文件数目为FILE_COUNT = 64。

文件存储的信息分为两部分:在文件头部存储歌曲信息:歌曲ID,能收听该歌曲的URL数目,URL列表在文件中的偏移量,即:SONG_ID,URL_COUNT,URL_OFFSET。一首歌曲占用SONG_INFO

文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。

原文链接:wenyusuran.blog.csdn.net/article/details/40584303

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。