大规模数据库架构与技术

需要解决的几个问题



一、高性能问题




二、高可用问题




三、隔离问题

1. 数据隔离

分库(数据库连接池能否支持多个库,如果支持,恐怕不同数据库之间也不能复用连接,毕竟是到不同数据库的连接是不同的,难以复用)

分schema

每个Schema都有不同的用户名和密码,可以实现彼此隔离,以及数据的相互访问(需要权限),同时可以利用到数据库连接池,复用链接,为众多Schema服务。


2.资源隔离

目的:同一台物理服务器上有多个数据库,不能因为个别或部分数据库对资源(CPU、Mem、NetTraffic)消耗太大,影响其他数据库。

目的:同一台物理服务器上有一个数据库,不能因为个别或部分Schema对资源(CPU、Mem、NetTraffic)消耗太大,影响其他Schema。


1)基于数据库实例的限制

如果每个数据库启动一个SQL实例,那么可以通过对SQL进程的控制,轻松实现资源配额限制。问题是,如果数据库量(单台机器上万个DB)很多,将会有大量的数据库实例存在,性能开销是否Hold住,需要测试。


2)基于用户名的限制

系统可以为不同的DB创建不同的用户名,可以利用CGroup对用户的资源配额的限制,实现对数据库使用配额的限制。缺点是:系统要求所有DB的用户不能重名。






你可能感兴趣的:(大规模数据库架构与技术)