featurebase/dax/queryer/service/queryer.go
Travis Turner 20429bb9dc
Remove MDS and replace it with Controller (#2219)
* Remove MDS and replace it with Controller

This commit removes the MDS layer (and package) and shifts Controller
package into its place.

* add pprof/fgprof to serverless http router

---------

Co-authored-by: Matthew Jaffee <jaffee@pilosa.com>
2023-01-30 16:54:12 -06:00

56 lines
1.4 KiB
Go

package service
import (
"net/http"
"github.com/featurebasedb/featurebase/v3/dax"
controllerclient "github.com/featurebasedb/featurebase/v3/dax/controller/client"
"github.com/featurebasedb/featurebase/v3/dax/queryer"
queryerhttp "github.com/featurebasedb/featurebase/v3/dax/queryer/http"
"github.com/featurebasedb/featurebase/v3/errors"
"github.com/featurebasedb/featurebase/v3/logger"
fbnet "github.com/featurebasedb/featurebase/v3/net"
)
// Ensure type implements interface.
var _ dax.Service = (*queryerService)(nil)
type queryerService struct {
uri *fbnet.URI
queryer *queryer.Queryer
logger logger.Logger
}
func New(uri *fbnet.URI, queryer *queryer.Queryer, logger logger.Logger) *queryerService {
return &queryerService{
uri: uri,
queryer: queryer,
logger: logger,
}
}
func (q *queryerService) Start() error {
// Start queryer service.
if err := q.queryer.Start(); err != nil {
return errors.Wrap(err, "starting queryer")
}
return nil
}
func (q *queryerService) Stop() error {
return nil
}
func (q *queryerService) Address() dax.Address {
return dax.Address(q.uri.HostPort() + "/" + dax.ServicePrefixQueryer)
}
func (q *queryerService) HTTPHandler() http.Handler {
return queryerhttp.Handler(q.queryer)
}
func (q *queryerService) SetController(addr dax.Address) error {
controllercli := controllerclient.New(addr, q.logger)
q.queryer.SetController(controllercli)
return nil
}