Code Monkey home page Code Monkey logo

pojntfx / networked-linux-memsync Goto Github PK

View Code? Open in Web Editor NEW
16.0 1.0 0.0 711.32 MB

Efficient Synchronization of Linux Memory Regions over a Network: A Comparative Study and Implementation (Bachelor's Thesis)

Home Page: https://pojntfx.github.io/networked-linux-memsync/

License: Apache License 2.0

Go 4.81% Shell 1.26% Jupyter Notebook 93.60% Makefile 0.34%
hdm-stuttgart inotify mmap performance-evaluation userfaultfd custom-filesystem delta-synchronization linux-memory-management live-migration nbd

networked-linux-memsync's Introduction

Efficient Synchronization of Linux Memory Regions over a Network: A Comparative Study and Implementation

Bachelor's thesis by Felicitas Pojtinger.

University: Hochschule der Medien Stuttgart
Course of Study: Media Informatics
Date: 2023-08-03
Academic Degree: Bachelor of Science
Primary Supervisor: Prof. Dr. Martin Goik
Secondary Supervisor: M.Sc. Philip Betzler

Deliverance CI

Abstract

Current solutions for access, synchronization and migration of resources over a network are characterized by application-specific protocols and interfaces, which result in fragmentation and barriers to adoption. This thesis aims to address these issues by presenting a universal approach that enables direct operation on a memory region, circumventing the need for custom-built solutions. Various methods to achieve this are evaluated on parameters such as implementation overhead, initialization time, latency and throughput, and an outline of each method's architectural constraints and optimizations is provided. The proposed solution is suitable for both LAN and WAN environments, thanks to a novel approach based on block devices in user space with background push and pull mechanisms. It offers a unified API that enables mounting and migration of nearly any state over a network with minimal changes to existing applications. Illustrations of real-world use cases, configurations and backends are provided, together with a production-ready reference implementation of the full mount and migration APIs via the open-source r3map (remote mmap) library.

Overview

This repository contains the LaTeX and Markdown markup, as well as citations, benchmarks and visualization code for the thesis. The resulting built document is published as a PDF by CI/CD:

Thesis badge for Pojtinger, F. (2023). Efficient Synchronization of Linux Memory Regions over a Network: A Comparative Study and Implementation

The accompanying reference implementation of the presented approach for working with remote memory regions and migrating them between hosts, r3map, can also be found on GitHub:

Badge for the r3map library

Looking for an even higher-performance, production-ready library? Check out Loophole Labs Silo. Silo is an alternative implementation of a subset of r3map's features that focuses on performance and offers support for continuous, push-based migrations.

Additionally, you can find the thesis in different formats such as HTML and EPUB on GitHub pages, download them from GitHub releases or check out the source on GitHub. If you want to cite this work, see CITATION.cff.

Contributing

To contribute, please use the GitHub flow and follow our Code of Conduct.

To build and open a note locally, run the following:

$ git clone https://github.com/pojntfx/networked-linux-memsync.git
$ cd networked-linux-memsync
$ ./configure
$ make depend
$ make dev-pdf/your-note # Use Bash completion to list available targets
# In another terminal
$ make open-pdf/your-note # Use Bash completion to list available targets

The note should now be opened. Whenever you change a source file, it will automatically be re-compiled.

License

Efficient Synchronization of Linux Memory Regions over a Network: A Comparative Study and Implementation (c) 2024 Felicitas Pojtinger and contributors

SPDX-License-Identifier: Apache-2.0

networked-linux-memsync's People

Contributors

pojntfx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.