HotPotatoFS

package module
v0.0.0-...-f8499de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2013 License: BSD-3-Clause Imports: 8 Imported by: 1

README

Potato HotPotatoFS

Groupcache + FUSE 
= Read-Only, Distribute, in-Memory-Caching Filesystem in Go
= Playing catch in a group with a FUSE
= HotPotato

HotPotato is a simple, read-only, in-memory-Cacheing, FUSE filesystem used to put groupcache in front of a slow disk or network mount (nfs, s3, smb etc) on one or many machines to reduce the time needed to repeatedly read a file.

It was developed primairly for use in parralel data analysis and simulation. You can use it to speed up a parralel R, python, matlab or whatever job running via golem, qsub, gnu parralel etc without needing to rewrite the analysis code.

It is expermental software in an early state of development and may break.

It is written in go (golang) using groupcache and the bazil.org fuse library:

https://github.com/golang/groupcache

http://bazil.org/fuse/

QuickStart

With go and go path set up:

Instalation

go get github.com/ryanbressler/HotPotatoFS
go install github.com/ryanbressler/HotPotatoFS/hotpot

Single Machine

hotpot -mountpoint /hotpotato -target /nfsmount

Multi Machine

peerfile.txt:

http://host1:8080
http://host2:8080

host1:

hotpot -mountpoint /hotpotato -target /nfsmount -me http://host1:8080 -peers peerfile.txt

host2:

hotpot -mountpoint /hotpotato -target /nfsmount -me http://host2:8080 -peers peerfile.txt

Credit

HotPotatofFS was developed by members of the Shumelevich lab at the Institute for Systems Biology to support distributed computing in cancer and biomedical research as part of our work on The Cancer Genome Atlas and other projecs.

Code is under a 3 clause BSD.

Potato image copyleft David Gibbs.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ServeDir

func ServeDir(mountpoint string, target string, limit int, me string, peerlist []string)

Types

type Dir

type Dir struct {
	Node
}

func (Dir) Lookup

func (d Dir) Lookup(name string, intr fs.Intr) (fs fs.Node, error fuse.Error)

func (Dir) ReadDir

func (d Dir) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error)

type File

type File struct {
	Node
}

func (File) ReadAll

func (f File) ReadAll(intr fs.Intr) ([]byte, fuse.Error)

type Node

type Node struct {
	Path string
}

func (Node) Attr

func (n Node) Attr() fuse.Attr

type TargetDir

type TargetDir struct {
	Path string
}

func (TargetDir) Root

func (nf TargetDir) Root() (fs.Node, fuse.Error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL