首页 文章 精选 留言 我的

精选列表

搜索[云安全中心],共10000篇文章
优秀的个人博客,低调大师

OrioleDB —— 构建现代云原生存储引擎

OrioleDB 是 PostgreSQL 的全新存储引擎,为该数据库平台带来了现代化的数据库容量、功能和性能。目前正处于公测状态。建议用于实验、测试、基准测试等,但不建议用于生产用途。 OrioleDB 包含一个扩展,它构建在创新的表访问方法框架和其他标准 Postgres 扩展接口的基础上。通过扩展和增强当前的表访问方法,OrioleDB 为未来更强大的存储模型打开了大门,这些模型针对云和现代硬件架构进行了优化。 OrioleDB 目前在标准 PostgreSQL 许可证下分发。 专为现代硬件而设计。OrioleDB 设计避免了包含数十个和数百个 CPU 核心的现代服务器上的遗留 CPU 瓶颈,从而优化了现代存储技术(例如 SSD 和 NVRAM)的使用。 减少维护需求。OrioleDB 实现了撤消日志和页面合并的概念,消除了对专用垃圾收集过程的需要。此外,OrioleDB 实现了默认的 64 位事务标识符,从而消除了众所周知且令人痛苦的环绕问题。 设计为分布式。OrioleDB 实现了行级预写日志并支持并行应用。该日志架构针对基于 raft 共识的复制进行了优化,允许实现主动-主动多主控。 OrioleDB的关键技术差异如下: 没有缓冲区映射和无锁页面读取。OrioleDB 中的内存页面通过直接链接连接到存储页面。这消除了缓冲区内映射及其相关瓶颈的需要。此外,在 OrioleDB 中,内存页面读取不涉及原子操作。这些设计决策共同将 Postgres 的垂直可扩展性提升到了一个全新的水平。 MVCC 基于UNDO 日志概念。在 OrioleDB 中,旧版本的元组不会导致主存储系统膨胀,而是被逐出到包含撤消链的撤消日志中。页级撤消记录使系统能够轻松地尽快回收已删除元组占用的空间。这些机制与页面合并一起消除了大多数情况下的膨胀。也不需要对表进行专门的 VACUUMing,从而消除了系统性能恶化和数据库中断的重要且常见的原因。 写时复制检查点和行级 WAL。OrioleDB 利用写时复制检查点,它每时每刻都提供结构一致的数据快照。这对于现代 SSD 很友好,并允许行级 WAL 日志记录。反过来,行级 WAL 日志记录很容易并行化(已完成)、紧凑且适合主动-主动多主机(计划中)。 更多详情可参阅用法、架构、项目结构文档以及PostgresBuild 2021 幻灯片。要开始开发,可参阅OrioleDB 开发快速入门。

优秀的个人博客,低调大师

Git 代码分支管理 | 京东云技术团队

作者:京东科技 周新智 一、引言 近日,IoT 研发团队加入了不少新同学,对 git 分支的命名和管理方式有些许的模糊,分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的管理代码分支。 二、总览  从上图可以看到主要包含下面几个分支: • master: 主分支,也称为线上分支,主要用来版本发布。 • dev:日常开发分支,该分支正常保存了开发的最新代码。 • release:release 分支可以认为是 master 分支的测试版。比如说某个新增功能开发完成、线上问题紧急修复完成,那么就将 feature/hotfix 分支合并到 release 分支,到了发布日期就合并到 master 分支,进行版本发布。 • feature:具体的功能开发分支。 • hotfix:线上 bug 修复分支。 三、主分支 主分支包括Master Branch、Release Branch、Dev Branch 三个分支: 1、Master Branch 用来进行版本发布,也就是当前线上运行的代码分支 2、Release Branch Release Branch 在我看来就是 Pre-Master。Release Branch 从 Master Branch 检出,最终会合并到Master Branch,合并后 Master Branch上就是可以发布的代码了。 所有新增功能的开发分支都是从 Dev Branch 检出作为本地分支,以 feature-功能名-姓名首字母简拼,当功能开发完毕的时候,将 feature Branch 合并到 Dev Branch,在测试或预生产环境进行部署,测试通过后,再将 feature Branch 合并到 Release Branch。 如果出现线上问题需要紧急修复,则从 Release Branch 检出作为本地分支,以 hotfix-功能名-姓名首字母简拼, 当问题修复完毕的时候,将hotfix Branch合并到 Dev Branch,在测试环境进行部署,测试通过后,再将 hotfix Branch 合并到 Release Branch,在预发环境再次验证。 待所有的测试和准备工作做完之后,我们就可以将 release 分支合并到 master 分支上,并择机进行线上发布。 3、Dev Branch dev 就是我们的日常开发分支。 四、辅助分支 1、Feature分支 feature 分支用来开发具体的功能,一般 fork 自 Dev 分支,以 feature-功能名-姓名首字母简拼 进行命名,最终合并到 Dev 、Release分支。比如我们要在下一个版本增加功能1、功能2、功能3。那么我们就可以起三个feature 分支:feature-1-zxz,feature-2-qxh,feature-3-sq。(feature 分支命名最好能够自解释,1、2、3 这并不是一种好的命名)随着我们开发,功能1和功能2都被完成了,而功能3因为某些原因完成不了,那么最终 feature-1-zxz 和 feature-2-qxh 分支将被合并到 Dev 分支,而 feature-3-sq 分支将延期继续进行本地开发工作,功能1和功能2测试完没有问题后,将 feature1 和 feature2 分支将被合并到 Release 分支,最终将 Release 分支合并到 Master 分支。 2、Hotfix 分支 顾名思义,hotfix 分支用来修复线上 bug。当线上代码出现 bug 时,我们基于 Release 分支开一个 hotfix 分支,以 hotfix-功能名-姓名首字母简拼(例如:hotfix-model-base-zxz),修复 bug 之后再将 hotfix 分支合并到 Release 分支,同时 Dev 分支作为最新最全的代码分支,hotfix 分支也需要合并到 Dev 分支上去,同时在不同分支对应的不同环境进行bug回归验证,最终将 Release 分支合并到 Master 分支,进行线上发布即可。 五、注意事项 1、 Feature 分支、Hotfix 分支合并到 Dev 分支,测试通过后,需再合并到 Release 分支,这时候就要求代码合并时需清楚的知道此代码是否已经经过验证。 2、 Dev、Release、Master分支的同步 Release 分支合并到 Master 分支后,若Dev分支无正在测试的功能,建议定时将 Dev、Release、Master 分支进行代码同步。 通过以上分支管理,我们就可以轻松做到:团队成员之间功能并行开发、功能选择性发布、版本发布、线上问题紧急功能开发、紧急问题修复等。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册