mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
AddFragment method
This commit is contained in:
parent
e72d147c3d
commit
f33cbdf168
2 changed files with 17 additions and 5 deletions
|
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
var FrameDoesNotExistError = errors.New("Frame does not exist.")
|
||||
var SliceDoesNotExistError = errors.New("Slice does not exist.")
|
||||
var FragmentDoesNotExistError = errors.New("Fragment does not exist.")
|
||||
var FrameSliceIntersectDoesNotExistError = errors.New("FrameSliceIntersect does not exist.")
|
||||
|
||||
type Location struct {
|
||||
|
|
@ -67,10 +68,19 @@ type Frame struct {
|
|||
type FrameSliceIntersect struct {
|
||||
slice *Slice
|
||||
frame *Frame
|
||||
Fragments []Fragment
|
||||
Fragments []*Fragment
|
||||
Hashring *consistent.Consistent
|
||||
}
|
||||
|
||||
func (fsi *FrameSliceIntersect) GetFragment(fragment_id int) (*Fragment, error) {
|
||||
for _, fragment := range fsi.Fragments {
|
||||
if fragment.id == fragment_id {
|
||||
return fragment, nil
|
||||
}
|
||||
}
|
||||
return nil, FragmentDoesNotExistError
|
||||
}
|
||||
|
||||
// Add a slice to a database
|
||||
func (d *Database) AddSlice(slice_id int) *Slice {
|
||||
slice := Slice{id: slice_id}
|
||||
|
|
@ -143,7 +153,7 @@ func (d *Database) AddFragment(frame *Frame, slice *Slice, process *Process, fra
|
|||
|
||||
frameslice, _ := d.GetFrameSliceIntersect(frame, slice)
|
||||
fragment := Fragment{process: process, id: fragment_id}
|
||||
frameslice.Fragments = append(frameslice.Fragments, fragment)
|
||||
frameslice.Fragments = append(frameslice.Fragments, &fragment)
|
||||
|
||||
frameslice.Hashring.Add(fmt.Sprintf("%d", fragment_id))
|
||||
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ func TestTopology(t *testing.T) {
|
|||
database := cluster.AddDatabase("property49")
|
||||
database.AddFrame("general")
|
||||
//database.AddFrame("brands")
|
||||
database.AddSlice()
|
||||
database.AddSlice()
|
||||
database.AddSlice(0)
|
||||
database.AddSlice(1)
|
||||
//database.AddSlice()
|
||||
|
||||
log.Println(database)
|
||||
|
|
@ -41,7 +41,7 @@ func TestTopology(t *testing.T) {
|
|||
frame, _ := database.GetFrame("general")
|
||||
slice, _ := database.GetSlice(0)
|
||||
|
||||
loc1, _ := NewLocation("192.168.1.100:8001")
|
||||
//loc1, _ := NewLocation("192.168.1.100:8001")
|
||||
/*
|
||||
loc2, _ := NewLocation("192.168.1.100:8002")
|
||||
loc3, _ := NewLocation("192.168.1.100:8003")
|
||||
|
|
@ -49,11 +49,13 @@ func TestTopology(t *testing.T) {
|
|||
loc5, _ := NewLocation("192.168.1.100:8005")
|
||||
*/
|
||||
|
||||
/*
|
||||
database.AddFragment(frame, slice, loc1, 0)
|
||||
database.AddFragment(frame, slice, loc1, 1)
|
||||
database.AddFragment(frame, slice, loc1, 2)
|
||||
database.AddFragment(frame, slice, loc1, 3)
|
||||
database.AddFragment(frame, slice, loc1, 4)
|
||||
*/
|
||||
|
||||
|
||||
fsi, _ := database.GetFrameSliceIntersect(frame, slice)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue