作者:唐成,中启乘数科技(杭州)有限公司联合创始人
Odoo是一个开源框架,使用 Python 语言开发,可以定制出符合客户个人需求的 ERP 系统。经过进一步发展,也可以开发电子商务系统、 CMS 或网站,运行在 PostgreSQL 数据库之上。
Odoo应用既有简单的SQL,也有大量的复杂SQL,通常读多写少。
通常Odoo应用可以部署在多台机上,数据存储在PostgreSQL数据库中。为了保证高可用,PostgreSQL数据库通常是1主 2 备或一主多备的架构。PostgreSQL数据库也可以是 RDS 数据库,如阿里云的 RDS 或其他公有云的RDS 数据库。
但是该架构存在一些缺陷:
● 比如,应用都访问一台PostgreSQL数据库,该台数据库容易出现瓶颈。虽然有多台备库,但是备库并不能分担SQL的压力。
● 由于使用本机空间,空间不够时扩容不方便。
而PolarDB可以解决上述问题。
PolarDB既有主库,也有只读节点,主库与只读节点共享存储空间。共享存储可以使用SAN存储,支持多层挂载的块设备,也可以使用开源的分布式存储Curve。
将该架构内的数据库换成 PolarDB 数据库,同时给 PolarDB增加多个只读节点。图中有两个只读节点,所有只读节点基于一个共享存储, PolarDB 可以将高度请求的大场景运行到只读节点上执行,可以大幅降低主库压力。
同时,空间不够时,只需对共享存储进行扩容。PolarDB也在 PG 的技术上做了更多优化,可以提供更高的性能,解决Odoo应用中数据库性能瓶颈的问题。