Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

JGit DHT on Apache HBase

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .settings
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README
Octocat-spinner-32 pom.xml
README
org.eclipse.jgit.storage.hbase
------------------------------

This package is a trivial implementation of the
org.eclipse.jgit.storage.dht.spi interface, binding
JGit's generic DHT storage onto the Apache HBase
NoSQL database.


Download HBsae 0.90.0 and unpack the distribution.  To experiment with
a single node cluster, start the node locally in the background:

  hbase-0.90.0/bin/start-hbase.sh

To later stop this single node cluster:

  hbase-0.90.0/bin/stop-hbase.sh


Compile this package, you may need JGit first:

  (cd ../jgit && mvn clean install)
  mvn clean package


Initialize the HBase schema (do this once per cluster):

  java -jar target/jgit-hbase.jar \
    hbase-create-schema \
    git+hbase://localhost/test

The hostname ("localhost") denotes the ZooKeeper nodes to contact to
find the HBase master server.  The schema prefix path component
("test") is the prefix to apply to all Git tables, keeping them
seperated from other tables that may also run in the same cluster.
The schema prefix may not itself contain '/'.

Create a repository:

  java -jar target/jgit-hbase.jar \
    hbase-init \
    git+hbase://localhost/test/jgit.git

A git+hbase repository URI has the obvious hostname component
("localhost"), followed by the schema prefix ("test"), and the
remainder of the URI is the repository name.


Launch a Git daemon, which needs at least 800M to handle the linux-2.6
repository.  Currently JGit's DHT implementation holds onto the entire
pack during receive, to implement delta resolution efficiently.

  java -Xmx800m -jar target/jgit-hbase.jar \
    hbase-daemon \
    --enable receive-pack
    git+hbase://localhost/test

Push to it:

  git push git://localhost/jgit.git master

Clone from it:

  git clone git://localhost/jgit.git
Something went wrong with that request. Please try again.