浏览代码

connection pool now stores its host, simplify creation of pool in session

Chris Bannister 10 年之前
父节点
当前提交
a278050d25
共有 2 个文件被更改,包括 5 次插入16 次删除
  1. 4 4
      connectionpool.go
  2. 1 12
      session.go

+ 4 - 4
connectionpool.go

@@ -136,7 +136,7 @@ func (p *policyConnPool) SetHosts(hosts []*HostInfo) {
 			// create a connection pool for the host
 			pool = newHostConnPool(
 				p.session,
-				host.Peer(),
+				host,
 				p.port,
 				p.numConns,
 				p.keyspace,
@@ -227,7 +227,7 @@ func (p *policyConnPool) addHost(host *HostInfo) {
 
 	pool = newHostConnPool(
 		p.session,
-		host.Peer(),
+		host,
 		p.port,
 		p.numConns,
 		p.keyspace,
@@ -269,7 +269,7 @@ func (p *policyConnPool) hostDown(addr string) {
 // Connection selection is based on a provided ConnSelectionPolicy
 type hostConnPool struct {
 	session  *Session
-	host     string
+	host     *HostInfo
 	port     int
 	addr     string
 	size     int
@@ -289,7 +289,7 @@ func newHostConnPool(session *Session, host *HostInfo, port, size int,
 		session:  session,
 		host:     host,
 		port:     port,
-		addr:     JoinHostPort(host, port),
+		addr:     JoinHostPort(host.Peer(), port),
 		size:     size,
 		keyspace: keyspace,
 		policy:   policy,

+ 1 - 12
session.go

@@ -95,6 +95,7 @@ func NewSession(cfg ClusterConfig) (*Session, error) {
 		closeChan: make(chan bool),
 	}
 
+	s.pool = cfg.PoolConfig.buildPool(s)
 	if !cfg.disableControlConn {
 		s.control = createControlConn(s)
 		if err := s.control.connect(cfg.Hosts); err != nil {
@@ -110,21 +111,9 @@ func NewSession(cfg ClusterConfig) (*Session, error) {
 			return nil, err
 		}
 
-		pool, err := cfg.PoolConfig.buildPool(s)
-		if err != nil {
-			return nil, err
-		}
-		s.pool = pool
-
 		// TODO(zariel): this should be used to create initial metadata
 		s.pool.SetHosts(hosts)
 	} else {
-		// TODO(zariel): remove branch for creating pools
-		pool, err := cfg.PoolConfig.buildPool(s)
-		if err != nil {
-			return nil, err
-		}
-		s.pool = pool
 		// we dont get host info
 		hosts := make([]*HostInfo, len(cfg.Hosts))
 		for i, addr := range cfg.Hosts {