NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

谷歌启动容错 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:002497
用户头像

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

关注

评论

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

模块二作业——微信朋友圈高性能复杂度分析

木几丶

「架构实战营」

大神级插件ScriptRunner案例分享

跟YY哥学Jira

Jira automation ScriptRunner

Volatile 初探和 Java 内存模型

悟空聊架构

SpringCloud 28天写作 passjava 悟空聊架构 12月日更

架构实战营模块二作业

Poplar

架构实战营

读《思辨与立场》-06 思维的要素 -02

wood

28天写作 批判性思维 思辨与立场

SRE在安全方面可以做点啥

勇往直前的胖子

homework02

王欣欣

「架构实战营」

分析下微信朋友圈的高性能复杂度

Anlumina

#架构实战营

架构复杂度分析

tony

「架构实战营」

A 5G Odyssey :2021北京漫游

脑极体

模块九作业

bob

「架构实战营」

微信朋友圈高性能复杂度

阿门阿前一颗葡萄树๑

架构实战营 #架构实战营 「架构实战营」

语音信号处理 4:语音的声学特征

轻口味

AI 28天写作 12月日更

架构实战模块2作业

holdzhu

「架构实战营」

第二模块学习总结

Anlumina

#架构实战营

「架构实战营」模块二《如何抓住架构设计的关键点》作业

DaiChen

作业 模块二 「架构实战营」

CSS之选择器(十一):focus-within

Augus

CSS 12月日更

equals方法通用约定

李子捌

Java 28天写作 12月日更

Dubbo框架学习笔记六

风翱

dubbo 12月日更

PoE、PoE+、PoE++ 三款交换机如何选择?一文带你了解!

Ethereal

交换机 运维技术 PoE 弱电工程

如何配置 Nessus 漏洞扫描策略?

Ethereal

网络安全 漏洞扫描 网络技术联盟站 Nessus

【架构实战营】模块二:知识点总结

wgl

「架构实战营」

原型模式

卢卡多多

28天写作 12月日更 原型模式

作业:架构实战营模块 2

Poplar89

「架构实战营」

设计模式:责任链模式学习笔记

Changing Lin

12月日更

Java程序中如何正确的释放资源

李子捌

Java 28天写作 12月日更

架构实战训练营 - 模块 3- 作业

温安适

「架构实战营」

18《重学JAVA》--JAVA异常(二)

杨鹏Geek

Java25周年 28天写作 12月日更

【架构实战营】模块二:命题作业

wgl

「架构实战营」

模块2

Geek_59dec2

架构实战营

大系统中的线下团队

张老蔫

28天写作

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