From e2d7b878f1c40518ad9c507eeceb792838740147 Mon Sep 17 00:00:00 2001 From: Todd Gruben Date: Mon, 13 Jan 2014 14:03:58 -0600 Subject: [PATCH] storage check --- index/fragment_container.go | 18 ++++++++++++++++-- index/fragment_container_test.go | 2 +- index/storage_kvlite.go | 5 ++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/index/fragment_container.go b/index/fragment_container.go index 17045d219..052a6091c 100644 --- a/index/fragment_container.go +++ b/index/fragment_container.go @@ -147,16 +147,30 @@ type Fragment struct { mesg_time time.Duration } +func getStorage(db string, slice int, frame string) Storage { + choice := 2 + switch choice { + case 1: + return NewMemoryStorage() + case 2: + s, _ := NewKVStorage("/tmp/pilosa/", slice, db) + return s + case 3: + return NewCassStorage() + } + return nil +} + func NewFragment(frag_id SUUID, db string, slice int, frame string) *Fragment { var impl Pilosa log.Println("XXXXXXXXXXXXXXXXXXXXXXXXXXXX", frame) switch frame { default: log.Println("General") - impl = NewGeneral(db, slice, NewMemoryStorage()) + impl = NewGeneral(db, slice, getStorage(db, slice, frame)) case "Brand": log.Println("Brand") - impl = NewBrand(db, slice, NewMemoryStorage(), 50000, 45000, 100) + impl = NewBrand(db, slice, getStorage(db, slice, frame), 50000, 45000, 100) } f := new(Fragment) diff --git a/index/fragment_container_test.go b/index/fragment_container_test.go index 172d056f9..3129b7875 100644 --- a/index/fragment_container_test.go +++ b/index/fragment_container_test.go @@ -40,7 +40,7 @@ func TestFragment(t *testing.T) { bi1 := uint64(1234) bi2 := uint64(4321) - dummy.SetBit(general, bi2, 2) //set_bit creates the bitmap + dummy.SetBit(general, bi2, 65537) //set_bit creates the bitmap bh1, _ := dummy.Get(general, bi1) bh2, _ := dummy.Get(general, bi2) diff --git a/index/storage_kvlite.go b/index/storage_kvlite.go index 6b0ce3642..451b8da79 100644 --- a/index/storage_kvlite.go +++ b/index/storage_kvlite.go @@ -20,7 +20,10 @@ func NewKVStorage(path string, slice int, db string) (Storage, error) { // log.Println("Hello") obj := new(KVStorage) - f, err := os.Create(fmt.Sprintf("%sKV.%s.%d", path, db, slice)) + base_path := fmt.Sprintf("%s/%s", path, db) + os.MkdirAll(base_path, 0755) + + f, err := os.Create(fmt.Sprintf("%s/%d.kvlite", base_path, slice)) s, err := gkvlite.NewStore(f) obj.cc = s.SetCollection(db, nil)