Giter Site home page Giter Site logo

objectfs / objectfs Goto Github PK

View Code? Open in Web Editor NEW
28.0 5.0 3.0 473 KB

A file system with the power of an object store.

License: Apache License 2.0

Python 95.51% Shell 4.49%
aws-s3 openstack-swift fuse-filesystem google-cloud-storage fuse s3 posix-compliant

objectfs's Introduction

ObjectFS

A file system with the power of an object store.

Hex.pm Build Status

ObjectFS allows you to mount a generic object store as a file system. It is POSIX complete and compatible with AWS S3, Google Cloud Storage, OpenStack Swift and other S3-based object stores.

Usage

  • Make file-system
./objectfs_cli make <filesystem-name>
  • Mount file-system
./objectfs_cli mount <filesystem-name> <mount-point>
  • List all file-systems
./objectfs_cli list
  • Delete file-system
./objectfs_cli delete <filesystem-name>

Architecture

ObjectFS is a file system which uses object storage as a backend. It's goal is to provide:

  • Access data via both file system and object interfaces
  • Support multiple object stores
  • Portable across multiple operating systems

The high-level architecture of ObjectFS: Overview

A stack overview of ObjectFS: Client

A file in ObjectFS: File Structure

Contributing

Please submit bug reports as git issues and label them as a bug. If you have feature requests, questions please free to open git issues for the same and label them appropriately. You can also contribute code or bug fixes by opening a pull request.

objectfs's People

Contributors

kunallillaney avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

objectfs's Issues

Refactor objectfs_operations.py

We have multiple existing configurations (no cache, cache, multi-part) and more coming. Creating a class per configuration will be easier to manage and debug. Some methods which have significant overlap can be inherited.

Mount an existing object-store to file-system

Ability to mount an existing object-store with objects as a file-system
Write a organizer script which groups different objects based on Content-Type/file-extensions
Add the FS meta-data for these objects in key-value store

List existing file systems

Currently, we base this of bucket list which is incomplete. There are three possibilities:

  1. Both metadata exists and bucket exists. File system present
  2. Metadata does not exist but bucket exists. Uninitialized file system
  3. Metadata exists but no bucket. Zombie file system.

Redis connection_pool causes single client

The singleton class implementation over the redis connection pool is not working as expected. It causes only a single connection to be opened to the remote redis. The expected behavior is to pen upto max_connections set by the user. By default this is 10.

The go-around for now is to use individual redis client connections which work as expected but don't have the advantage of limiting the number of connections.

Asychronous deletion of objects

For large file-systems (>90,000 inodes) the time for deletion is limited by object deletion time.
Solution:

delete the file-metadata from the metadata server instantly
delete the objects later

Ready for Production?

Hi, is ObjectFS ready to use in a production environment? and, is the project still active?

Incorrect loading of object into cache

This issue was discovered when trying to boot a node using the the file system with cache activated
Suspected that some operation is unhanded in which object should be loaded but only the key is created

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.