p****o 发帖数: 46 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: pepero (pepero), 信区: JobHunting
标 题: 讨论一道onsite时候问的问题
发信站: BBS 未名空间站 (Mon Nov 14 16:56:54 2011, 美东)
某互联网大公司,onsite是碰到的, 好像是系统设计方面的问题,自己回答的不是很好
,贴出来,向大家请教。
题目大致的意思是
一台核心机器有一个很大的主table (central table),有很多行数据
另外有些其他附属机器各自有一个table (local table), local table是central
table中的子集。
比方说:
central table 是
a: 1, 2, 3;
b: 1, 4, 4;
c:2,4,5;
local table 是
a: 1, 2, 3;
c:2,4,5;
central table如果发生变化,local table也要相应的更新,包括元素的插入,删除,
查找。
1. table使用树类结构,比方说用 c++ 中的stl::map;
2. 中央机器和辅助机器之间是通过基于xml之类的rpc进行数据传递, 每次传递消息最
大的数据包限制是10k;而central table 的每次更新可能是很大的数据量1g或者没有
限制,也有可能是很小的数据更新。
如何设计一个高效(时间空间效率)的数据更新机制。
基本上这些是最基本条件, 当时他问的很open,包括后来问对这个table有没有更好的数据结构,如何synchonize,如何处理一些特殊情况(比方说机器/网络down掉等等)
面试前我主要看的都是些数据结构方面的,当时毫无头绪,
大家有什么思路吗?不知道这个是不是分布式数据库方面的问题? |
|