mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-08 03:47:51 +00:00
protection during fragment creation
This commit is contained in:
parent
9cc003683e
commit
d31d289520
2 changed files with 16 additions and 9 deletions
|
|
@ -117,8 +117,8 @@ func (self *TopologyMapper) GetProcessFragmentCounts() map[string]int {
|
|||
for _, dbs := range self.service.Cluster.GetDatabases() {
|
||||
for _, fsi := range dbs.GetFrameSliceIntersects() {
|
||||
if fsi != nil {
|
||||
fragment := fsi.GetFragment()
|
||||
if fragment != nil {
|
||||
fragment, err := fsi.GetFragment()
|
||||
if err == nil {
|
||||
p := fragment.GetProcess()
|
||||
if p != nil {
|
||||
process := p.Id().String()
|
||||
|
|
|
|||
|
|
@ -308,14 +308,20 @@ func (d *Database) GetFrameSliceIntersect(frame *Frame, slice *Slice) (*FrameSli
|
|||
return nil, FrameSliceIntersectDoesNotExistError
|
||||
}
|
||||
|
||||
func (self *FrameSliceIntersect) GetFragment() *Fragment {
|
||||
return self.fragment
|
||||
func (self *FrameSliceIntersect) GetFragment() (*Fragment, error) {
|
||||
if self.fragment == nil {
|
||||
return nil, FragmentDoesNotExistError
|
||||
}
|
||||
if self.fragment.process == nil {
|
||||
return nil, FragmentDoesNotExistError
|
||||
}
|
||||
return self.fragment, nil
|
||||
}
|
||||
|
||||
func (d *Database) GetFragment(fragment_id util.SUUID) (*Fragment, error) {
|
||||
for _, fsi := range d.frame_slice_intersects {
|
||||
f := fsi.GetFragment()
|
||||
if f.id == fragment_id {
|
||||
f, err := fsi.GetFragment()
|
||||
if err == nil && f.id == fragment_id {
|
||||
return f, nil
|
||||
}
|
||||
}
|
||||
|
|
@ -366,7 +372,8 @@ func (d *Database) GetFragmentForBitmap(slice *Slice, bitmap *Bitmap) (*Fragment
|
|||
log.Warn(err)
|
||||
return nil, err
|
||||
}
|
||||
return fsi.GetFragment(), nil
|
||||
|
||||
return fsi.GetFragment()
|
||||
}
|
||||
|
||||
func (d *Database) GetFragmentForFrameSlice(frame *Frame, slice *Slice) (*Fragment, error) {
|
||||
|
|
@ -376,7 +383,7 @@ func (d *Database) GetFragmentForFrameSlice(frame *Frame, slice *Slice) (*Fragme
|
|||
log.Warn(err)
|
||||
return nil, err
|
||||
}
|
||||
return fsi.GetFragment(), nil
|
||||
return fsi.GetFragment()
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -402,7 +409,7 @@ func (d *Database) getFragment(frame *Frame, slice *Slice) (*Fragment, error) {
|
|||
log.Warn(err)
|
||||
return nil, err
|
||||
}
|
||||
return fsi.GetFragment(), nil
|
||||
return fsi.GetFragment()
|
||||
}
|
||||
|
||||
func (d *Database) addFragment(frame *Frame, slice *Slice, fragment_id util.SUUID) *Fragment {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue