All Projects → openSUSE → MirrorCache

openSUSE / MirrorCache

Licence: GPL-2.0 license
Download Redirector

Programming Languages

perl
6916 projects
shell
77523 projects
Raku
181 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
M4
1887 projects
Makefile
30231 projects

Projects that are alternatives of or similar to MirrorCache

EasyProfiler
This repo, provides query profiler for .Net
Stars: ✭ 99 (+312.5%)
Mutual labels:  mariadb
tengo
Go La Tengo: a MySQL automation library
Stars: ✭ 27 (+12.5%)
Mutual labels:  mariadb
r2dbc-migrate
R2DBC database migration tool & library
Stars: ✭ 83 (+245.83%)
Mutual labels:  mariadb
gradle-circle-style
🚀🚀🚀MOVED TO Baseline
Stars: ✭ 28 (+16.67%)
Mutual labels:  circleci
ci-npm-update
(no longer used by @bitjourney)
Stars: ✭ 41 (+70.83%)
Mutual labels:  circleci
crossplane-service-broker
Crossplane Open Service Broker API
Stars: ✭ 17 (-29.17%)
Mutual labels:  mariadb
sicherboot
Unmaintained systemd-boot integration with secure boot support; consider https://github.com/Foxboron/sbctl instead.
Stars: ✭ 31 (+29.17%)
Mutual labels:  systemd
dotfiles
My main working machine setup. Here be cyber dragons, and optional bugs.
Stars: ✭ 35 (+45.83%)
Mutual labels:  systemd
nest-rest-typeorm-boilerplate
🍱 backend with nest (typescript), typeorm, and authentication
Stars: ✭ 142 (+491.67%)
Mutual labels:  mariadb
ruby-sdnotify
A pure-Ruby implementation of systemd's sd_notify(3)
Stars: ✭ 46 (+91.67%)
Mutual labels:  systemd
tiller-circleci
Deploy Trellis, Bedrock and Sage via CircleCI
Stars: ✭ 14 (-41.67%)
Mutual labels:  circleci
LEMPer
LEMPer Stack is terminal-based LEMP / LNMP installer and manager for Debian & Ubuntu cloud or virtual server (vps) and on-premise (bare metal).
Stars: ✭ 171 (+612.5%)
Mutual labels:  mariadb
scikit-ci
Simpler and centralized CI configuration for Python extensions.
Stars: ✭ 15 (-37.5%)
Mutual labels:  circleci
ci-configuration-examples
This repository makes it easy to run your MATLAB tests on some of the most common CI platforms. The configuration files take care of setting up MATLAB and automatically executing your MATLAB tests.
Stars: ✭ 52 (+116.67%)
Mutual labels:  circleci
cart
Fetch build artifacts from CircleCI.
Stars: ✭ 21 (-12.5%)
Mutual labels:  circleci
ansible-role-systemd-service
No description or website provided.
Stars: ✭ 37 (+54.17%)
Mutual labels:  systemd
matador
Take your appclication by the horns
Stars: ✭ 59 (+145.83%)
Mutual labels:  mariadb
parca
Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increasing reliability.
Stars: ✭ 2,834 (+11708.33%)
Mutual labels:  systemd
local-docker-db
A bunch o' Docker Compose files used to quickly spin up local databases.
Stars: ✭ 251 (+945.83%)
Mutual labels:  mariadb
docker-node-ci
The Docker image based on the official "node" image optimized for a CI environment
Stars: ✭ 18 (-25%)
Mutual labels:  circleci

Welcome to MirrorCache!

MirrorCache is a Web Server for files download, which will route download requests to an appropriate mirror. MirrorCache doesn't store files and instead keeps in DB list of files from the Main Server.

According to Wikipedia "Cache - is a component that stores data so that future requests for that data can be served faster". In this regard MirrorCache is a cache of (meta)information about geographical location of files.

"Cache hit" means that MirrorCache was able to redirect to proper (the closest) mirror. "Cache miss" means that MirrorCache had to redirect request to the Main Server.

Output below domonstrates a cache miss, so the download request will be redirected to the Main Server (in this case download.opensuse.org):

> curl -I http://mirrorcache.opensuse.org/download/update/openSUSE-current/x86_64/alsa-1.1.5-lp152.8.6_lp152.9.4.1.x86_64.drpm
HTTP/1.1 302 Found
location: http://download.opensuse.org/update/openSUSE-current/x86_64/alsa-1.1.5-lp152.8.6_lp152.9.4.1.x86_64.drpm
date: Wed, 29 Jul 2020 08:37:07 GMT

Then background jobs will collect info about the hottest misses and scan predefined mirrors for presence of these files. Further requests will be redirected to one of the mirrors that has the file:

> curl -I http://mirrorcache.opensuse.org/download/update/openSUSE-current/x86_64/alsa-1.1.5-lp152.8.6_lp152.9.4.1.x86_64.drpm
HTTP/1.1 302 Found
location: http://ftp.gwdg.de/pub/opensuse/update/openSUSE-current/x86_64/alsa-1.1.5-lp152.8.6_lp152.9.4.1.x86_64.drpm
date: Wed, 29 Jul 2020 08:40:00 GMT

The project was implemented as a quick hack with some amount of shortcuts to make things going. The goal is to improve it over time with the main focus to do the job.

Motivation

The motivation behind this project is to rethink architecture of mirrorbrain https://github.com/poeml/mirrorbrain with following features:

  • job queue;
  • web UI;
  • fileless approach means that application doesn't require physical access to managed files;
  • properly handle http/https and ipv4/ipv6 requests by picking a mirror which is able to serve that;
  • geo-cluster feature allows to configure an instance per region, where each instance scan only mirrors from own region.

How to report issues or ask questions:

Write an email to andrii.nikitin on domain suse.com or use the issue tracker at https://github.com/openSUSE/MirrorCache/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].