avatar
那个SC Johnson的$5 rebate# PennySaver - 省钱一族
w*j
1
任给一个手机的位置信号(经纬度),需要返回附近5mile
的POI,怎么设计这样的系统
像他们这种公司,比如说google用big table存储map数据,facebook 用hbase吧?
是不是先用一个geohash找到存这个位置的shard,在从这个shard 里面找poi?
可以把每个shard 的poi都提前存起来....
这个怎么能说45分钟呢...
avatar
c*g
2
说3个products, 如果我买了3种不同的ziploc,是算一种呢还是3个呢?three
products 是三种还是任意3个?
avatar
p*3
3
这个关键感觉不在讨论数据库吧
avatar
m*n
4
任意3个
avatar
w*j
5
求指点
avatar
m*n
6
一样的买3个也算
avatar
p*2
7

大牛说说呀。

【在 p*****3 的大作中提到】
: 这个关键感觉不在讨论数据库吧
avatar
c*g
8
那他又说twin packs和multi-pack 的ziploc算一个?我就糊涂了。我买了大小不同的
,fresh和frozen的两种ziploc,共4合,够数了吧?

【在 m*********n 的大作中提到】
: 一样的买3个也算
avatar
p*3
9

是不是caching,indexing,distributed,相关的数据结构 ??

【在 p*****2 的大作中提到】
:
: 大牛说说呀。

avatar
o*o
10
一个UPC算一个

【在 c********g 的大作中提到】
: 那他又说twin packs和multi-pack 的ziploc算一个?我就糊涂了。我买了大小不同的
: ,fresh和frozen的两种ziploc,共4合,够数了吧?

avatar
r*e
11
直接geohash的话,怎么快速找出5mile之内的其他geohash key?
我觉得可以把map按照经纬坐标划为很多grids
每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
至于这个grid的granularity,就是需要讨论的细节了

【在 w******j 的大作中提到】
: 任给一个手机的位置信号(经纬度),需要返回附近5mile
: 的POI,怎么设计这样的系统
: 像他们这种公司,比如说google用big table存储map数据,facebook 用hbase吧?
: 是不是先用一个geohash找到存这个位置的shard,在从这个shard 里面找poi?
: 可以把每个shard 的poi都提前存起来....
: 这个怎么能说45分钟呢...

avatar
f*w
12
这个sc johnson好慢,pg的两个都收到了,这个还没收到
avatar
p*2
13

感觉这个想法不错。

【在 r*******e 的大作中提到】
: 直接geohash的话,怎么快速找出5mile之内的其他geohash key?
: 我觉得可以把map按照经纬坐标划为很多grids
: 每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
: 对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
: 然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
: 至于这个grid的granularity,就是需要讨论的细节了

avatar
c*g
14
清楚了, 谢谢

【在 o*o 的大作中提到】
: 一个UPC算一个
avatar
p*3
15

假设用曼哈顿距离。
是不是可以做这么几个layer,
一个是客户端 + web server,用来接收命令发送命令
一个是Aggregators,server group,这里每台aggregator根据范围计算出包含的grids
Aggregator根据grids的hash code发送grids到多台对应indexing servers,
indexing server 在内存搜索对应小grid的所有POI ids. POI ids在这里可以根据user
personlization 进行score和sort (score的data从哪来?怎么score?)
每台indexing server发送POI id request 到 data storage level
data storage level 外层是memcache, 下面是DB group,实现快速的POI id meta
data的提取
所有消息原路返回在aggregator做merge后返回发送的web server
所有POI的改变有个off line的系统batch, 发给整个系统更新indexing, DB和cache,
每个需要根据hash code broadcast的地方用consistent hash。
剩下一些问题
1. score的data从哪来?怎么score?
2. 怎么减少过多的TCP连接
3. 怎么降低packet drop
4. Fail over
5. 数据库详细怎么设计
6. 怎么根据大的grid很快定位覆盖的小的grids?

【在 r*******e 的大作中提到】
: 直接geohash的话,怎么快速找出5mile之内的其他geohash key?
: 我觉得可以把map按照经纬坐标划为很多grids
: 每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
: 对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
: 然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
: 至于这个grid的granularity,就是需要讨论的细节了

avatar
h*u
16
是么。我觉得还挺快的。。我的差不多寄出去几天就说收到了
然后过两天就说合格了
不过收到的时候大概有过了三周+的样子吧

【在 f*******w 的大作中提到】
: 这个sc johnson好慢,pg的两个都收到了,这个还没收到
avatar
w*j
17
楼上的几位说的好啊!
avatar
f*s
18
很快,一个月就能回来。
你没做过电子产品,那都是要2-3个月的。

【在 f*******w 的大作中提到】
: 这个sc johnson好慢,pg的两个都收到了,这个还没收到
avatar
M*8
20
我也挺快的,2周就收到了
我记过两次,都是差不多2周到的。。。

【在 h*********u 的大作中提到】
: 是么。我觉得还挺快的。。我的差不多寄出去几天就说收到了
: 然后过两天就说合格了
: 不过收到的时候大概有过了三周+的样子吧

avatar
y*c
21
首先数据库要是spatial的,就是上面所说的geohash的,给一个geohash/quadkey, 能
拿到所有的POI,但是拿到之后,内存里可能需要做更小规模的filter, R-tree based
algorithm管用。
avatar
h*u
22
额。。你好快。。。我觉得我的挺快的了。看来还是挺慢的

【在 M*********8 的大作中提到】
: 我也挺快的,2周就收到了
: 我记过两次,都是差不多2周到的。。。

avatar
w*j
23
任给一个手机的位置信号(经纬度),需要返回附近5mile
的POI,怎么设计这样的系统
像他们这种公司,比如说google用big table存储map数据,facebook 用hbase吧?
是不是先用一个geohash找到存这个位置的shard,在从这个shard 里面找poi?
可以把每个shard 的poi都提前存起来....
这个怎么能说45分钟呢...
avatar
t*e
24
did you check the status online or by phone call?

【在 h*********u 的大作中提到】
: 是么。我觉得还挺快的。。我的差不多寄出去几天就说收到了
: 然后过两天就说合格了
: 不过收到的时候大概有过了三周+的样子吧

avatar
p*3
25
这个关键感觉不在讨论数据库吧
avatar
s*y
26
收到email

【在 t*****e 的大作中提到】
: did you check the status online or by phone call?
avatar
w*j
27
求指点
avatar
h*i
28
这个REBATE看OOP吗?

【在 c********g 的大作中提到】
: 说3个products, 如果我买了3种不同的ziploc,是算一种呢还是3个呢?three
: products 是三种还是任意3个?

avatar
p*2
29

大牛说说呀。

【在 p*****3 的大作中提到】
: 这个关键感觉不在讨论数据库吧
avatar
j*e
30
同问,用了胖子后oop是0的话能拿到rebate吗
avatar
p*3
31

是不是caching,indexing,distributed,相关的数据结构 ??

【在 p*****2 的大作中提到】
:
: 大牛说说呀。

avatar
f*s
32
不看,不看,不看。
周经贴

【在 j*e 的大作中提到】
: 同问,用了胖子后oop是0的话能拿到rebate吗
avatar
r*e
33
直接geohash的话,怎么快速找出5mile之内的其他geohash key?
我觉得可以把map按照经纬坐标划为很多grids
每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
至于这个grid的granularity,就是需要讨论的细节了

【在 w******j 的大作中提到】
: 任给一个手机的位置信号(经纬度),需要返回附近5mile
: 的POI,怎么设计这样的系统
: 像他们这种公司,比如说google用big table存储map数据,facebook 用hbase吧?
: 是不是先用一个geohash找到存这个位置的shard,在从这个shard 里面找poi?
: 可以把每个shard 的poi都提前存起来....
: 这个怎么能说45分钟呢...

avatar
p*2
34

感觉这个想法不错。

【在 r*******e 的大作中提到】
: 直接geohash的话,怎么快速找出5mile之内的其他geohash key?
: 我觉得可以把map按照经纬坐标划为很多grids
: 每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
: 对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
: 然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
: 至于这个grid的granularity,就是需要讨论的细节了

avatar
p*3
35

假设用曼哈顿距离。
是不是可以做这么几个layer,
一个是客户端 + web server,用来接收命令发送命令
一个是Aggregators,server group,这里每台aggregator根据范围计算出包含的grids
Aggregator根据grids的hash code发送grids到多台对应indexing servers,
indexing server 在内存搜索对应小grid的所有POI ids. POI ids在这里可以根据user
personlization 进行score和sort (score的data从哪来?怎么score?)
每台indexing server发送POI id request 到 data storage level
data storage level 外层是memcache, 下面是DB group,实现快速的POI id meta
data的提取
所有消息原路返回在aggregator做merge后返回发送的web server
所有POI的改变有个off line的系统batch, 发给整个系统更新indexing, DB和cache,
每个需要根据hash code broadcast的地方用consistent hash。
剩下一些问题
1. score的data从哪来?怎么score?
2. 怎么减少过多的TCP连接
3. 怎么降低packet drop
4. Fail over
5. 数据库详细怎么设计
6. 怎么根据大的grid很快定位覆盖的小的grids?

【在 r*******e 的大作中提到】
: 直接geohash的话,怎么快速找出5mile之内的其他geohash key?
: 我觉得可以把map按照经纬坐标划为很多grids
: 每个grid用左上角+右下角坐标当key,value是在这个grid里的POI list
: 对一个给定的位置,可以很快算出与5mile为半径的圆重合的grids
: 然后把这些grids的POI读出来,按距离排一下,把超过5mile的过滤掉
: 至于这个grid的granularity,就是需要讨论的细节了

avatar
w*j
36
楼上的几位说的好啊!
avatar
y*c
38
首先数据库要是spatial的,就是上面所说的geohash的,给一个geohash/quadkey, 能
拿到所有的POI,但是拿到之后,内存里可能需要做更小规模的filter, R-tree based
algorithm管用。
avatar
c*n
40
Re这个。
里面讲的很清楚怎么样apply geohash to query.如果我没有理解错的话,用里面说的
方法可以省去前面大牛讲的design中的index server,就是存放每个grid中的PO壹的信
息的
给一个point and range,应该可以计算出minimum geohash prefix that contains the
area
然后用这个a list of geohash prefix去storage layer 拿所有符合要求的POI就可以
了。
如果哪里理解有误请指出

【在 w******j 的大作中提到】
: 大家看这个,上面讲了怎么用geohash做query
: http://my.safaribooksonline.com/book/-/9781617290527/chapter-8d

avatar
q*m
41
感觉位置定位不用太准确。先设定一个resolution, 比如100米,把整个地球照这个
resolution来划分成一个网格,然后cache每个格点的POI。对于一个经纬度,先确定在
哪个格点,然后周围5miles的距离差不多是以该格点为中心的的一个正方形,边长差不
多含有150个格点,把这个正方形内每个格点的POI显示出来就可以了

【在 w******j 的大作中提到】
: 任给一个手机的位置信号(经纬度),需要返回附近5mile
: 的POI,怎么设计这样的系统
: 像他们这种公司,比如说google用big table存储map数据,facebook 用hbase吧?
: 是不是先用一个geohash找到存这个位置的shard,在从这个shard 里面找poi?
: 可以把每个shard 的poi都提前存起来....
: 这个怎么能说45分钟呢...

avatar
p*2
42
这个用mongodb是不是就可以了?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。