写点什么

谷歌启动容错 Git 管理系统项目:Git Ketch

  • 2016-02-17
  • 本文字数:954 字

    阅读完需:约 3 分钟

尽管 Git Ketch 项目开发才刚刚开始,谷歌公司已经对外宣布了他们的第一个Git 项目——Git Ketch,一个多主机Git 管理系统,能够通过访问多个Git 服务器来复制信息,以确保复制信息的复原性和可扩展性。所做的这些改变都是基于原有用Java 搭建的名为JGit 的Git 服务器基础之上的,虽然这里面的其它Git 服务器可能是多主机群集的一部分。

最初设计Git 的目的是将Git 打造成一个分布式源代码管理库系统,但是大多数组织都采用了一个集中式的方式:采用一个带有“黄金副本”代码的主库,所有开发者会在这个主库上做修改,然后以最终版本作为更新基础;尽管所有改动能从开发者的私库里直接调取,但很少有这么做的。

只不过这种集中式方法也会导致单点故障。不过别担心,JGit 提供了部分解决方案,那就是通过它的分布式文件系统(DFS)的存储选项。此选项仅能解决部分问题,因为JGit 只定义了一组抽象类,而这组抽象类又定义了DFS 存储协议,但支持数据复制和创建抽象类实现的整体架构则是由用户自己设计的。这就意味着组织已投入相当大的资源——为实现JGit DFS,项目组暂时还不能将JGit DFS 大范围推广使用,谷歌是少有的几个掌握DFS 实现的组织之一。

Ketch 所遵循的策略有些与众不同,不仅仅可以定义一个能够复制 DFS 数据的 Git 服务器,Ketch 还可以假定现存的多个普通 Git 服务器可以互相之间数据和状态同步,因此被称为“多主机”。在任何一个制定的节点上,这些服务器都可以当作“主机”来使用,其余的服务器当作“从机”来利用。任何时候向任何一台服务器发送请求,这个“请求”都会被转发给“主机”,该“主机”将会向所有其他服务器发送推送请求,一旦绝大多数“从机”服务器已经确认推送请求成功,“主机”会向初始呼叫对象确认操作已成功。这一机制是基于 Raft 算法,此算法能够确保至少大多数服务器能够接收已经做了变更的请求;任何服务器上的数据丢失,都可以通过其它服务器同步过来。目前,只有 JGit 服务器可以充当“主机”,虽然在多主机集群里任何 Git 服务器实现的原子推送都可以充当一个参与服务器。

这些已经提出来的改变均可以在 JGit 内部 Gerrit 里看到,关于未来在工具上的改进细节及进展都可以从 JGit 的电子邮件分发列表里获得。

查看英文原文: Google Kick-Starts Git Ketch: A Fault-Tolerant Git Management System

2016-02-17 18:002689
用户头像

发布了 25 篇内容, 共 76192 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅰ

轶天下事

开创以API为核心的数字化变革,华为云实现API全生命周期一体化协作

平平无奇爱好科技

代码随想录 Day51 - 动态规划(十二)

jjn0703

最新中文 Keka for Mac(压缩解压工具) v1.3.3

mac大玩家j

解压缩软件 解压软件 解压缩工具

多币种挖矿dapp流动性LP令牌质押开发搭建[源码部署]

V\TG【ch3nguang】

质押挖矿 流动性挖矿

首期华为云ROMA Connect《企业集成战略与华为数字化之道》高研班在东莞圆满举办

平平无奇爱好科技

鼎友餐饮信息总监杨山海:餐饮新增长依托数智应用,用数字化打造单店盈利模型

科创人

OpenHarmony 4.0 Beta2新版本发布,邀您体验

OpenHarmony开发者

OpenHarmony

解锁多核处理器的力量:探索数据并行化在 Java 8 Stream 中的应用

java易二三

Java 程序员 计算机

资源成本降低70%!华为MetaERP资产核算的Serverless架构实践

轶天下事

质效提升 | 聊聊QA与业务测试

laofo

DevOps 研发效能 持续交付 质量赋能

Presto 设计与实现(八):Presto JDBC

冰心的小屋

数据湖 JDBC presto 设计与实现 presto jdbc

联邦学习:对“数据隐私保护”和“数据孤岛”困境的破局

vivo互联网技术

人工智能 联邦学习 数据隐私 数据安全 gdpr

移动端应用程序的一些测试方案和策略

QE_LAB

移动端测试

SpringBoot 的优雅的接口参数验证

java易二三

Java 编程 程序员 计算机

如何基于 Kubernetes 实现优质开发者平台体验?

SEAL安全

Kubernetes IdP 平台工程 内部开发者平台

Programming abstractions in C阅读笔记:p127-p129

codists

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅱ

轶天下事

Wolfram Mathematica 13 中文激活+安装教程最新

胖墩儿不胖y

Mac软件 数学计算软件 计算工具

酷睿轻薄本也能运行大语言模型,英特尔推动 PC 生成式 AI 落地

E科讯

Go语言协程池实现第二弹

FunTester

软件开发必读!华为云软件开发生产线CodeArts深度体验指南

平平无奇爱好科技

C++类成员的访问权限以及类的封装

芯动大师

解决访问 Amazon S3 对象时遇到的“访问被拒绝”错误

亚马逊云科技 (Amazon Web Services)

存储

R语言之 dplyr 包

timerring

R 语言

Python案例|Matplotlib库实现的数据分析

TiAmo

Python 数据挖掘 数据分析

[小笔记] Java 线程池

java易二三

Java 程序员 线程 线程池 计算机

谷歌启动容错Git管理系统项目:Git Ketch_Java_Abraham Marín Pérez_InfoQ精选文章