实现PostgreSQL逻辑复制实战## 实现PostgreSQL逻辑复制实战 王青松 神州飞象(北京)数据科技有限公司 ## 简介 PG WAL Other DB 逻辑复制的功能是从PG的WAL日志中,读取数据库更新信息,然后“翻译”(Decode)成逻辑的形式,可发送到远程从库做数据同步。 ## 为什么要选择逻辑复制?  背景 • 方案调研 • Chubaofs • Juicefs • 方案实现 • 方案一:chubaofs • 方案二:事务方案 • 方案三:利用 KV 自带的分布式事务 • Q&A • 1. 是否需要实现跨文件系统的 rename 操作? • 2. 在多客户端情况下,是否需要加锁来保证其原子性? • 3. rename A→C(A 存在,而 C 存在) • 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? ## 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1)删除 file1 等同 file1 的 inode id)。关于 rename 接口的实现,主要调研了 chubaofs 和 juicefs,而 rename 的实现难点主要在于其原子性的保证。 ## 方案调研 ## Chubaofs chubaofs 中的 rename 实现不是原子性的,它是通用创建源文件的硬连接,然后删除源文件的方式来实现的,主要有以下 4 步: 1. 将源文件的 nlink 加一 20 码力 | 15 页 | 555.93 KB | 1 年前3
跨平台桌⾯应⽤框架:ElectronNODE_MODULE_VERSION和node版本对应关系 1.7.5.2 附录 1.8 文档和教程 1.8.1 参考资料 1.8.2 ## 跨平台桌面应用框架:Electron 最新版本:v1.0 • 更新时间:20200808 ## 简介 介绍跨平台桌面应用框架Electron的基本概念、基本原理、核心优势以及额外特性;介绍了用Electron开发出的常见应用有哪些;解释了如何安装Elec ork_electron: 跨平台桌面应用框架:Electron 如何使用此Gitbook源码去生成发布为电子书 详见:crifan/gitbook template: demo how to use crifan gitbook template and demo ## 在线浏览 跨平台桌面应用框架:Electron book.crifan.com 跨平台桌面应用框架:Electron 跨平台桌面应用框架:Electron crifan.github.io ## 离线下载阅读 跨平台桌面应用框架:Electron PDF • 跨平台桌面应用框架:Electron ePub 跨平台桌面应用框架:Electron Mobi ## 版权说明 此电子书教程的全部内容,如无特别说明,均为本人原创和整理。其中部分内容参考自网络,均已备注了出处。如有发现侵犯您版权,请通过邮箱联系我 admin 艾特 crifan.com,我会尽快删除。谢谢合作。0 码力 | 123 页 | 21.81 MB | 2 年前3
基于gRPC go实现消息发布订阅## 使用gRPC go实现 基于Topic的高效消息订阅发布模型  姓名:___ 张凯 中国电子云  ## Zadig 理念 & 应用 ## 一 体化平台帮助企业实现产研全域过程数据互通、软件质量透明、角色价值可评估 开发 数字孤岛  版权所有 2018 杭州才云科技有限公司 ## 多集群和镜像仓库 企业想要的 • 隔离性和安全性 • 容错性与混合云 • 功能多样性与上线流程 如何实现 - K8s - 单『控制集群』,多『用户集群』 - 镜像仓库 - 单『默认仓库』,多仓库集成  - 跟踪 TensorFlow 任务运行状态 - 支持分布式 TensorFlow 任务 Kubeflow KubeFlow ## KUBEFLOW 之上 - 借力容器平台提供生产级的集群资源管理 工作区隔离与共享 数据、模型、环境、应用等 - 全面支持 AI 工作流 • 探索开发 实现后台执⾏⻓任务tags: electron, node ## description: 通过 Electron 托盘(tray)实现后台执行长任务。 Electron 应用在执行一些长时间任务(比如上传、下载),我们想关闭界面后任务依旧执行。再次打开界面,依旧可以看到正在执行的任务以及任务进度。托盘可以帮我们实现这个功能。 ## 创建托盘和菜单示例 • 实例化 Tray 并传入图标路径; • 创建菜单并配置到托盘中。 label: 'Item4', type: 'radio' } ]) tray.setContextMenu(contextMenu)) ## 基于托盘功能实现后台运行应用 ## 关闭应用前唤醒对话框二次确认 关闭应用时,触发对话框,可支持 3 种场景: 点击「取消」取消关闭操作; 点击「退出」,「后台运行」选中时,界面关闭,托盘不关闭,任务继续执行; setImage(getTrayIcon()); ## 托盘其他场景 显示未读消息数 tray.setTitle('6'); - 有未读消息时图标闪动:通过 setImage 定时轮询切换图标实现 ## 注意事项 MacOS 全屏退出界面是会出现黑屏问题,解决方案 判断如果全屏,在关闭全屏时,先退出全屏再隐藏界面 // 修复全屏 hide 黑屏问题 // https://github0 码力 | 6 页 | 1.19 MB | 2 年前3
基于amqp实现的golang消息队列MaxQ# 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 ## 内容 1. 队列 2. IPC消息队列 3. AMQP协议 4. MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 ### 1. 队列  跟消息队列相比,有哪些共性? ### 3. AMQP(Advanced Message Queuing Protocol)协议 • 七层应用协议 • 定义Broker实现 • 生产消费轻耦合 • 生产消费状态记录 • Push/Pull消费模型 • 消费者流控 • 事务支持  - 按照协议spec自动生成frame encode/decode • Exchange接口化 • Queue接口化——MaxQ集群 ## MaxQ - 生产实现架构  建设测试平台,提升测试整体的吞吐量 从系统角色的角度来看,下游的生产力决定上游的生产速度。通过测试平台的建设,最终推动研发效能的提升。 持续测试的兴起与现状 持续测试的兴起与现状 MeterSphere 加速企业持续测试落地 MeterSphere 企业版及专业服务 ## MeterSphere 的使命 MeterSphere 是一站式的开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付。0 码力 | 45 页 | 4.65 MB | 2 年前3
Kubernetes日志平台建设最佳实践-元乙## Kubernetes日志平台建设最佳实践 ## 张城-元乙 阿里巴巴 # TGO鲲鹏会 # 汇聚全球科技领导者的高端社群 全球12大城市 850+高端科技领导者 使命 Mission 为社会输送更多优秀的 科技领导者 ## 愿景 Vision 构建全球领先的有技术背景 优秀人才的学习成长平台  容器、Serveless 数字化、智能化 统一日志平台 ## 日志系统的重要性与建设目标 智能分析 链路跟踪 监控 数据清洗 流计算 OLAP 离线计算 线上监控 












