Skip to content

Commit

Permalink
look for random keys only on bucket servers, not on all kv nodes
Browse files Browse the repository at this point in the history
Change-Id: I6f9032ef0842e0c3bdaa87362de7a990f613f3ae
Reviewed-on: https://review.couchbase.org/c/ns_server/+/174276
Tested-by: Artem Stemkovski <artem@couchbase.com>
Well-Formed: Build Bot <build@couchbase.com>
Reviewed-by: Abhijeeth Nuthan <abhijeeth.nuthan@couchbase.com>
  • Loading branch information
vzasade committed Apr 27, 2022
1 parent 39300ba commit 542cb16
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/menelaus_web_buckets.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2010,7 +2010,9 @@ handle_local_random_key(Bucket, Req) ->
do_handle_local_random_key(Bucket, CollectionUid, Req).

do_handle_local_random_key(Bucket, CollectionUId, Req) ->
Nodes = ns_cluster_membership:service_active_nodes(kv),
{ok, BucketConfig} = ns_bucket:get_bucket(Bucket),
Nodes = ns_bucket:get_servers(BucketConfig),

Args = [X || X <- [Bucket, CollectionUId],
X =/= undefined],
{ok, Res} = run_on_node({ns_memcached, get_random_key, Args},
Expand All @@ -2020,11 +2022,13 @@ do_handle_local_random_key(Bucket, CollectionUId, Req) ->
reply_json(Req, {[{ok, true},
{key, Key}]});
{memcached_error, key_enoent, _} ->
?log_debug("No keys were found for bucket ~p. Fallback to all docs approach.", [Bucket]),
?log_debug("No keys were found for bucket ~p. "
"Fallback to all docs approach.", [Bucket]),
reply_json(Req, {[{ok, false},
{error, <<"fallback_to_all_docs">>}]}, 404);
{memcached_error, Status, Msg} ->
?log_error("Unable to retrieve random key for bucket ~p. Memcached returned error ~p. ~p",
?log_error("Unable to retrieve random key for bucket ~p. "
"Memcached returned error ~p. ~p",
[Bucket, Status, Msg]),
reply_json(Req, {[{ok, false}]}, 404)
end.
Expand Down

0 comments on commit 542cb16

Please sign in to comment.