由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问道高频设计题
相关主题
用一个C++面试题challenge一下大家求教一道经典面题的解法
什么时候应该用mongodb?[bssd]另类面经
zhaoce大牛说说HornetQ vs kafka怎么样?贡献两道google面试题
为什么会有很多人认识年纪大了刷不过年轻人?Level order traversal只让用一个Queue怎么做?
[google面试题] API流量控制给一个股票的time series,如何求past N days high?
问一个system design的题,看看大家怎么想的。贴点面试题
G面试题求解请教一个C++试题!
为啥cell reads是44啊?哪位给解释下?多谢了贴点面试题, ms和google的
相关话题的讨论汇总
话题: br话题: redis话题: map话题: server话题: queue
进入JobHunting版参与讨论
1 (共1页)
u****p
发帖数: 526
1
面经看到的,问已经有个sharing service 可以share 任何link。 怎么设计另一个
service 用来统计每五分钟 一小时 和一天的 每个不同的link share的次数 不用特别
精确。
这种要怎么考虑?谁给说说
d*******n
发帖数: 43
2
哪家的面经?
u****p
发帖数: 526
3
L家的高频,G有时也会问到
s*****l
发帖数: 7106
4
map reduce?
H**********5
发帖数: 2012
5
这不就是top k 异常么?解法面筋里都有
p*********g
发帖数: 2998
6
step 1: fixed time period or dynamic time period,
比如5分钟的,fixed
0:05, 0:10, 0:15.
那么你需要一个map<0:05: times> 每次进来, 拿到系统时间, 找到对应的map,然后放
入对应的map.entry
同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次数,那
你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间-queue
.peek())>5, 就pop出去。 然后queue.size(), 就是当前5分钟的次数,如果你需要全
部的, 你要用map<每次进来的时间,times> 来记录, log大小取决于,新访问的次数。
y*y
发帖数: 57
7
解法面筋是什么

【在 H**********5 的大作中提到】
: 这不就是top k 异常么?解法面筋里都有
H**********5
发帖数: 2012
8
地里搜索 system design 高频题


: 解法面筋是什么



【在 y*y 的大作中提到】
: 解法面筋是什么
u****p
发帖数: 526
9
没搜到答案啊,能不能给具体说说?谢谢啊

【在 H**********5 的大作中提到】
: 地里搜索 system design 高频题
:
:
: 解法面筋是什么
:

u****p
发帖数: 526
10
多谢啊!对了这个是不是和 lc 里的Logger Rate Limiter 原理是一样的?
另外这是个global map吗? 如果这个share server有很多replica,这种情况怎么处理
比较好?

queue
数。

【在 p*********g 的大作中提到】
: step 1: fixed time period or dynamic time period,
: 比如5分钟的,fixed
: 0:05, 0:10, 0:15.
: 那么你需要一个map<0:05: times> 每次进来, 拿到系统时间, 找到对应的map,然后放
: 入对应的map.entry
: 同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
: 如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次数,那
: 你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间-queue
: .peek())>5, 就pop出去。 然后queue.size(), 就是当前5分钟的次数,如果你需要全
: 部的, 你要用map<每次进来的时间,times> 来记录, log大小取决于,新访问的次数。

相关主题
问一个system design的题,看看大家怎么想的。求教一道经典面题的解法
G面试题求解[bssd]另类面经
为啥cell reads是44啊?哪位给解释下?多谢了贡献两道google面试题
进入JobHunting版参与讨论
r*****s
发帖数: 1815
11
单机还给搞什么map queue heap的一律0分,而且面试官会觉得很尴尬


: step 1: fixed time period or dynamic time period,

: 比如5分钟的,fixed

: 0:05, 0:10, 0:15.

: 那么你需要一个map 每次进来, 拿到系统时间, 找到对应的map,然后放

: 入对应的map.entry

: 同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,

: 如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次
数,那

: 你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间
-queue

: .peek())

【在 p*********g 的大作中提到】
: step 1: fixed time period or dynamic time period,
: 比如5分钟的,fixed
: 0:05, 0:10, 0:15.
: 那么你需要一个map<0:05: times> 每次进来, 拿到系统时间, 找到对应的map,然后放
: 入对应的map.entry
: 同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
: 如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次数,那
: 你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间-queue
: .peek())>5, 就pop出去。 然后queue.size(), 就是当前5分钟的次数,如果你需要全
: 部的, 你要用map<每次进来的时间,times> 来记录, log大小取决于,新访问的次数。

z*******0
发帖数: 6
12
参考leetcode design hit counter 或者搜系统设计 hit counter
u****p
发帖数: 526
13
能请问下应该是什么思路吗?多谢啊

【在 r*****s 的大作中提到】
: 单机还给搞什么map queue heap的一律0分,而且面试官会觉得很尴尬
:
:
: step 1: fixed time period or dynamic time period,
:
: 比如5分钟的,fixed
:
: 0:05, 0:10, 0:15.
:
: 那么你需要一个map 每次进来, 拿到系统时间, 找到对应的map,然后放
:
: 入对应的map.entry
:
: 同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
:
: 如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次
: 数,那

u****p
发帖数: 526
14
我去看看,多谢啊

【在 z*******0 的大作中提到】
: 参考leetcode design hit counter 或者搜系统设计 hit counter
p*********g
发帖数: 2998
15
我这是自己的思路, 我的列子是单台server, 如果有很多台server, 你要用hash(
sharelinks), 这样就行了, 每台server只处理固定的link. 然后每台server后可以建
立aggregator server, 在这种server上,你可以计算各种分析, 比如统计亚太区的link
的5分钟, 此时,你可以用map reducer.

【在 u****p 的大作中提到】
: 多谢啊!对了这个是不是和 lc 里的Logger Rate Limiter 原理是一样的?
: 另外这是个global map吗? 如果这个share server有很多replica,这种情况怎么处理
: 比较好?
:
: queue
: 数。

r*****s
发帖数: 1815
16
Basically you should use a distributed sorted set to store the hits. Redis
is much more powerful than most people think (I know a lot of people just
consider it as a giant hashmap)
Either solution 1 or 2 in the following SO answer would work:
https://stackoverflow.com/questions/25706925/how-do-i-implement-temporal-
leaderbords-with-redis
However as a design question, you should also consider persisting the
original
hit data in blob storage so if Redis crashes, you can revive it by replay
the data.
If you need a top-K hit counter for over 1 day period, I would suggest you
to add some offline processing, and aggregate the realtime part on the
flight. Which makes the whole system a Lambda Architecture:
https://en.wikipedia.org/wiki/Lambda_architecture


: 能请问下应该是什么思路吗?多谢啊



【在 u****p 的大作中提到】
: 我去看看,多谢啊
r*****s
发帖数: 1815
17
如果面试官期待这样的答案而不是一个单机的计数器的话
那heaps讲出来就很尴尬了。
当然也怕面试官自己半吊子,就知道个单机计数器,就拿来面试别人。
我觉得可以策略性地先试探一下(也是展示你想要搞定ambiguity的能力),问一下我
们对这个service有多严肃呀,我们是要做一个单机的试验还是要做一个完整的上线方
案啊?


: Basically you should use a distributed sorted set to store the
hits.
Redis

: is much more powerful than most people think (I know a lot of
people
just

: consider it as a giant hashmap)

: Either solution 1 or 2 in the following SO answer would work:

: https://stackoverflow.com/questions/25706925/how-do-i-implement-
temporal-

: leaderbords-with-redis

: However as a design question, you should also consider
persisting the

: original

: hit data in blob storage so if Redis crashes, you can revive it
by
replay

: the data.



【在 r*****s 的大作中提到】
: Basically you should use a distributed sorted set to store the hits. Redis
: is much more powerful than most people think (I know a lot of people just
: consider it as a giant hashmap)
: Either solution 1 or 2 in the following SO answer would work:
: https://stackoverflow.com/questions/25706925/how-do-i-implement-temporal-
: leaderbords-with-redis
: However as a design question, you should also consider persisting the
: original
: hit data in blob storage so if Redis crashes, you can revive it by replay
: the data.

1 (共1页)
进入JobHunting版参与讨论
相关主题
贴点面试题, ms和google的[google面试题] API流量控制
请教: 想用java实现解析parse一个log文件,多谢指点问一个system design的题,看看大家怎么想的。
一个新鲜twitter面经G面试题求解
A家onsite的system design, 求大牛们说说自己的设计想法, 相信为啥cell reads是44啊?哪位给解释下?多谢了
用一个C++面试题challenge一下大家求教一道经典面题的解法
什么时候应该用mongodb?[bssd]另类面经
zhaoce大牛说说HornetQ vs kafka怎么样?贡献两道google面试题
为什么会有很多人认识年纪大了刷不过年轻人?Level order traversal只让用一个Queue怎么做?
相关话题的讨论汇总
话题: br话题: redis话题: map话题: server话题: queue