14
Haithem Jarraya GerritForge [email protected] http :// www.gerritforge.com Infinite Gerrit

Infinite gerrit

Embed Size (px)

Citation preview

Page 2: Infinite gerrit

2

About Haithem

Haithem JarrayaBig Data consultant based in London, worked in different industries telecommunication, advertisement, financial services, travel and government.

Expertise with real time big data ecosystem, Apache Kafka, Apache Cassandra, Apache Spark.

Page 3: Infinite gerrit

3

About GerritForge

Founded in 2009 in London UK

Mission: Integrate Gerrit withthe Enterprise

Page 4: Infinite gerrit

4

Agenda

Vision for Infinite Gerrit Why Cassandra?

DfsObjDatabase – Cassandra proposed schema• Pack list• Packs

Page 5: Infinite gerrit

5

Gerrit – End Goal

Every Gerrit mater accepts writes which in turn will increase throughput.

Increase flexibility for scaling up. Zero down time, Zero data loss. Reduce Gerrit operational cost by auto

scaling down instances.

Page 6: Infinite gerrit

6

Gerrit – Challenges

Distributed storage Database replication Concurrent Ref updates Indexes update Cache consistency Shared sessions Agreement protocol between nodes

Page 7: Infinite gerrit

7

Gerrit – Challenges

Distributed storage Database replication Concurrent Ref updates Indexes update Cache consistency Shared sessions Agreement protocol between nodes

Page 8: Infinite gerrit

8

C* in brief Each table has its rows distributed N token ranges, and each token range

replicated R times. Fast writes commit log(durable writes), memtable, stored to SSTable. Fast reads  bloom filter, row key cache, row cache, SSTable index entry.  Compaction, repairs, materialized view(3.X)…

Page 9: Infinite gerrit

9

DFS – Storage Layer for JGit org...storage.dfs.DfsObjDatabase org….storage.dfs.DfsRefDatabase

Page 10: Infinite gerrit

10

Packs C* schema - Packs Packs

CREATE TABLE git_store.packs ( id uuid, ext text, offset bigint, value blob,

PRIMARY KEY ((id, ext, offset)))

Page 11: Infinite gerrit

11

Packs C* schema – Pack list

Pack list

CREATE TABLE git_store.pack_list ( name text, id uuid, ext text, size bigint, PRIMARY KEY (name, id, ext))

WITH CLUSTERING ORDER BY (id DESC, ext ASC)

Page 12: Infinite gerrit

12

LWB – HTTP route per repo

Page 13: Infinite gerrit

13

Questions?

Page 14: Infinite gerrit

14

Resources http://cassandra.apache.org

http://www.datastax.com

http://eclipse.org/jgit

Dynamo paper http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf

Big Table paper http://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf