Cache query servers in ets table#1778
Merged
janl merged 1 commit intoapache:masterfrom Nov 29, 2018
Merged
Conversation
The configuration of query servers is done via environment variables. Calling os:getenv every time we need a new query process is expensive. Instead we extact all configured query servers from the environemt on `couch_proc_manager` startup and cache them in ets table. fixes apache#1772
janl
approved these changes
Nov 29, 2018
janl
reviewed
Nov 29, 2018
| case get_env_for_spec("COUCHDB_QUERY_SERVER_", UpperLangString) of | ||
| [] -> undefined; | ||
| [Command] -> Command | ||
| case ets:lookup(?SERVERS, string:to_upper(LangStr)) of |
Member
There was a problem hiding this comment.
doubtful it’s a performance issue, but we could do to_lower() when populating the ets table so we can avoid to_upper() here on each call. not blocking a merge, just leaving this here.
Contributor
Author
There was a problem hiding this comment.
in this case languages with mixed case will not work.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
The configuration of query servers is done via environment variables.
Calling os:getenv every time we need a new query process is expensive.
Instead we extact all configured query servers from the environemt on
couch_proc_managerstartup and cache them in ets table.fixes #1772
Testing recommendations
ets:tab2list(couch_proc_manager_servers).- returnsconfig:set("native_query_servers", "enable_erlang_query_server", "true", false).ets:tab2list(couch_proc_manager_servers).includes ERLANGRelated Issues or Pull Requests
Checklist