由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Dropbox 电面
相关主题
问一个system design的题,看看大家怎么想的。Is this a DP problem?
问个Google的面试题这个用stack实现queue
面完了G求救: 打印binary tree
web count 设计如何用JAVA中的circular array of queue 解决Josephus problem? (转载)
question 2: o(1) euque and dequeue?问个题:get max value from Queue, with O(1)?
请教一个系统设计问题 (转载)F家 一道LIS 的变种
如何实现binary tree的从下到上的分层打印?面试题
share 面试题一道很难的面试题
相关话题的讨论汇总
话题: scale话题: bucket话题: hit话题: hitlog
进入JobHunting版参与讨论
1 (共1页)
l****r
发帖数: 689
1
Implement two methods (web services)
1. getHit(): return last 5 mins hit
2. hitLog(): called every time the page is loaded
Follow up:
Consider how to scale it
u*****o
发帖数: 1224
2
好难。。。lz好人,谢谢分享,祝福内!
l****r
发帖数: 689
3

所以挂了。。。发现原来你也是我大西雅图的 哈哈

【在 u*****o 的大作中提到】
: 好难。。。lz好人,谢谢分享,祝福内!
s********f
发帖数: 510
4
数据结构是一个数组,size 300 (1 sec 1 bucket), 初始化每个bucket都是0.
hitlog: bucket = sec % 300, array[bucket]++
get: return sum of the array
如果需要scale,需要考虑的问题有
1) 数组不能放在单个server上了,需要distributed cache (比如memcache 或者
redis)。
2) 一秒一个bucket是不是导致溢出,可以更精度再小一些,比如10millisec 一个。
m********a
发帖数: 128
5
how to scale 啊?

【在 l****r 的大作中提到】
: Implement two methods (web services)
: 1. getHit(): return last 5 mins hit
: 2. hitLog(): called every time the page is loaded
: Follow up:
: Consider how to scale it

l****r
发帖数: 689
6


但是你这样不是最近5min的啊 比如301 秒 和 1秒的 会重复计算了
应该用这个数组做shifting吧

【在 s********f 的大作中提到】
: 数据结构是一个数组,size 300 (1 sec 1 bucket), 初始化每个bucket都是0.
: hitlog: bucket = sec % 300, array[bucket]++
: get: return sum of the array
: 如果需要scale,需要考虑的问题有
: 1) 数组不能放在单个server上了,需要distributed cache (比如memcache 或者
: redis)。
: 2) 一秒一个bucket是不是导致溢出,可以更精度再小一些,比如10millisec 一个。

j**********3
发帖数: 3211
7
请问是new grad么?谢谢lz
l****r
发帖数: 689
8

不是

【在 j**********3 的大作中提到】
: 请问是new grad么?谢谢lz
y*******g
发帖数: 6599
9
这个一般无所谓。

【在 l****r 的大作中提到】
:
: 不是

s********f
发帖数: 510
10
是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。
另外scale大了以后可以用double做counter,每次不是加1而是0.1或者0.01, get的时
候需要scale up。

【在 l****r 的大作中提到】
:
: 不是

相关主题
请教一个系统设计问题 (转载)Is this a DP problem?
如何实现binary tree的从下到上的分层打印?这个用stack实现queue
share 面试题求救: 打印binary tree
进入JobHunting版参与讨论
l****r
发帖数: 689
11
我电面的时候就是提出这个方案,有一个backend job,但是被否决了。

:是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
:不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。
r*****3
发帖数: 27
12
用一个类似双向Queue的结构?
queue存的是(time, count)
每次hit 都看一下queue里面最后一个元素的时间是否一样, 如果一样就count++, 如果
不一样就把(time, 1)压进去
hit的时候可以顺便把超过30min的头部都dequeue...
不知道这样可不可以 scale不清楚 - -
l****r
发帖数: 689
13
这个我也提到了类似的,当时他说,那如果一直没有调用gethit呢,空间就会越来越大
。。。。
最后是用了一个数组来做的,每次都位移。。。

:用一个类似双向Queue的结构?
s********f
发帖数: 510
14
不一定需要一个backend job。假设每秒都有hit,那么在incr counter的同时把下一秒
清零就可以了。
如果不能保证每秒都有hit,才需要backend job。

【在 l****r 的大作中提到】
: 我电面的时候就是提出这个方案,有一个backend job,但是被否决了。
:
: :是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
: :不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。

y**********u
发帖数: 6366
15
这个是不是也可以用来做rateLimiter的呢?
interface rateLimiter {
void setQps (int maxQps);
boolean acceptRequest (Request request);
}

【在 s********f 的大作中提到】
: 不一定需要一个backend job。假设每秒都有hit,那么在incr counter的同时把下一秒
: 清零就可以了。
: 如果不能保证每秒都有hit,才需要backend job。

l****r
发帖数: 689
16
Implement two methods (web services)
1. getHit(): return last 5 mins hit
2. hitLog(): called every time the page is loaded
Follow up:
Consider how to scale it
u*****o
发帖数: 1224
17
好难。。。lz好人,谢谢分享,祝福内!
l****r
发帖数: 689
18

所以挂了。。。发现原来你也是我大西雅图的 哈哈

【在 u*****o 的大作中提到】
: 好难。。。lz好人,谢谢分享,祝福内!
s********f
发帖数: 510
19
数据结构是一个数组,size 300 (1 sec 1 bucket), 初始化每个bucket都是0.
hitlog: bucket = sec % 300, array[bucket]++
get: return sum of the array
如果需要scale,需要考虑的问题有
1) 数组不能放在单个server上了,需要distributed cache (比如memcache 或者
redis)。
2) 一秒一个bucket是不是导致溢出,可以更精度再小一些,比如10millisec 一个。
m********a
发帖数: 128
20
how to scale 啊?

【在 l****r 的大作中提到】
: Implement two methods (web services)
: 1. getHit(): return last 5 mins hit
: 2. hitLog(): called every time the page is loaded
: Follow up:
: Consider how to scale it

相关主题
如何用JAVA中的circular array of queue 解决Josephus problem? (转载)面试题
问个题:get max value from Queue, with O(1)?一道很难的面试题
F家 一道LIS 的变种Two programming questions...
进入JobHunting版参与讨论
l****r
发帖数: 689
21


但是你这样不是最近5min的啊 比如301 秒 和 1秒的 会重复计算了
应该用这个数组做shifting吧

【在 s********f 的大作中提到】
: 数据结构是一个数组,size 300 (1 sec 1 bucket), 初始化每个bucket都是0.
: hitlog: bucket = sec % 300, array[bucket]++
: get: return sum of the array
: 如果需要scale,需要考虑的问题有
: 1) 数组不能放在单个server上了,需要distributed cache (比如memcache 或者
: redis)。
: 2) 一秒一个bucket是不是导致溢出,可以更精度再小一些,比如10millisec 一个。

j**********3
发帖数: 3211
22
请问是new grad么?谢谢lz
l****r
发帖数: 689
23

不是

【在 j**********3 的大作中提到】
: 请问是new grad么?谢谢lz
y*******g
发帖数: 6599
24
这个一般无所谓。

【在 l****r 的大作中提到】
:
: 不是

s********f
发帖数: 510
25
是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。
另外scale大了以后可以用double做counter,每次不是加1而是0.1或者0.01, get的时
候需要scale up。

【在 l****r 的大作中提到】
:
: 不是

l****r
发帖数: 689
26
我电面的时候就是提出这个方案,有一个backend job,但是被否决了。

:是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
:不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。
r*****3
发帖数: 27
27
用一个类似双向Queue的结构?
queue存的是(time, count)
每次hit 都看一下queue里面最后一个元素的时间是否一样, 如果一样就count++, 如果
不一样就把(time, 1)压进去
hit的时候可以顺便把超过30min的头部都dequeue...
不知道这样可不可以 scale不清楚 - -
l****r
发帖数: 689
28
这个我也提到了类似的,当时他说,那如果一直没有调用gethit呢,空间就会越来越大
。。。。
最后是用了一个数组来做的,每次都位移。。。

:用一个类似双向Queue的结构?
s********f
发帖数: 510
29
不一定需要一个backend job。假设每秒都有hit,那么在incr counter的同时把下一秒
清零就可以了。
如果不能保证每秒都有hit,才需要backend job。

【在 l****r 的大作中提到】
: 我电面的时候就是提出这个方案,有一个backend job,但是被否决了。
:
: :是的,需要有一个清零的job,每秒跑一次把现在的bucket清零。
: :不过这个很难做到绝对精度的5分钟,总要损失一些(或多或少)。

y**********u
发帖数: 6366
30
这个是不是也可以用来做rateLimiter的呢?
interface rateLimiter {
void setQps (int maxQps);
boolean acceptRequest (Request request);
}

【在 s********f 的大作中提到】
: 不一定需要一个backend job。假设每秒都有hit,那么在incr counter的同时把下一秒
: 清零就可以了。
: 如果不能保证每秒都有hit,才需要backend job。

相关主题
F家电面问个Google的面试题
A家电面面完了G
问一个system design的题,看看大家怎么想的。web count 设计
进入JobHunting版参与讨论
s*****B
发帖数: 32
1 (共1页)
进入JobHunting版参与讨论
相关主题
一道很难的面试题question 2: o(1) euque and dequeue?
Two programming questions...请教一个系统设计问题 (转载)
F家电面如何实现binary tree的从下到上的分层打印?
A家电面share 面试题
问一个system design的题,看看大家怎么想的。Is this a DP problem?
问个Google的面试题这个用stack实现queue
面完了G求救: 打印binary tree
web count 设计如何用JAVA中的circular array of queue 解决Josephus problem? (转载)
相关话题的讨论汇总
话题: scale话题: bucket话题: hit话题: hitlog