public RiakOnTheFlyConnection(IRiakNodeConfiguration nodeConfig, int bufferPoolSize = 20)
        {
            _nodeConfig = nodeConfig;
            _serverUrl = @"{0}://{1}:{2}".Fmt(nodeConfig.RestScheme, nodeConfig.HostAddress, nodeConfig.RestPort);
            _pool = new SocketAwaitablePool(nodeConfig.PoolSize);
            _bufferManager = new BlockingBufferManager(nodeConfig.BufferSize, bufferPoolSize);

            _resources = new BlockingLimitedList<RiakPbcSocket>(bufferPoolSize);
        }
        public RiakConnectionPool(IRiakNodeConfiguration nodeConfig)
        {
            _hostAddress = nodeConfig.HostAddress;
            _poolSize = nodeConfig.PoolSize;
            _pool = new SocketAwaitablePool(_poolSize);
            _bufferSize = nodeConfig.BufferSize;
            _restScheme = nodeConfig.RestScheme;
            _restPort = nodeConfig.RestPort;
            _pbcPort = nodeConfig.PbcPort;
            _networkReadTimeout = nodeConfig.NetworkReadTimeout;
            _networkWriteTimeout = nodeConfig.NetworkWriteTimeout;
            _idleTimeout = nodeConfig.IdleTimeout;
            
            _blockingBufferManager = new BlockingBufferManager(_bufferSize, _poolSize);
            _serverUrl = @"{0}://{1}:{2}".Fmt(_restScheme, _hostAddress, _restPort);

            Init();
        }