Skip to content

ReGrid File Storage

Brian Chavez edited this page Jan 30, 2016 · 64 revisions

What is ReGrid?

ReGrid is a file system on top of RethinkDB. ReGrid is similarly inspired by GridFS by MongoDB. With ReGrid, a large 4GB file can be broken up into chunks and stored on RethinkDB servers. The figure below shows conceptually how ReGrid stores a large video file in chunks across a three node cluster.

(*Note:* Please ask permission before copying and using figures in presentations, videos, or other works)

Getting Started

Buckets

A Bucket is a logical file system for a set of files. All file mutations are performed using a Bucket.

rg Command Line Utility

### List files in /foo folder, using localhost as default

rg ls /foo


### List root files in cluster with a well-known IP 192.168.0.4

rg 192.168.0.4 ls /
rg 192.168.0.4:2802 ls /
rg 192.168.0.4 ls /folder

### Get file metadata on /path/video.mp4 and any past revisions
 
rg 192.168.0.4 info /path/video.mp4


### Copy video.mp4 from the local computer and send it
### to the cluster at 192.168.0.4 but wait until there
### is a pooled connection of at least 5 servers to
### increase fan-out write-performance.

rg 192.168.0.4 -pool 5 put ./video.mp4 /video_uploads/video.mp4


### Create a file video.mp4 on the local computer and
### receive it from the cluster at 192.168.0.4 but wait until there
### is a pooled connection of at least 5 servers to
### increase fan-in read-performance.

rg 192.168.0.4 -pool 5 get /video_uploads/video.mp4 ./video.mp4


### Perform a sha256 integrety check on video.mp4

rg 192.168.0.4 fsck /path/video.mp4


### Reclaim diskspace by cleaning up orphaned file chunks or soft-deleted files.

rg 192.168.0.4 cleanup

Clone this wiki locally