mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
Merge pull request #1374 from travisturner/global-consts
un-export package level consts
This commit is contained in:
commit
6e804d8d51
10 changed files with 93 additions and 95 deletions
26
attr.go
26
attr.go
|
|
@ -24,10 +24,10 @@ import (
|
|||
|
||||
// Attribute data type enum.
|
||||
const (
|
||||
AttrTypeString = 1
|
||||
AttrTypeInt = 2
|
||||
AttrTypeBool = 3
|
||||
AttrTypeFloat = 4
|
||||
attrTypeString = 1
|
||||
attrTypeInt = 2
|
||||
attrTypeBool = 3
|
||||
attrTypeFloat = 4
|
||||
)
|
||||
|
||||
// AttrStore represents an interface for handling row/column attributes.
|
||||
|
|
@ -165,19 +165,19 @@ func encodeAttr(key string, value interface{}) *internal.Attr {
|
|||
pb := &internal.Attr{Key: key}
|
||||
switch value := value.(type) {
|
||||
case string:
|
||||
pb.Type = AttrTypeString
|
||||
pb.Type = attrTypeString
|
||||
pb.StringValue = value
|
||||
case float64:
|
||||
pb.Type = AttrTypeFloat
|
||||
pb.Type = attrTypeFloat
|
||||
pb.FloatValue = value
|
||||
case uint64:
|
||||
pb.Type = AttrTypeInt
|
||||
pb.Type = attrTypeInt
|
||||
pb.IntValue = int64(value)
|
||||
case int64:
|
||||
pb.Type = AttrTypeInt
|
||||
pb.Type = attrTypeInt
|
||||
pb.IntValue = value
|
||||
case bool:
|
||||
pb.Type = AttrTypeBool
|
||||
pb.Type = attrTypeBool
|
||||
pb.BoolValue = value
|
||||
}
|
||||
return pb
|
||||
|
|
@ -186,13 +186,13 @@ func encodeAttr(key string, value interface{}) *internal.Attr {
|
|||
// decodeAttr converts from an Attr internal representation to a key/value pair.
|
||||
func decodeAttr(attr *internal.Attr) (key string, value interface{}) {
|
||||
switch attr.Type {
|
||||
case AttrTypeString:
|
||||
case attrTypeString:
|
||||
return attr.Key, attr.StringValue
|
||||
case AttrTypeInt:
|
||||
case attrTypeInt:
|
||||
return attr.Key, attr.IntValue
|
||||
case AttrTypeBool:
|
||||
case attrTypeBool:
|
||||
return attr.Key, attr.BoolValue
|
||||
case AttrTypeFloat:
|
||||
case attrTypeFloat:
|
||||
return attr.Key, attr.FloatValue
|
||||
default:
|
||||
return attr.Key, nil
|
||||
|
|
|
|||
90
broadcast.go
90
broadcast.go
|
|
@ -120,21 +120,21 @@ func (n *nopGossiper) SendAsync(pb proto.Message) error {
|
|||
|
||||
// Broadcast message types.
|
||||
const (
|
||||
MessageTypeCreateSlice = iota
|
||||
MessageTypeCreateIndex
|
||||
MessageTypeDeleteIndex
|
||||
MessageTypeCreateField
|
||||
MessageTypeDeleteField
|
||||
MessageTypeCreateView
|
||||
MessageTypeDeleteView
|
||||
MessageTypeClusterStatus
|
||||
MessageTypeResizeInstruction
|
||||
MessageTypeResizeInstructionComplete
|
||||
MessageTypeSetCoordinator
|
||||
MessageTypeUpdateCoordinator
|
||||
MessageTypeNodeState
|
||||
MessageTypeRecalculateCaches
|
||||
MessageTypeNodeEvent
|
||||
messageTypeCreateSlice = iota
|
||||
messageTypeCreateIndex
|
||||
messageTypeDeleteIndex
|
||||
messageTypeCreateField
|
||||
messageTypeDeleteField
|
||||
messageTypeCreateView
|
||||
messageTypeDeleteView
|
||||
messageTypeClusterStatus
|
||||
messageTypeResizeInstruction
|
||||
messageTypeResizeInstructionComplete
|
||||
messageTypeSetCoordinator
|
||||
messageTypeUpdateCoordinator
|
||||
messageTypeNodeState
|
||||
messageTypeRecalculateCaches
|
||||
messageTypeNodeEvent
|
||||
)
|
||||
|
||||
// MarshalMessage encodes the protobuf message into a byte slice.
|
||||
|
|
@ -142,35 +142,35 @@ func MarshalMessage(m proto.Message) ([]byte, error) {
|
|||
var typ uint8
|
||||
switch obj := m.(type) {
|
||||
case *internal.CreateSliceMessage:
|
||||
typ = MessageTypeCreateSlice
|
||||
typ = messageTypeCreateSlice
|
||||
case *internal.CreateIndexMessage:
|
||||
typ = MessageTypeCreateIndex
|
||||
typ = messageTypeCreateIndex
|
||||
case *internal.DeleteIndexMessage:
|
||||
typ = MessageTypeDeleteIndex
|
||||
typ = messageTypeDeleteIndex
|
||||
case *internal.CreateFieldMessage:
|
||||
typ = MessageTypeCreateField
|
||||
typ = messageTypeCreateField
|
||||
case *internal.DeleteFieldMessage:
|
||||
typ = MessageTypeDeleteField
|
||||
typ = messageTypeDeleteField
|
||||
case *internal.CreateViewMessage:
|
||||
typ = MessageTypeCreateView
|
||||
typ = messageTypeCreateView
|
||||
case *internal.DeleteViewMessage:
|
||||
typ = MessageTypeDeleteView
|
||||
typ = messageTypeDeleteView
|
||||
case *internal.ClusterStatus:
|
||||
typ = MessageTypeClusterStatus
|
||||
typ = messageTypeClusterStatus
|
||||
case *internal.ResizeInstruction:
|
||||
typ = MessageTypeResizeInstruction
|
||||
typ = messageTypeResizeInstruction
|
||||
case *internal.ResizeInstructionComplete:
|
||||
typ = MessageTypeResizeInstructionComplete
|
||||
typ = messageTypeResizeInstructionComplete
|
||||
case *internal.SetCoordinatorMessage:
|
||||
typ = MessageTypeSetCoordinator
|
||||
typ = messageTypeSetCoordinator
|
||||
case *internal.UpdateCoordinatorMessage:
|
||||
typ = MessageTypeUpdateCoordinator
|
||||
typ = messageTypeUpdateCoordinator
|
||||
case *internal.NodeStateMessage:
|
||||
typ = MessageTypeNodeState
|
||||
typ = messageTypeNodeState
|
||||
case *internal.RecalculateCaches:
|
||||
typ = MessageTypeRecalculateCaches
|
||||
typ = messageTypeRecalculateCaches
|
||||
case *internal.NodeEventMessage:
|
||||
typ = MessageTypeNodeEvent
|
||||
typ = messageTypeNodeEvent
|
||||
default:
|
||||
return nil, fmt.Errorf("message type not implemented for marshalling: %s", reflect.TypeOf(obj))
|
||||
}
|
||||
|
|
@ -187,35 +187,35 @@ func UnmarshalMessage(buf []byte) (proto.Message, error) {
|
|||
|
||||
var m proto.Message
|
||||
switch typ {
|
||||
case MessageTypeCreateSlice:
|
||||
case messageTypeCreateSlice:
|
||||
m = &internal.CreateSliceMessage{}
|
||||
case MessageTypeCreateIndex:
|
||||
case messageTypeCreateIndex:
|
||||
m = &internal.CreateIndexMessage{}
|
||||
case MessageTypeDeleteIndex:
|
||||
case messageTypeDeleteIndex:
|
||||
m = &internal.DeleteIndexMessage{}
|
||||
case MessageTypeCreateField:
|
||||
case messageTypeCreateField:
|
||||
m = &internal.CreateFieldMessage{}
|
||||
case MessageTypeDeleteField:
|
||||
case messageTypeDeleteField:
|
||||
m = &internal.DeleteFieldMessage{}
|
||||
case MessageTypeCreateView:
|
||||
case messageTypeCreateView:
|
||||
m = &internal.CreateViewMessage{}
|
||||
case MessageTypeDeleteView:
|
||||
case messageTypeDeleteView:
|
||||
m = &internal.DeleteViewMessage{}
|
||||
case MessageTypeClusterStatus:
|
||||
case messageTypeClusterStatus:
|
||||
m = &internal.ClusterStatus{}
|
||||
case MessageTypeResizeInstruction:
|
||||
case messageTypeResizeInstruction:
|
||||
m = &internal.ResizeInstruction{}
|
||||
case MessageTypeResizeInstructionComplete:
|
||||
case messageTypeResizeInstructionComplete:
|
||||
m = &internal.ResizeInstructionComplete{}
|
||||
case MessageTypeSetCoordinator:
|
||||
case messageTypeSetCoordinator:
|
||||
m = &internal.SetCoordinatorMessage{}
|
||||
case MessageTypeUpdateCoordinator:
|
||||
case messageTypeUpdateCoordinator:
|
||||
m = &internal.UpdateCoordinatorMessage{}
|
||||
case MessageTypeNodeState:
|
||||
case messageTypeNodeState:
|
||||
m = &internal.NodeStateMessage{}
|
||||
case MessageTypeRecalculateCaches:
|
||||
case messageTypeRecalculateCaches:
|
||||
m = &internal.RecalculateCaches{}
|
||||
case MessageTypeNodeEvent:
|
||||
case messageTypeNodeEvent:
|
||||
m = &internal.NodeEventMessage{}
|
||||
default:
|
||||
return nil, fmt.Errorf("invalid message type: %d", typ)
|
||||
|
|
|
|||
6
cache.go
6
cache.go
|
|
@ -27,8 +27,8 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// ThresholdFactor is used to calculate the threshold for new items entering the cache
|
||||
ThresholdFactor = 1.1
|
||||
// thresholdFactor is used to calculate the threshold for new items entering the cache
|
||||
thresholdFactor = 1.1
|
||||
)
|
||||
|
||||
// Cache represents a cache of counts.
|
||||
|
|
@ -158,7 +158,7 @@ type RankCache struct {
|
|||
func NewRankCache(maxEntries uint32) *RankCache {
|
||||
return &RankCache{
|
||||
maxEntries: maxEntries,
|
||||
thresholdBuffer: int(ThresholdFactor * float64(maxEntries)),
|
||||
thresholdBuffer: int(thresholdFactor * float64(maxEntries)),
|
||||
entries: make(map[uint64]uint64),
|
||||
stats: NopStatsClient,
|
||||
}
|
||||
|
|
|
|||
16
executor.go
16
executor.go
|
|
@ -25,13 +25,13 @@ import (
|
|||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// DefaultField is the field used if one is not specified.
|
||||
// defaultField is the field used if one is not specified.
|
||||
const (
|
||||
DefaultField = "general"
|
||||
defaultField = "general"
|
||||
|
||||
// MinThreshold is the lowest count to use in a Top-N operation when
|
||||
// defaultMinThreshold is the lowest count to use in a Top-N operation when
|
||||
// looking for additional id/count pairs.
|
||||
MinThreshold = 1
|
||||
defaultMinThreshold = 1
|
||||
|
||||
columnLabel = "col"
|
||||
rowLabel = "row"
|
||||
|
|
@ -588,7 +588,7 @@ func (e *Executor) executeTopNSlice(ctx context.Context, index string, c *pql.Ca
|
|||
|
||||
// Set default field.
|
||||
if field == "" {
|
||||
field = DefaultField
|
||||
field = defaultField
|
||||
}
|
||||
|
||||
f := e.Holder.Fragment(index, field, ViewStandard, slice)
|
||||
|
|
@ -597,7 +597,7 @@ func (e *Executor) executeTopNSlice(ctx context.Context, index string, c *pql.Ca
|
|||
}
|
||||
|
||||
if minThreshold <= 0 {
|
||||
minThreshold = MinThreshold
|
||||
minThreshold = defaultMinThreshold
|
||||
}
|
||||
|
||||
if tanimotoThreshold > 100 {
|
||||
|
|
@ -646,7 +646,7 @@ func (e *Executor) executeBitmapSlice(ctx context.Context, index string, c *pql.
|
|||
// Fetch field & row label based on argument.
|
||||
field, _ := c.Args["field"].(string)
|
||||
if field == "" {
|
||||
field = DefaultField
|
||||
field = defaultField
|
||||
}
|
||||
f := e.Holder.Field(index, field)
|
||||
if f == nil {
|
||||
|
|
@ -700,7 +700,7 @@ func (e *Executor) executeRangeSlice(ctx context.Context, index string, c *pql.C
|
|||
// Parse field, use default if unset.
|
||||
field, _ := c.Args["field"].(string)
|
||||
if field == "" {
|
||||
field = DefaultField
|
||||
field = defaultField
|
||||
}
|
||||
|
||||
// Retrieve column label.
|
||||
|
|
|
|||
8
field.go
8
field.go
|
|
@ -33,10 +33,10 @@ import (
|
|||
const (
|
||||
DefaultFieldType = FieldTypeSet
|
||||
|
||||
DefaultCacheType = CacheTypeRanked
|
||||
defaultCacheType = CacheTypeRanked
|
||||
|
||||
// Default ranked field cache
|
||||
DefaultCacheSize = 50000
|
||||
defaultCacheSize = 50000
|
||||
)
|
||||
|
||||
// Field types.
|
||||
|
|
@ -101,8 +101,8 @@ func NewField(path, index, name string, opts ...FieldOption) (*Field, error) {
|
|||
|
||||
options: FieldOptions{
|
||||
Type: DefaultFieldType,
|
||||
CacheType: DefaultCacheType,
|
||||
CacheSize: DefaultCacheSize,
|
||||
CacheType: defaultCacheType,
|
||||
CacheSize: defaultCacheSize,
|
||||
},
|
||||
|
||||
Logger: NopLogger,
|
||||
|
|
|
|||
30
fragment.go
30
fragment.go
|
|
@ -48,22 +48,20 @@ const (
|
|||
// SliceWidth is the number of column IDs in a slice.
|
||||
SliceWidth = 1048576
|
||||
|
||||
// SnapshotExt is the file extension used for an in-process snapshot.
|
||||
SnapshotExt = ".snapshotting"
|
||||
// snapshotExt is the file extension used for an in-process snapshot.
|
||||
snapshotExt = ".snapshotting"
|
||||
|
||||
// CopyExt is the file extension used for the temp file used while copying.
|
||||
CopyExt = ".copying"
|
||||
// copyExt is the file extension used for the temp file used while copying.
|
||||
copyExt = ".copying"
|
||||
|
||||
// CacheExt is the file extension for persisted cache ids.
|
||||
CacheExt = ".cache"
|
||||
// cacheExt is the file extension for persisted cache ids.
|
||||
cacheExt = ".cache"
|
||||
|
||||
// HashBlockSize is the number of rows in a merkle hash block.
|
||||
HashBlockSize = 100
|
||||
)
|
||||
|
||||
const (
|
||||
// DefaultFragmentMaxOpN is the default value for Fragment.MaxOpN.
|
||||
DefaultFragmentMaxOpN = 2000
|
||||
// defaultFragmentMaxOpN is the default value for Fragment.MaxOpN.
|
||||
defaultFragmentMaxOpN = 2000
|
||||
)
|
||||
|
||||
// Fragment represents the intersection of a field and slice in an index.
|
||||
|
|
@ -120,18 +118,18 @@ func NewFragment(path, index, field, view string, slice uint64) *Fragment {
|
|||
field: field,
|
||||
view: view,
|
||||
slice: slice,
|
||||
CacheType: DefaultCacheType,
|
||||
CacheSize: DefaultCacheSize,
|
||||
CacheType: defaultCacheType,
|
||||
CacheSize: defaultCacheSize,
|
||||
|
||||
Logger: NopLogger,
|
||||
MaxOpN: DefaultFragmentMaxOpN,
|
||||
MaxOpN: defaultFragmentMaxOpN,
|
||||
|
||||
stats: NopStatsClient,
|
||||
}
|
||||
}
|
||||
|
||||
// cachePath returns the path to the fragment's cache data.
|
||||
func (f *Fragment) cachePath() string { return f.path + CacheExt }
|
||||
func (f *Fragment) cachePath() string { return f.path + cacheExt }
|
||||
|
||||
// Open opens the underlying storage.
|
||||
func (f *Fragment) Open() error {
|
||||
|
|
@ -1432,7 +1430,7 @@ func (f *Fragment) snapshot() error {
|
|||
defer track(start, completeMessage, f.stats, f.Logger)
|
||||
|
||||
// Create a temporary file to snapshot to.
|
||||
snapshotPath := f.path + SnapshotExt
|
||||
snapshotPath := f.path + snapshotExt
|
||||
file, err := os.Create(snapshotPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("create snapshot file: %s", err)
|
||||
|
|
@ -1636,7 +1634,7 @@ func (f *Fragment) ReadFrom(r io.Reader) (n int64, err error) {
|
|||
|
||||
func (f *Fragment) readStorageFromArchive(r io.Reader) error {
|
||||
// Create a temporary file to copy into.
|
||||
path := f.path + CopyExt
|
||||
path := f.path + copyExt
|
||||
file, err := os.Create(path)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "creating directory")
|
||||
|
|
|
|||
|
|
@ -1245,7 +1245,7 @@ func mustOpenFragment(index, field, view string, slice uint64, cacheType string)
|
|||
file.Close()
|
||||
|
||||
if cacheType == "" {
|
||||
cacheType = DefaultCacheType
|
||||
cacheType = defaultCacheType
|
||||
}
|
||||
|
||||
f := NewFragment(file.Name(), index, field, view, slice)
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// DefaultCacheFlushInterval is the default value for Fragment.CacheFlushInterval.
|
||||
DefaultCacheFlushInterval = 1 * time.Minute
|
||||
// defaultCacheFlushInterval is the default value for Fragment.CacheFlushInterval.
|
||||
defaultCacheFlushInterval = 1 * time.Minute
|
||||
|
||||
// FileLimit is the maximum open file limit (ulimit -n) to automatically set.
|
||||
FileLimit = 262144 // (512^2)
|
||||
|
|
@ -84,7 +84,7 @@ func NewHolder() *Holder {
|
|||
|
||||
NewAttrStore: NewNopAttrStore,
|
||||
|
||||
CacheFlushInterval: DefaultCacheFlushInterval,
|
||||
CacheFlushInterval: defaultCacheFlushInterval,
|
||||
|
||||
Logger: NopLogger,
|
||||
}
|
||||
|
|
|
|||
2
view.go
2
view.go
|
|
@ -73,7 +73,7 @@ func NewView(path, index, field, name string, cacheSize uint32) *View {
|
|||
name: name,
|
||||
cacheSize: cacheSize,
|
||||
|
||||
cacheType: DefaultCacheType,
|
||||
cacheType: defaultCacheType,
|
||||
fragments: make(map[uint64]*Fragment),
|
||||
|
||||
broadcaster: NopBroadcaster,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func mustOpenView(index, field, name string) *View {
|
|||
panic(err)
|
||||
}
|
||||
|
||||
v := NewView(path, index, field, name, DefaultCacheSize)
|
||||
v := NewView(path, index, field, name, defaultCacheSize)
|
||||
if err := v.open(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue