由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 咨询一个system design 小细节问题
相关主题
G家店面design题目写一段如何准备large-scale system design的面试吧
问一道面试题,现在好像很流行这种题google电面面经
在线紧急求助一道system design面试题,面经内附我的System Design总结
面试: Take home project请教前辈fb的infra相关的面试和普通面试有什么区别。
非死不可的onsite 系统设计没面好 影响大么面经
universal hashing的问题RP Amazon Third phone
再来继续比较,芒果和redis各什么时候用比较好?问个近期亚麻高频题目
我也来说说我Amazon的onsite经历吧贡献一下:本版上搜集的 Google 面试题
相关话题的讨论汇总
话题: url话题: server话题: long话题: short话题: global
进入JobHunting版参与讨论
1 (共1页)
H**********5
发帖数: 2012
1
tiny URL 在多machine/Server环境下,如果多个用户同时insert the same URL。如何
处理?谢谢。
另外想确认一下:以下我这么做是否正确可行?
单机情况下是一个global_unique ID自增,多机情况下,共享global_unique ID将不再
使用, How could multiple machines share a global auto_increment_id?。将系统
所有的server做
consistant hash.
每来一个long url,hash(long url)%62,放到合适的某个server中,在那个server产生
short url.
每来一个short url,拿到第一个byte,根据第一个byte获得某个server,在那个server上
获得Long url返回给用户。
m********l
发帖数: 791
2
小弟不才,试着回答...
tiny URL 在多machine/Server环境下,如果多个用户同时insert the same URL。如何
处理?谢谢。
不需要特殊处理,来一个long_url就给一个short_url去对应。一个长url对应多个短
url不会对系统和用户造成什么影响
比如两个用户同时insert www.mitbbs.com,生成的url如下:
abcdef -> www.mitbbs.com
123456 -> www.mitbbs.com
两个短url都指向www.mitbbs.com,无所谓
第二个问题:
1.感觉用不用自增ID和做不做consistent hashing没有关系,你用了自增ID也可以用
consistent hashing
2.你的做法可行,无非就是把数据存两份,一个是short2long的mapping,一个是
long2short的mapping。为什么是两份?因为你的mapping方式不能保证long_url和
short_url都在一台server上。
还有另外两个办法:
1) 只存short2long的mapping,来一个long就生成一个short,不管这个long是否已经
存在了。因为tinyurl这个系统存储不会是瓶颈。这跟我第一个问题的回答有关。
2) 只存一份数据。把sharding key做成"K"jbdc6u的形式, 其中"K"是hash(long_url)%
62的62进制数,后6位是short_url。这样你的sharding key就既包含了long_url的信息
,也包含了short_url的信息。这样不管你通过long_url还是short_url都可以在同一台
server上找到数据。
H**********5
发帖数: 2012
3
many thanks ,
有个地方我没表述清楚,修正为:多机情况下,为了避免多机共享global_unique ID可
能发生冲突。所以放弃了global_unique ID
consistent hashing

【在 m********l 的大作中提到】
: 小弟不才,试着回答...
: tiny URL 在多machine/Server环境下,如果多个用户同时insert the same URL。如何
: 处理?谢谢。
: 不需要特殊处理,来一个long_url就给一个short_url去对应。一个长url对应多个短
: url不会对系统和用户造成什么影响
: 比如两个用户同时insert www.mitbbs.com,生成的url如下:
: abcdef -> www.mitbbs.com
: 123456 -> www.mitbbs.com
: 两个短url都指向www.mitbbs.com,无所谓
: 第二个问题:

m********l
发帖数: 791
4
多机全局自增的ID是个难题,但是很多系统不可避免要做。比如instagram的photo要ID
,twitter的tweets要ID等等。
首先ID不能重复,其次有些系统要求ID还最好带有timestamp的信息,这样不需要其他
信息,单靠ID就可以sort something by time
建议你看看这篇文章,里面提到了Instagram, Twitter, Flickr如何做自增ID
https://engineering.instagram.com/sharding-ids-at-instagram-1cf5a71e5a5c

【在 H**********5 的大作中提到】
: many thanks ,
: 有个地方我没表述清楚,修正为:多机情况下,为了避免多机共享global_unique ID可
: 能发生冲突。所以放弃了global_unique ID
: consistent hashing

m******e
发帖数: 82
5
假设一个数据库,多个服务器:
数据库记录最大ID,每个服务器以一定步长增长ID,如果用完了就将数据库最大ID加上
步长。优点服务可以水平扩展,缺点服务宕机会产生空洞。
1 (共1页)
进入JobHunting版参与讨论
相关主题
贡献一下:本版上搜集的 Google 面试题非死不可的onsite 系统设计没面好 影响大么
贴道题目universal hashing的问题
面试题,大规模url求重复 讨论再来继续比较,芒果和redis各什么时候用比较好?
求教关于URL的hash function我也来说说我Amazon的onsite经历吧
G家店面design题目写一段如何准备large-scale system design的面试吧
问一道面试题,现在好像很流行这种题google电面面经
在线紧急求助一道system design面试题,面经内附我的System Design总结
面试: Take home project请教前辈fb的infra相关的面试和普通面试有什么区别。
相关话题的讨论汇总
话题: url话题: server话题: long话题: short话题: global