Hey guys,
My Environment:
- Version 4.0.0-2213 DEV Edition (build-2213)
- The Test and CouchBase is in the same server.
I have a doubt, How work the timeout in .Net SDK.
I ran a query that I make different form:
1 -
string[] iwps = .............;
SELECT q.period , q.category, SUM(q.sumActual) as Actual,SUM(q.sumEarn) as Earn ,SUM(q.sumForecast) as Forecast FROM default as q USE INDEX (MasterQrsIndexCustom USING GSI) WHERE q.type = 'IwpCumulative' AND q.parent IN [" + string.Join(",", iwps) + "] GROUP BY q.period, q.category";
iwps = 437 iwp. ej: "CostCode::1000::Budget::Cumulative::1"
The Result with 100 documents = Fine!.
The Result with 1.000.000 documents = Timeout.
The Result with 1.000.000 documents using CBQ = Fine!.
I thought maybe its the query or my focus is wrong.
2 -
string[] iwps = …;
I make other document with this values ( iwps )
I create a document to lookup a make a join.
The Result with 100 documents = Fine!.
The Result with 1.000.000 documents = Timeout.
The Result with 1.000.000 documents using CBQ = Fine!.
3 -
string[] iwps = …;
SELECT * FROM bucket USE KEYS [ values that inside iwps ]
The Result with 100 documents = Fine!.
The Result with 1.000.000 documents = Timeout.
The Result with 1.000.000 documents using CBQ = Fine!.
Well, I need to know why happend timeout, how many documents I could work without happend timeout.
I fill bucket with 1.000.000 documents.
SELECT * FROM default
The Result with 1.000.000 documents = return with error but “The function evaluation was disabled because of an out of memory exception.” .
The Result with 1.000.000 documents using CBQ = Fine!.
"status": "success",
"metrics": {
"elapsedTime": "13m54.187893s",
"executionTime": "13m54.187893s",
"resultCount": 1000000,
"resultSize": 390798472
}
But the result is very different Because esta operation was 3 minutes and the operation before was 6 sec.
Therefore, why throw me at 6 sec timeout and another query work during 3 min?
I using this configuration.
_config = new ClientConfiguration
{
Servers = new List<Uri>
{
new Uri("http://127.0.0.1:8091/pools")
},
UseSsl = false,
DefaultOperationLifespan = int.MaxValue,
BucketConfigs = new Dictionary<string, BucketConfiguration>
{
{"default", new BucketConfiguration
{
BucketName = "default",
UseSsl = false,
Password = "",
DefaultOperationLifespan = 2000,
PoolConfiguration = new PoolConfiguration
{
MaxSize = 10,
MinSize = 5,
SendTimeout = int.MaxValue, // this value wa
ConnectTimeout=int.MaxValue
}
}}}
};
_cluster = new Cluster(_config);
I was doing all cases with Method Get with the keys and after I used linq and did it fine!
Regards.