mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-24 17:47:57 +08:00
5ce6bbf076
glide has its own requirements. My previous workaround caused me some code checkin errors. Need to fix this.
27 lines
1.2 KiB
Plaintext
27 lines
1.2 KiB
Plaintext
Design Assumptions:
|
|
1. the number of directories are magnitudely smaller than the number of files
|
|
2. unlimited number of files under any directories
|
|
Phylosophy:
|
|
metadata for directories and files should be separated
|
|
Design:
|
|
Store directories in normal map
|
|
all of directories hopefully all be in memory
|
|
efficient to move/rename/list_directories
|
|
Log directory changes to append only log file
|
|
Store files in sorted string table in <dir_id/filename> format
|
|
efficient to list_files, just simple iterator
|
|
efficient to locate files, binary search
|
|
|
|
Testing:
|
|
1. starting server, "weed server -filer=true"
|
|
2. posting files to different folders
|
|
curl -F "filename=@design.txt" "http://localhost:8888/sources/"
|
|
curl -F "filename=@design.txt" "http://localhost:8888/design/"
|
|
curl -F "filename=@directory.go" "http://localhost:8888/sources/weed/go/"
|
|
curl -F "filename=@directory.go" "http://localhost:8888/sources/testing/go/"
|
|
curl -F "filename=@filer.go" "http://localhost:8888/sources/weed/go/"
|
|
curl -F "filename=@filer_in_leveldb.go" "http://localhost:8888/sources/weed/go/"
|
|
curl "http://localhost:8888/?pretty=y"
|
|
curl "http://localhost:8888/sources/weed/go/?pretty=y"
|
|
curl "http://localhost:8888/sources/weed/go/?pretty=y"
|