架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分布式数据库方案[转]

Posted on 2009-05-10 11:41  chen eric  阅读(634)  评论(0编辑  收藏  举报
服务器推荐:
一)web服务器:linux + apache + tomcat + j2sdk1.5
二)数据库服务器:linux + orcale
三)文件服务器:linux + vsftp

--------------------------------

方案一(数据库保存所有服务器索引信息)

全对称结构,没有中央服务器

web方案:
只从本地数据库检索符合条件的记录,给出结果
每次检索都要从本地服务器的海量数据中进行

数据库方案:
数据库保存所有服务器的索引内容
缓存命中率高的记录,减少检索时间

服务器负载分析:

服务器负载假设:
一百个结点,每结点一百人同时使用,每个结点一万条记录
web服务器:同时一百线程在本地数据库服务器检索
数据库服务器:每次接收一百个查询请求;每个请求要从一百万条索引中检索(最坏的情况);缓冲机制可以稍微减轻负担

数据更新操作:
同时更新所有数据库/只更新本地,服务器间相互同步








方案二(数据库保存本地索引及少量缓冲)

每高校作为一个结点
所有结点全对称结构,网络中没有一个中央服务器

web方案:
接收到请求时同时多线程向其它服务器同时搜索(服务器压力问题?)

数据库方案:
数据库保存本地数据
数据库保存一定量缓冲数据,

服务器负载分析:


服务器负载假设:
一百个结点,每结点一百人同时使用
则每个web服务器同时发起一万个线程向其它数据服务器搜索(oops!)
每个数据库服务器会同时接收到一万个查询请求(oops!)
采用学习过程只能少量减少查询请求和web服务器搜索线程

数据更新操作:
只更新本地





方案三(中央服务器方案一)

每高校一个结点
每结点结构相同,连接到同一个中央服务器

web方案
每个查询向中央服务器进行,由中央服务器实行检索,中央服务器返回检索结果

数据库方案
中央数据库保存所有索引信息
每结点可以只用小型数据库保存本地用户和其它信息即可

服务器负载分析:

服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条
web服务器:同时发起一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条查询请求并返回大容量结果
数据库服务器(结点):少量工作

数据更新操作:
只更新中央服务器


方案四(中央服务器方案二)

每高校一个结点
每结点结构相同,连接到同一中央服务器

web方案:
每个查询向中央服务器进行,由中央服务器根据查询内容进行转发到结点数据库,再由结点数据库返回结果

数据库方案:
中央服务器保存各结点分类信息,根据页面请求的分类转发查询到相应服务器

服务器负载分析:

服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条,每结点一百个类别
web服务器:同时一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条请求并转发
数据库服务器(结点):从中央服务器接收查询请求,最坏情况下每结点接收到一万条查询请求

数据更新操作:
只更新本地服务器
分类变化时更新中央服务器