头图 | CSDN 下载自东方 IC本文为企业投稿

省却成本,缩短产品上市时间,减少运维与开发团队之间的摩擦是 Serverless 最核心的所在,从 AWS 发布「Lambda」让「Serverless」越来越多地为开发者所知到今天,已经过去了 6 年的时光,Serverless 也正当时地引起了非常多的企业及开发团队的青睐与跟进。

不久前,腾讯云发布了国内第一款 Serverless 数据库 —— PostgreSQL for Serverless(ServerlessDB),在业界受到众多数据库开发者的广泛关注,它基于 PostgreSQL 数据库实现按需分配资源,能够做到安全隔离、弹性扩容、按需付费、原生 SQL 支持。在本文中,腾讯云 ServerlessDB 产品负责人从租户隔离技术、快速扩缩容能力、连接池管理等方面,详细解密这款数据库背后的设计细节,希望能够为所有开发者带来启发。

如何实现真正的自动扩缩容?

相比较于传统数据库,云数据库的弹性扩缩容和按量计费能够帮助用户按需使用云资源,避免资源浪费的同时大幅节省了成本。在系统实现原理上,目前云数据库提供的这类“弹性方案”本质上是一种策略上的弹性,即开发者需要先行预估自己的产品负载量,例如一款游戏什么阶段玩家特别多,什么时候人潮回落,在设定好数据库需求的方案后,对应进行手动的容量调整。

预估得越精细,这种“弹性”就越接近“按需分配”。要想通过弹性扩缩容最大限度降低成本,就需要做到精细化的预估和自动分配,这对绝大多数开发者提出了挑战。

精细化预估理论上要求用户的扩缩容对内存资源、CPU 资源、IO 资源、网络资源等各种资源做全位一体的判断。当用户访问请求上涨时,数据库针对用户请求的特点使用不同的系统资源,而这些资源需要动态的响应,且不会受到服务器限制。不同资源的扩缩容粒度需要小到一个数据块——CPU 核心。当前普通的云数据库实例扩缩容相对粗放,若要提升 CPU 性能,顺带还必须扩展内存大小。

手动调控也是一个挑战,一旦用户请求上涨,则需要扩容,但是对于不可预估的业务场景来说,上涨和降低是随机的,越是精细的预判越会导致频繁的扩缩容,而如能实现细粒度的自动调控,会大大提升整体效率。

腾讯云 ServerlessDB 的推出就完全克服了目前的挑战,其最大优势就是在技术层面上可以实现天然、精确、不需要人为干预的弹性扩缩容。

Serverless DB 架构图

上图是这款数据库的技术架构,在腾讯云 ServerlessDB 架构中,客户端访问数据库是通过 Proxy 层进行转发至数据库中的,且数据库可以缩容,也可以进行扩容。腾讯云 ServerlessDB 采用租户隔离扩缩容以及连接池管理技术,从而实现了技术层面上真正的弹性扩缩容。

租户隔离技术

了解数据库的应该知道,PostgreSQL 可以创建多个数据库 Database,多个数据库之间的数据是可以互相访问的。而 PostgreSQL 的 Serverless 化破除了数据库之间可以互相访问的能力,将单个数据库摘出来独立成为一个实例对外提供服务,这与 Oracle 12C 里面的 PDB 类似,但是腾讯云 ServerlessDB 在技术层面的优化远不止于此。

不同用户共享一组数据库实例时要保证用户访问不会出现越界的情况,所以需要对用户进行隔离这就涉及到对 PostgreSQL 内核进行改造。腾讯云 ServerlessDB 在 PostgreSQL 内核中加入了租户的概念,一个租户除了只能管理一个数据库外,其他的和正常数据库使用没有区别,一样可以拥有多个用户。相当于一个用户拥有自己的一套命名空间,每一个租户维护自己的元数据信息。为了避免互相影响,系统表也进行了隔离,每个租户的信息进行单独存放。

Serverless DB 逻辑架构

这就是腾讯云 ServerlessDB 的租户隔离,可以通过上图看到,将实例作为一个容器,其中将数据库独立成一个个单独的租户,每个租户之间都是隔离状态。数据库实例负责公共操作,比如日志读写、配置文件读取、控制文件刷新等,租户维护数据文件以及临时文件,其中包括本租户的元数据信息、租户类型等操作,同实例可以扩展多个租户数据库。

这就相当于传统 PostgreSQL 实例以前是一栋大别墅,里面有多个房间(database)供一家人使用。那么 Serverless 化后,改建为一座占地 100 亩的大公寓,里面有很多房间供用户使用。

快速扩缩容能力

在租户隔离技术避免了不同租户之间的访问越界问题后,在扩缩容方面,ServerlessDB 是如何保证对用户进行细粒度控制的呢?

首先 ServerlessDB 将服务器计算资源分为 3 个区域,分别是系统全局区、数据库全局区和资源池,每个区域都是互相隔离的。

ServerlessDB 扩缩容原理

其中系统全局区的计算资源用于处理操作系统本身的任务;数据库全局区负责处理数据库共享的任务,如 autovacuum,刷日志,归档日志等;租户资源区负责剩余的租户类的操作,如工作进程都按照租户打包,一个租户只占用一个资源区。

若租户没有任何连接访问数据库,对于该租户就没有任何资源响应,也就不会占用资源池的计算资源。当租户建立了数据库连接后,管控就会自动给该租户分配一个最小资源区单元。一旦该用户对计算资源访问达到了此资源区单元的 80%,后端管控将自动调整资源区的可使用的计算资源上限,以提高扩容的阈值,此时的扩容是完全无感知的,资源响应也是实时的。当用户对资源利用率低于 20%的时候,租户资源区将自动降低其可以使用的计算资源上限,空余出来的计算资源将重新流通到资源池当中,供其他租户调用。这就是计算资源实现 CPU 和内存的快速伸缩。

连接池管理

当前这种实现形式带来了另外一个问题:一个连接会新增一个进程,而多租户模式会导致服务器新建大量进程来消耗掉租户的资源,多个租户的连接数提升时很快会把服务器资源打爆,怎么办呢?

ServerlessDB 引入了连接池概念,当一个租户的多个连接访问到连接池后,将同一租户的连接通过一个连接捆在一起建立起数据库的连接,这样就保证了一个租户到数据库侧只有一个连接,相当于 N:1。在数据库侧建立的连接均通过租户间的资源隔离技术将其分离,避免不同租户产生影响,这样就解决了连接池管理的问题。

因为其是无状态的,即使连接池性能达到了瓶颈之后,用户也可以横向扩容,将请求进行负载均衡,这样可以避免因为连接池性能瓶颈导致整体的服务不可用。

回到刚刚举的例子,传统 PostgreSQL 数据库是一座别墅时,每来一个客人都需要单独提供一个车库(会话进程)给他们,访客增多时会出现车位不够用的问题。改建成公寓后专门修建了一个地下停车场(连接池),每一个租户有一个独门独户的电梯,所有访问同一个租户的访客,都可以通过这一座电梯直达房间。如果访问同一个租户的访客数量激增到一个电梯不够用,就会为其专修一座电梯来避免单租户的访问量太大而无法负载的问题。

应用场景与实践

其实,Serverless 概念的核心价值在于快速部署和降低使用成本。从这两点来看,ServerlessDB 最主要应用场景就是小程序,对于一些简单应用,甚至连后台都无需开发。

疫情期间,各大平台纷纷推出了自己的疫情监控功能,基于 Serverless 架构可以快速实现疫情监控。PostgreSQL 数据库提供丰富的插件扩展,比如招牌特色的 PostGIS 插件,支持丰富的空间地理类型据,可以根据人群定位,自动避开风险区域。

Serverless 只是产品形态与使用上的改变,数据库本身的功能没有发生变化。用户在使用这款数据库的过程中,把数据库的底层能力当作了一个 Serverless 化的服务来进行使用,无需关心数据库底层的运维等操作。

【END】

今日福利

遇见大咖

由 CSDN 全新专为技术人打造的高端对话栏目《大咖来了》来啦!

CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手京东集团技术副总裁、IEEE Fellow、京东人工智能研究院常务副院长、深度学习及语音和语言实验室负责人何晓冬,来也科技 CTO 胡一川,共话中国 AI 应用元年来了,开发者及企业的路径及发展方向!

,直达报名。

postgis数据库优化_国内首个 Serverless 数据库来了,技术架构全揭秘!相关推荐

  1. 国内首个 Serverless 数据库来了,技术架构全揭秘!

    头图 | CSDN 下载自东方 IC 本文为企业投稿 省却成本,缩短产品上市时间,减少运维与开发团队之间的摩擦是 Serverless 最核心的所在,从 AWS 发布「Lambda」让「Serverl ...

  2. 热度3年猛增20倍,Serverless云开发的技术架构全解析

    『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来.』 或许,Google Trends 所显示的 3 年猛增 20 倍的" Serverless " 搜 ...

  3. 阿里云成为国内首个时序数据库标准工作组成员

    摘要: 国内首个时序数据库标准制定中,阿里云成为标准工作组认证成员 近期,在中国信息通信研究院的牵头下,阿里云参与了国内首个时间序列数据库标准的制定,也正式成为该标准工作组成员.此标准属于中国通信标准 ...

  4. GBase 8c亮相国内首款金融数据库性能测试工具开源发布会

    2 月 17 日,由信通院主办的国内首款金融数据库性能测试工具开源发布会在线上召开.会上,定位于国家高端专业智库.产业创新发展平台的信通院宣布开源该测试工具,并详细阐述了开源此工具的背景.初心.历程以 ...

  5. 阿里云开放国内首个云端数据库测试平台,云已成为数据库新标准;华为5G随行WiFi发布;科大讯飞推出 AI 专用语音芯片系列……...

    戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧! ...

  6. mysql query 优化_第 8 章 MySQL 数据库 Query 的优化

    前言: 在之前"影响 MySQL 应用系统性能的相关因素"一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化 ...

  7. 物联网平台 源码_国内首个智慧交通物联网平台发布

    "智慧锥桶"工作示意图. 在近日召开的2020世界交通运输大会上,国内首个智慧交通物联网平台发布.该平台通过全系列物联网硬件设施,包括智慧锥桶.事故车盒.执法一体化快速封路器等和智 ...

  8. 电信 IPRAN 设备组网方案_国内首家5G核心网电信设备进网许可证;电信5G网络增强方案获认可;美国最大规模毫米波拍卖...

    点击上方"通信人才网" 订阅! 导读:今日热点 华为荣获国内首家5G核心网电信设备进网许可证近日,华为获得工业和信息化部颁发的"5G核心网电信设备进网许可证". ...

  9. 永磁直驱风力发电机结构图_国内首台10MW海上永磁直驱风力发电机研制成功

    2019首届新能源产业投融资论坛 2019年10月25日 周老师:15712959596 8月21日,具有完全自主知识产权.国内首台10MW海上永磁直驱风力发电机在东方电气集团东方电机有限公司研制成功 ...

最新文章

  1. 命令行运行hadoop实例wordcount程序
  2. 学python需要学数据库吗-学习python用什么数据库好?
  3. JMock / Mockito 使用方式
  4. asp.net操作IIS主机头的问题总结
  5. 线程组之间的JMeter传递变量
  6. T-SQL删除存储过程
  7. java 类似datatable_在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?...
  8. Eclipse怎样把文件系统形式的项目作为工程直接导入?
  9. 使用ajax的时候必须要加的几行代码
  10. 模式对话框与非模式对话框的创建方法
  11. AllenNLP入门笔记(一)
  12. python-jieba库
  13. edge便捷截取长图
  14. 微信网页版扫码登录是如何实现的?
  15. React(10)-组件通信(important)
  16. 2021小米笔记本pro14和小新pro14有什么区别 哪个好详细性能配置对比
  17. mysql 学习指南
  18. chatgpt:栅格化原理和代码
  19. 【Qt学习】 一键生成函数注释
  20. Excel数据的导入

热门文章

  1. AspNetCore中使用Ocelot之 IdentityServer4
  2. 记一次.net core 集成vue 实践
  3. 开源纯C#工控网关+组态软件(九)定制Visual Studio
  4. 互联网级监控系统必备-时序数据库之Influxdb技术
  5. 理解C# 4 dynamic(4) – 让人惊艳的Clay
  6. Visual Studio 2017 离线安装方式
  7. 从抵触到力推,.Net Core的成功让微软正视开源
  8. 帅呆了!微软即将发布 Visual Studio for Mac 预览版
  9. [转]Webpack5(从入门到精通)
  10. 【学生选课系统经典】C#与SQLSERVER连接:ASP.NET网站(服务器端,IIS发布)