func startQueryport(laddr string, callb qp.RequestHandler) *qp.Server { s, err := qp.NewServer(laddr, callb, c.SystemConfig.Clone()) if err != nil { log.Fatal(err) } return s }
func doBenchmark(cluster, addr string) { qconf := c.SystemConfig.SectionConfig("indexer.queryport.", true) s, err := queryport.NewServer(addr, serverCallb, qconf) if err != nil { log.Fatal(err) } loopback(cluster, addr, 1) loopback(cluster, addr, 2) loopback(cluster, addr, 4) loopback(cluster, addr, 8) loopback(cluster, addr, 16) s.Close() }
// NewScanCoordinator returns an instance of scanCoordinator or err message // It listens on supvCmdch for command and every command is followed // by a synchronous response on the supvCmdch. // Any async message to supervisor is sent to supvMsgch. // If supvCmdch get closed, ScanCoordinator will shut itself down. func NewScanCoordinator(supvCmdch MsgChannel, supvMsgch MsgChannel, config common.Config, snapshotNotifych chan IndexSnapshot) (ScanCoordinator, Message) { var err error s := &scanCoordinator{ supvCmdch: supvCmdch, supvMsgch: supvMsgch, lastSnapshot: make(map[common.IndexInstId]IndexSnapshot), snapshotNotifych: snapshotNotifych, logPrefix: "ScanCoordinator", reqCounter: platform.NewAlignedUint64(0), } s.config.Store(config) addr := net.JoinHostPort("", config["scanPort"].String()) queryportCfg := config.SectionConfig("queryport.", true) s.serv, err = queryport.NewServer(addr, s.serverCallback, queryportCfg) if err != nil { errMsg := &MsgError{err: Error{code: ERROR_SCAN_COORD_QUERYPORT_FAIL, severity: FATAL, category: SCAN_COORD, cause: err, }, } return nil, errMsg } // main loop go s.run() go s.listenSnapshot() return s, &MsgSuccess{} }