Giter Site home page Giter Site logo

gitpagedarchivebackend's Introduction

GitPagedArchiveBackend

Git ODB backend for libgit2 and pyGit2 to save data in a set of packed binary files.

Use Case

This backend aims for server side git repos with many small objects that needs to be movable into cold storage and then quickly restored.

Key issues this backend helps with:

Loading a cold repo out of storage

The fs odb solution does have a packed format however one will typically still have many small files, this produces a high io overhead for small files. The layered solution allows the loading of a small number of layers (2000 objects per layer)

On write quickly sending a minimal amount of data so a storage api that has call based charging (eg s3)

On write the new layers are reported these can then be pushed to a save storage location allowing the repo servers to be stateless compared to tradition git fs this is also a much lower io cost of looping of all files and packing up/detecting changes.

Optimised operations for multiple incoming concurrent reads on the same python posses.

Since the PagedArchive object can be kept im memory and reused on different instances of the Repo class the optimisation of keeping the lookup table in memory significantly speeds things up compared to io bound operations. This is useful on servers with limited io budgets.

Compile

python setup.py build_ext --inplace

Install

python setup.py install

gitpagedarchivebackend's People

Contributors

hishnash avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gitpagedarchivebackend's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.