mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-23 17:07:57 +08:00
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"
|