Skip to content

Commit 8d98f72

Browse files
committed
MB-47387 Increase magma bucket creation timeout
For a magma bucket there are 100s of files that must be opened and read. Doing this is taking longer than the 2 minute timeout. So the default for magma bucket creation is now 5 minutes. This can be changed such as in this example to change to 700 seconds: ns_config:set({node, node(), {timeout, {ns_memcached, magma_creation}}}, 700000). Change-Id: I5b1438a4fcb984c50ed790ac3397a3cd55b90030 Reviewed-on: http://review.couchbase.org/c/ns_server/+/158683 Well-Formed: Build Bot <[email protected]> Reviewed-by: Artem Stemkovski <[email protected]> Tested-by: Steve Watanabe <[email protected]>
1 parent a03be9b commit 8d98f72

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/mc_client_binary.erl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
cmd_quiet/3,
2626
cmd_vocal/3,
2727
respond/3,
28-
create_bucket/4,
28+
create_bucket/5,
2929
delete_bucket/3,
3030
delete_vbucket/2,
3131
delete_vbuckets/2,
@@ -205,11 +205,12 @@ auth(_Sock, _UnknownMech) ->
205205
{error, emech_unsupported}.
206206

207207
% -------------------------------------------------
208-
create_bucket(Sock, BucketName, Engine, Config) ->
208+
create_bucket(Sock, BucketName, Engine, Config, Timeout) ->
209209
case cmd(?CMD_CREATE_BUCKET, Sock, undefined, undefined,
210210
{#mc_header{},
211211
#mc_entry{key = BucketName,
212-
data = list_to_binary([Engine, 0, Config])}}) of
212+
data = list_to_binary([Engine, 0, Config])}},
213+
Timeout) of
213214
{ok, #mc_header{status=?SUCCESS}, _ME, _NCB} ->
214215
ok;
215216
Response -> process_error_response(Response)

src/memcached_bucket_config.erl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
-record(cfg, {type, name, config, snapshot, engine_config, params}).
1919

2020
-export([get/1,
21+
get_bucket_config/1,
2122
ensure/2,
2223
start_params/1,
2324
ensure_collections/2,
@@ -312,3 +313,6 @@ start_params(#cfg{config = BucketConfig,
312313

313314
ExtraParams = [P || P <- [StaticConfigString, ExtraConfigString], P =/= ""],
314315
{Engine, string:join(DynamicParams ++ ExtraParams, ";")}.
316+
317+
get_bucket_config(#cfg{config = BucketConfig}) ->
318+
BucketConfig.

src/ns_memcached.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
-define(SLOW_CALL_THRESHOLD_MICROS, 500000).
4040
-define(GET_KEYS_TIMEOUT, ?get_timeout(get_keys, 60000)).
4141
-define(GET_KEYS_OUTER_TIMEOUT, ?get_timeout(get_keys_outer, 70000)).
42+
-define(MAGMA_CREATION_TIMEOUT, ?get_timeout(magma_creation, 300000)).
4243

4344
-define(RECBUF, ?get_param(recbuf, 64 * 1024)).
4445
-define(SNDBUF, ?get_param(sndbuf, 64 * 1024)).
@@ -1272,8 +1273,17 @@ do_ensure_bucket(Sock, Bucket, BConf, false) ->
12721273
{Engine, ConfigString} =
12731274
memcached_bucket_config:start_params(BConf),
12741275

1276+
BucketConfig = memcached_bucket_config:get_bucket_config(BConf),
1277+
Timeout = case ns_bucket:kv_backend_type(BucketConfig) of
1278+
magma ->
1279+
?MAGMA_CREATION_TIMEOUT;
1280+
_ ->
1281+
%% Use whatever the default value is
1282+
undefined
1283+
end,
1284+
12751285
case mc_client_binary:create_bucket(Sock, Bucket, Engine,
1276-
ConfigString) of
1286+
ConfigString, Timeout) of
12771287
ok ->
12781288
?log_info("Created bucket ~p with config string ~p",
12791289
[Bucket, ConfigString]),

0 commit comments

Comments
 (0)