由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教一个 F的message设计问题, 不能理解
相关主题
机械硬盘的物理极限如果做游戏后端的话,pike traffic怎么破
鄙视芒果的被打脸了有人set up过 多个node的Cassandra 么? (转载)
看来couchbase跟mongo是真的干上了Cassandra 里的 partition
问二爷一个题外话最牛逼的NOSQL,Mongo,Redis
现在最成熟稳定的websocket server是什么?求推荐带 cluster 模式的类 Redis DB
node现在还行么?用的地放多不多?有专门讲 message server performance 的资料吗
consistent hashing实际应用Cassandra 比较 Dynamodb
backend是legecy系统,用户量会持续增加,用Java可以怎么解决?redis, kafka
相关话题的讨论汇总
话题: directory话题: mapping话题: user话题: 设计话题: message
进入Programming版参与讨论
1 (共1页)
S***w
发帖数: 1014
1
F的message设计,类似hdfs
有一个Directory, 当master
有n个data nodes
我的理解是
用户被分到其中data nodes中.
这个信息存在directory中
当发信给user_id, 要做
1. 连接directory service, 查找user_id的node
2. 把信存到user_id@node的记录里
有个问题
directory service 需要内存
假设1.5B user, 每个mapping 用10 byte
15B byte = 15G 内存
但是这么多request都到了directory service,
只是读还好, 可以load balancer
但是写怎么办
这里需要一个 concurrent hashmap,
lock, etc
性能总有限制啊?
p*****2
发帖数: 21240
2
为什么不能用in memory db?

【在 S***w 的大作中提到】
: F的message设计,类似hdfs
: 有一个Directory, 当master
: 有n个data nodes
: 我的理解是
: 用户被分到其中data nodes中.
: 这个信息存在directory中
: 当发信给user_id, 要做
: 1. 连接directory service, 查找user_id的node
: 2. 把信存到user_id@node的记录里
: 有个问题

S***w
发帖数: 1014
3

晕 根本没想过

【在 p*****2 的大作中提到】
: 为什么不能用in memory db?
l******g
发帖数: 366
4
为何mapping要占内存要lock?如果只是一个算法呢?
w**z
发帖数: 8232
5
你可以设计算法,(consistent hash or something like that) 从 userID 就能知道
是哪个node。For distributed system, you don't want to have a global mapping.

【在 S***w 的大作中提到】
: F的message设计,类似hdfs
: 有一个Directory, 当master
: 有n个data nodes
: 我的理解是
: 用户被分到其中data nodes中.
: 这个信息存在directory中
: 当发信给user_id, 要做
: 1. 连接directory service, 查找user_id的node
: 2. 把信存到user_id@node的记录里
: 有个问题

g*****g
发帖数: 34805
6
Check Cassandra, Memcached, Redis design and you'll understand. The userId
can be hashed and distributed in a cluster. And any single piece of data can
be further replicated, consistency can be reached as long as read+write >
replication factor.

【在 S***w 的大作中提到】
: F的message设计,类似hdfs
: 有一个Directory, 当master
: 有n个data nodes
: 我的理解是
: 用户被分到其中data nodes中.
: 这个信息存在directory中
: 当发信给user_id, 要做
: 1. 连接directory service, 查找user_id的node
: 2. 把信存到user_id@node的记录里
: 有个问题

S***w
发帖数: 1014
7
这个我也想过
不过立马毙了 觉得不太好用
如何增加一个机器 岂不是要重新改算法?
需要人为干预

mapping.

【在 w**z 的大作中提到】
: 你可以设计算法,(consistent hash or something like that) 从 userID 就能知道
: 是哪个node。For distributed system, you don't want to have a global mapping.

S***w
发帖数: 1014
8
谢谢
Cassandra 我大概知道是用consistent hashing
没有master
应该没用户global mapping
所以你的意思是 其实这里不需要存mapping
用consistenthashing方法查询use id 的shard?
多谢指点

can

【在 g*****g 的大作中提到】
: Check Cassandra, Memcached, Redis design and you'll understand. The userId
: can be hashed and distributed in a cluster. And any single piece of data can
: be further replicated, consistency can be reached as long as read+write >
: replication factor.

w**z
发帖数: 8232
9
That is what I was talking about.

【在 S***w 的大作中提到】
: 谢谢
: Cassandra 我大概知道是用consistent hashing
: 没有master
: 应该没用户global mapping
: 所以你的意思是 其实这里不需要存mapping
: 用consistenthashing方法查询use id 的shard?
: 多谢指点
:
: can

g*****g
发帖数: 34805
10
F probably uses MySQL sharding to achieve this, but the idea is the same.

【在 S***w 的大作中提到】
: 谢谢
: Cassandra 我大概知道是用consistent hashing
: 没有master
: 应该没用户global mapping
: 所以你的意思是 其实这里不需要存mapping
: 用consistenthashing方法查询use id 的shard?
: 多谢指点
:
: can

S***w
发帖数: 1014
11
谢谢大牛
你们什么都懂

【在 w**z 的大作中提到】
: That is what I was talking about.
S***w
发帖数: 1014
12
谢谢 大家指点
如醍醐灌顶
1 (共1页)
进入Programming版参与讨论
相关主题
redis, kafka现在最成熟稳定的websocket server是什么?
问个问题写点程序需要存大量状态,用数据库的话太慢了。node现在还行么?用的地放多不多?
Pinterest陶涛:三个教训和三个发展选择consistent hashing实际应用
请教java高手backend是legecy系统,用户量会持续增加,用Java可以怎么解决?
机械硬盘的物理极限如果做游戏后端的话,pike traffic怎么破
鄙视芒果的被打脸了有人set up过 多个node的Cassandra 么? (转载)
看来couchbase跟mongo是真的干上了Cassandra 里的 partition
问二爷一个题外话最牛逼的NOSQL,Mongo,Redis
相关话题的讨论汇总
话题: directory话题: mapping话题: user话题: 设计话题: message