aboutsummaryrefslogtreecommitdiff
path: root/weed-fs/src/cmd
diff options
context:
space:
mode:
authorchris.lu@gmail.com <chris.lu@gmail.com@282b0af5-e82d-9cf1-ede4-77906d7719d0>2011-12-19 09:18:13 +0000
committerchris.lu@gmail.com <chris.lu@gmail.com@282b0af5-e82d-9cf1-ede4-77906d7719d0>2011-12-19 09:18:13 +0000
commitd0188098304dad0e8a65818f007ef3e2cfb7abcf (patch)
tree50c87393762c5235b5c5f7ce4fbf330c5e0de052 /weed-fs/src/cmd
parentb39d1a77b41a4a7ae4ef90e014a4920b0412ee9f (diff)
downloadseaweedfs-d0188098304dad0e8a65818f007ef3e2cfb7abcf.tar.xz
seaweedfs-d0188098304dad0e8a65818f007ef3e2cfb7abcf.zip
efficiently assign file id
git-svn-id: https://weed-fs.googlecode.com/svn/trunk@17 282b0af5-e82d-9cf1-ede4-77906d7719d0
Diffstat (limited to 'weed-fs/src/cmd')
-rw-r--r--weed-fs/src/cmd/weeds.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/weed-fs/src/cmd/weeds.go b/weed-fs/src/cmd/weeds.go
index 4b3792687..5e7e9477a 100644
--- a/weed-fs/src/cmd/weeds.go
+++ b/weed-fs/src/cmd/weeds.go
@@ -8,6 +8,7 @@ import (
"http"
"json"
"log"
+ "rand"
"strconv"
"strings"
)
@@ -17,6 +18,7 @@ var (
metaFolder = flag.String("mdir", "/tmp", "data directory to store mappings")
capacity = flag.Int("capacity", 100, "maximum number of volumes to hold")
mapper *directory.Mapper
+
)
func dirReadHandler(w http.ResponseWriter, r *http.Request) {
@@ -25,12 +27,14 @@ func dirReadHandler(w http.ResponseWriter, r *http.Request) {
writeJson(w, r, machine.Server)
}
func dirWriteHandler(w http.ResponseWriter, r *http.Request) {
- machine := mapper.PickForWrite()
+ _, machine := mapper.PickForWrite()
writeJson(w, r, machine)
}
func dirPickHandler(w http.ResponseWriter, r *http.Request) {
- machine := mapper.PickForWrite()
- writeJson(w, r, machine)
+ vid, machine := mapper.PickForWrite()
+ hashcode := rand.Uint32()
+ fid := strconv.Uitoa64(vid) + "," + strconv.Uitoa64(mapper.NextFileId())+","+strconv.Uitoa64(uint64(hashcode))
+ writeJson(w, r, map[string]string{"fid":fid,"url":machine.Url})
}
func dirJoinHandler(w http.ResponseWriter, r *http.Request) {
s := r.RemoteAddr[0:strings.Index(r.RemoteAddr, ":")+1] + r.FormValue("port")