接头| CSDN从Oriental ic 下载本文为企业节省成本,缩短产品上市时间,减少运维与维护之间的摩擦而开发团队是无服务器的核心。 自AWS发布lambda以来,已经有六年
接头| CSDN从Oriental ic
下载本文为企业节省成本,缩短产品上市时间,减少运维与维护之间的摩擦而开发团队是无服务器的核心。 自AWS发布lambda以来,已经有六年了,以使“无服务器”变得越来越为开发人员所熟悉。与此同时,它吸引了许多企业和开发团队的青睐和后续行动。
不久前,腾讯云发布了第一个国内无服务器数据库,PostgreSQL用于无服务器(serverlessdb),该数据库已受到业界许多数据库开发人员的广泛关注。 它基于PostgreSQL数据库,可以按需分配资源,实现安全隔离,弹性容量扩展,按需支付和本地SQL支持。 本文中,腾讯云serverlessdb的产品总监从租户隔离技术,快速扩展和收缩能力,连接池管理等方面对数据库背后的设计细节进行了详细解密,希望能给所有开发人员带来启发。 如何实现
真正的自动伸缩? 与传统数据库相比,通过弹性容量扩展和基于数量的云数据库计费,可以帮助用户按需使用云资源,可以避免资源浪费,节省成本。 从系统实现原理上看,云数据库当前提供的“弹性方案”本质上是一种战略灵活性,也就是说,开发人员需要提前估计其产品负载,例如当游戏中有大量玩家时, 当人群退缩时。 设置数据库需求方案后,请相应地手动调整容量。
越精细,该“弹性”就越接近“按需分配”。 为了最大程度地通过弹性伸缩来降低成本,有必要进行精细估算和自动分配,这对绝大多数开发人员构成了挑战。 从理论上讲,
-精细预测要求用户的扩展和收缩应该对内存资源,CPU资源,IO资源,网络资源和其他资源做出全面的判断。 当用户访问请求增加时,数据库根据用户请求的特征使用不同的系统资源,这些资源需要动态响应,不会受到服务器的限制。 不同资源的缩放粒度需要小至一个数据块-CPU内核。 当前,常见云数据库实例的扩展和收缩相对广泛。 为了提高CPU性能,还必须扩展内存大小。
手动调节也是一个挑战。 一旦用户请求增加容量,就需要扩展容量。 但是,对于不可预测的业务场景,增加和减少是随机的。 预测越精确,膨胀和收缩就会越频繁。 如果能够实现细粒度的自动调节,则整体效率将大大提高。
扩展全文腾讯云serverlessdb它的最大优点是,它可以实现自然,准确和灵活的扩展和收缩,而无需技术层面的人工干预。
无服务器DB架构图
上图是该数据库的技术架构。 在腾讯云serverlessdb架构中,客户端访问数据库通过代理层转发到数据库,并且可以缩小或扩展数据库。 腾讯云serverlessdb采用租户隔离扩展和连接池管理技术,从而在技术水平上实现真正的弹性扩展和收缩。
租户隔离技术了解数据库应该知道PostgreSQL可以创建多个数据库,并且多个数据库之间的数据可以互相访问。 PostgreSQL的serverlessdb破坏了数据库之间的相互访问能力,并将单个数据库分离到一个实例中以提供外部服务,这类似于Oracle 12C中的PDB,但是腾讯云serverlessdb在技术层面的优化远不止于此。 。 当不同的用户共享一组数据库实例时,有必要确保用户访问不跨越边界,因此需要将用户隔离,这涉及到PostgreSQL内核的转换。 腾讯云serverlessdb在PostgreSQL内核中增加了租户的概念。 租户只能管理一个数据库,而其他数据库与普通数据库的使用没有区别,并且可以有多个用户。 这等效于用户拥有自己的命名空间集,并且每个租户都维护自己的元数据信息。 为了避免相互影响,系统表也被隔离,每个租户的信息被分开存储。
无服务器DB逻辑架构
是腾讯云serverlessdb的租户隔离。 从上图可以看出,该实例用作容器,其中数据库被分离为各个租户,并且每个租户处于隔离状态。 数据库实例负责公共操作,例如日志读写,配置文件读取,控制文件刷新等。承租人维护数据文件和临时文件,包括元数据信息,承租人类型和承租人的其他操作。 同一实例可以扩展多个租户数据库。
相当于传统的PostgreSQL实例曾经是一个大型别墅,有一个家庭的多个房间(数据库)。 无服务器改造后,将改造成占地100亩的大型公寓。 有许多房间供用户使用。
快速扩展和收缩能力在租户隔离技术避免了不同租户之间的访问跨边界问题之后,serverlessdb如何确保对用户进行扩展和收缩的细粒度控制? 首先,serverlessdb将服务器计算资源分为三个区域:系统全局区域,数据库全局区域和资源池。 每个区域彼此隔离。
serverlessdb扩展和缩减原理
,其中系统全局区域的计算资源用于处理操作系统本身的任务; 数据库的全局区域负责数据库共享的任务,例如Autovault,滑动日志,存档日志等; 租户资源区负责其余租户类别的操作,例如根据租户打包工作过程,而一个租户仅占用一个资源区。
如果租户没有任何连接来访问数据库,则该租户将没有资源响应,并且资源池的计算资源也不会被占用。 当租户建立数据库连接时,管理和控制将自动为租户分配最小资源区域单位。 一旦用户对计算资源的访问达到资源区域单位的80%,后端控件将自动调整资源区域中可用计算资源的上限,以提高容量扩展的阈值。 此时,容量扩展是完全不可察觉的,并且资源响应也是实时的。 当用户的资源利用率低于20%时,租户资源区域将自动减少可用计算资源的上限,并将多余的计算资源重新分配到资源池中供其他租户调用。 这是CPU和内存的快速扩展。
连接池管理当前的实现形式带来了另一个问题:连接将添加一个进程,而多租户模式将导致服务器创建大量新进程来消耗租户的资源。 当多个租户的连接数增加时,服务器的资源将很快被破坏。 我该怎么办?serverlessdb引入了连接池的概念。 当一个租户的多个连接访问连接池时,同一租户的连接通过连接绑定在一起以建立数据库连接,这确保了租户和数据库端之间只有一个连接,相当于n: 1。 通过租户之间的资源隔离技术将数据库侧建立的连接分开,避免了不同租户的影响,解决了连接池管理的问题。
因为是无状态的,所以即使在连接池的性能达到瓶颈后,用户也可以水平扩展容量并平衡请求的负载,从而避免了由于连接池的性能瓶颈而导致的整体服务不可用。 回到前面提到的示例中,当传统的PostgreSQL数据库是一个别墅时,每个来宾都需要为其提供一个单独的车库(会话过程)。 当游客人数增加时,停车位将不足。 装修后,新建了地下停车场(连通游泳池)。 每个租户都有一个电梯。 所有访问同一租户的访客都可以通过此电梯直接进入房间。 如果同一租户的访客数量激增到一台电梯不够用的程度,则将为租户专门建造一台电梯,以避免单个租户承受负荷太大的问题。
应用场景和实践实际上,无服务器概念的核心价值在于快速部署和降低使用成本。 从这两种观点来看,serverlessdb的主要应用场景是小程序。 对于某些简单的应用程序,甚至不需要开发背景。 在
-流行期间,各种平台都启动了自己的流行监测功能。 基于无服务器架构,可以快速实现流行病监测。 PostgreSQL数据库提供了丰富的插件扩展,例如具有招牌特征的PostGIS插件,它支持丰富的空间和地理数据,并可以根据人群的位置自动避开危险区域。
serverless只是产品形式和用途的改变,数据库本身的功能没有改变。 在使用此数据库的过程中,用户将数据库的基础功能用作无服务器服务,而无需关心基础数据库的操作和维护。 今天的
福利认识大人物CSDN为技术人员创建的新的高端对话专栏“大人物来了”!
CSDN创始人兼极客帮助风险投资公司董事长兼董事长姜涛,与京东集团技术副总裁,IEEE Fellow,京东人工智能研究所执行副总裁,深度学习与演讲负责人 语言实验室何晓东,来到中国首席技术官胡义川,探讨了中国AI应用第一年中开发商和企业的发展道路和发展方向!
美国国家航空航天局已发出近10亿 Dell的新款Precision 7000系列移 苏宁中华第一店的“倒退”显示出 Microsoft Surface go 2已通过En 如何连接装修工人的订单接收平台 这21个应用程序是非法的! 您可 YouTube每分钟产生32000美元的广 频频挖角高管抱怨午夜,魅族的应 当场推翻原版! AI不承认上帝, 数字基础共享视频介绍了VRS可变 北通云企业照明站,3分钟发布一 100智能大厦 新闻:2020年13英寸Macbook Pro 阅读对最近查询的回应:全面推动 餐饮业的创新,变革和利润保证 国家紧急响应为2级或以下; 特斯 巴菲特:尚未找到感兴趣的公司 Apple的新消息专利:重新编辑发 没有赢得原始的跑步成绩,并且没 长鑫家用DDR4内存芯片/颗粒处理 在原始的win10中搜索其他浏览器 巴菲特的Alpha:使用机器学习量 图片预览界面中的新增长焦点图片 巴菲特:麝香做得很棒,但不会投 阅读:作家座谈会于5月6日启动, 原始IOS 13.5 beta 3带来了有关 中国人民银行:恢复生产的状况正 原装国内最差的手机系统:华为的 比亚迪与华为合作! 赵长江:特 经典gal“ MUV luv”将发布在Ste