func NewServer(store datastore.Datastore, config clustering.ConfigurationStore, acctng accounting.AccountingStore, namespace string, readonly bool, channel, plusChannel RequestChannel, servicers, plusServicers, maxParallelism int, timeout time.Duration, signature, metrics bool, enterprise bool) (*Server, errors.Error) { rv := &Server{ datastore: store, configstore: config, acctstore: acctng, namespace: namespace, readonly: readonly, channel: channel, plusChannel: plusChannel, signature: signature, timeout: timeout, metrics: metrics, done: make(chan bool), plusDone: make(chan bool), enterprise: enterprise, } // special case handling for the atomic specfic stuff atomic.StoreInt64(&rv.servicers, int64(servicers)) atomic.StoreInt64(&rv.plusServicers, int64(plusServicers)) store.SetLogLevel(logging.LogLevel()) rv.SetMaxParallelism(maxParallelism) sys, err := system.NewDatastore(store) if err != nil { return nil, err } rv.systemstore = sys return rv, nil }
func makeZkCluster(name string, version clustering.Version, cs clustering.ConfigurationStore, ds datastore.Datastore, as accounting.AccountingStore) clustering.Cluster { cluster := zkCluster{ configStore: cs, dataStore: ds, acctStore: as, ClusterName: name, DatastoreURI: ds.URL(), ConfigstoreURI: cs.URL(), AccountingURI: as.URL(), version: version, VersionString: version.String(), } return &cluster }
func makeCbCluster(name string, version clustering.Version, cs clustering.ConfigurationStore, ds datastore.Datastore, as accounting.AccountingStore) clustering.Cluster { cluster := cbCluster{ configStore: cs, dataStore: ds, acctStore: as, ClusterName: name, DatastoreURI: ds.URL(), ConfigstoreURI: cs.URL(), AccountingURI: as.URL(), version: version, VersionString: version.String(), queryNodeNames: []string{}, poolSrvRev: -999, } return &cluster }