Pre-release
This release is a pre-release and may not be stable for production use.
# python gridfs fuse
A FUSE wrapper around MongoDB gridfs using python and llfuse.
## Usage
```bash
gridfs_fuse --mongodb-uri="mongodb://127.0.0.1:27017" --database="gridfs_fuse" --mount-point="/mnt/gridfs_fuse" # --options=allow_other
```
### fstab example
```
mongodb://127.0.0.1:27017/gridfs_fuse.fs /mnt/gridfs_fuse gridfs defaults,allow_other 0 0
```
Note this assumes that you have the `mount.gridfs` program (or `mount_gridfs` on MacOS X) symlinked
into `/sbin/` e.g.
```bash
sudo ln -s $(which mount.gridfs) /sbin/`
```
## Requirements
* pymongo
* llfuse
## Install
Ubuntu 16.04:
```bash
sudo apt-get install libfuse python-llfuse
sudo -H pip install gridfs-fuse
```
MacOSX:
```bash
brew install osxfuse
sudo -H pip install gridfs-fuse
```
## Operations supported
* create/list/delete directories => folder support.
* read files.
* delete files.
* open and write once (like HDFS).
* rename
## Operations not supported
* modify an existing file.
* resize an existing file.
* hardlink
* symlink
* statfs
## Performance
### Setup
* AWS d2.xlarge machine.
* 4 @ 2.40Ghz (E5-2676)
* 30 gigabyte RAM
* filesystem: ext4
* block device: three instance storage disks combined with lvm.
```
lvcreate -L 3T -n mongo -i 3 -I 4096 ax /dev/xvdb /dev/xvdc /dev/xvdd
```
* mongodb 3.0.1
* mongodb storage engine WiredTiger
* mongodb compression: snappy
* mongodb cache size: 10 gigabyte
### Results
* sequential write performance: ~46 MB/s
* sequential read performance: ~90 MB/s
Write performance was tested by copying 124 files, each having a size of 9 gigabytes and different content.
Compression factor was about factor three.
Files were copied one by one => no parallel execution.
Read performance was tested by randomly picking 10 files out of the 124.
Files were read one by one => no parallel execution.
```bash
# Simple illustration of the commands used (not the full script).
# Write
pv -pr /tmp/big_file${file_number} /mnt/gridfs_fuse/
# Read
pv -pr /mnt/gridfs_fuse${file_number} > /dev/null
```
A FUSE wrapper around MongoDB gridfs using python and llfuse.
## Usage
```bash
gridfs_fuse --mongodb-uri="mongodb://127.0.0.1:27017" --database="gridfs_fuse" --mount-point="/mnt/gridfs_fuse" # --options=allow_other
```
### fstab example
```
mongodb://127.0.0.1:27017/gridfs_fuse.fs /mnt/gridfs_fuse gridfs defaults,allow_other 0 0
```
Note this assumes that you have the `mount.gridfs` program (or `mount_gridfs` on MacOS X) symlinked
into `/sbin/` e.g.
```bash
sudo ln -s $(which mount.gridfs) /sbin/`
```
## Requirements
* pymongo
* llfuse
## Install
Ubuntu 16.04:
```bash
sudo apt-get install libfuse python-llfuse
sudo -H pip install gridfs-fuse
```
MacOSX:
```bash
brew install osxfuse
sudo -H pip install gridfs-fuse
```
## Operations supported
* create/list/delete directories => folder support.
* read files.
* delete files.
* open and write once (like HDFS).
* rename
## Operations not supported
* modify an existing file.
* resize an existing file.
* hardlink
* symlink
* statfs
## Performance
### Setup
* AWS d2.xlarge machine.
* 4 @ 2.40Ghz (E5-2676)
* 30 gigabyte RAM
* filesystem: ext4
* block device: three instance storage disks combined with lvm.
```
lvcreate -L 3T -n mongo -i 3 -I 4096 ax /dev/xvdb /dev/xvdc /dev/xvdd
```
* mongodb 3.0.1
* mongodb storage engine WiredTiger
* mongodb compression: snappy
* mongodb cache size: 10 gigabyte
### Results
* sequential write performance: ~46 MB/s
* sequential read performance: ~90 MB/s
Write performance was tested by copying 124 files, each having a size of 9 gigabytes and different content.
Compression factor was about factor three.
Files were copied one by one => no parallel execution.
Read performance was tested by randomly picking 10 files out of the 124.
Files were read one by one => no parallel execution.
```bash
# Simple illustration of the commands used (not the full script).
# Write
pv -pr /tmp/big_file${file_number} /mnt/gridfs_fuse/
# Read
pv -pr /mnt/gridfs_fuse${file_number} > /dev/null
```
Metadata
Release files for gridfs-fuse 0.1.2.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gridfs_fuse-0.1.2.dev1.tar.gz | 10.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gridfs_fuse-0.1.2.dev1-py3-none-any.whl | Python 3 | none | any | Details |
| gridfs_fuse-0.1.2.dev1-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 35.6 kB
Release files / gridfs_fuse-0.1.2.dev1.tar.gz
| Download URL | gridfs_fuse-0.1.2.dev1.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b7b75c54c100f10ef6afc9ab0d950c5df9a17cb1c8a352ea7e54c3e45be690e
|
|
BLAKE2b-256 checksum How to use checksums |
15404bca1eb18a2e21a16859ade87737c8191b8686dc9491bd267a5d4e2153df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / gridfs_fuse-0.1.2.dev1-py3-none-any.whl
| Download URL | gridfs_fuse-0.1.2.dev1-py3-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2759848858121cfc5120c2bc82f2232894c57dd0dd5d3e8061f7df9ea7b8dff3
|
|
BLAKE2b-256 checksum How to use checksums |
c4a9c57fae09b6f977d6a67d6e6a178db2bdfa4b2e40fbc611f8ba88afce235d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / gridfs_fuse-0.1.2.dev1-py2-none-any.whl
| Download URL | gridfs_fuse-0.1.2.dev1-py2-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
e5fbf92c3383c7458e03bdbf3b6091d7eb53a170d6d1818dd315778d75705c67
|
|
BLAKE2b-256 checksum How to use checksums |
7f3e8beb97e02e7bad6276230a29a59016dae9ada4585ba12d579940cabbc320
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |