Skip to content

Latest commit

 

History

History
73 lines (64 loc) · 2.6 KB

goals.org

File metadata and controls

73 lines (64 loc) · 2.6 KB

Middleware Functionality

Storage node

load from config

unit test on configuration/initialization of StorageNode

make volume store files

make virtual volume store files into volumes

make upload service put chunks from volume into storage

make hosting service take chunks from storage and yield them into pipe

request/response parser

Master node

load from config

make transaction flow for upload increment filebucket stored file size, but decrease if the upload fails

initialization packet send/receive to cluster

initialization packet from client upload

finalization packet from client upload

initialization packet from client file request

authorization packet to client for file request, get filebucket id

receive & approve or reject authorization code from storage cluster to store file

request/response parser

Client node

General

Make storage class use hashing Id rather than atomic int for file ids

make Id class use bitset internally

Make client use its own namespace

better hashing mechanism for files, non-int ids

remove META file necessity (buckets should have uuid)

storage node/master node distinction

spawn should load from configuration for storage nodes

make FileBucketRegistry and VolumeRegistry use same base class

converter changes

convertInput -> deserialize

convertField -> deserializeField

convertToValue -> serialize

make Volume an abstract class like FileStorage?

Dockerfiles for master node, storage node, and client node

replication strategy class (geolocation, backup, & )

owned filebuckets

Testing

Split up unit tests and integrations tests into different folders

basic serialization/deserialization tests for StorageClusterNode, MasterNode, VirtualVolume

Integration testing

revise filehosting

revise fileuploading

Unit testing

Volume

creation

VirtualVolume

commit new StorageVolume

addFileBucketVolume

“mount” existing volume - i.e. loadDb and fbVolDb

StorageVolume

creation

StorageVolumeManager

new StorageVolume

setSize

StorageClusterMarshaller

marshall instance from config

VolumeMarshaller load from JSON into Volume instance

Protocol

StorageClusterNode initialization request/response

Master StorageClusterNode initialization acknowledgment request/response