Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce spine startup time by obtaining settings in bulk #330

Open
TheWitness opened this issue Nov 13, 2023 · 0 comments
Open

Reduce spine startup time by obtaining settings in bulk #330

TheWitness opened this issue Nov 13, 2023 · 0 comments

Comments

@TheWitness
Copy link
Member

Is your feature request related to a problem? Please describe.

To reduce the startup time of spine, get the settings in bulk with a single call.

Describe the solution you'd like

When you run spine with -V 6 verbosity, you can see output like the following:

Total[0.0072] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'path_php_binary'
Total[0.0074] DEBUG: The path_php variable is /usr/bin/php
Total[0.0074] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'availability_method'
Total[0.0076] DEBUG: The availability_method variable is 0
Total[0.0076] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'ping_recovery_count'
Total[0.0077] DEBUG: The ping_recovery_count variable is 0
Total[0.0077] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'ping_failure_count'
Total[0.0079] DEBUG: The ping_failure_count variable is 0
Total[0.0079] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'ping_method'
Total[0.0080] DEBUG: The ping_method variable is 0
Total[0.0080] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'ping_retries'
Total[0.0082] DEBUG: The ping_retries variable is 0
Total[0.0082] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'ping_timeout'
Total[0.0084] DEBUG: The ping_timeout variable is 400
Total[0.0084] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'snmp_retries'
Total[0.0085] DEBUG: The snmp_retries variable is 3
Total[0.0085] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'log_perror'
Total[0.0087] DEBUG: The log_perror variable is 1
Total[0.0087] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'log_pwarn'
Total[0.0089] DEBUG: The log_pwarn variable is 0
Total[0.0089] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'boost_redirect'
Total[0.0090] DEBUG: The boost_redirect variable is 0
Total[0.0090] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'boost_rrd_update_enable'
Total[0.0093] DEBUG: The boost_rrd_update_enable variable is 0
Total[0.0093] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'log_pstats'
Total[0.0095] DEBUG: The log_pstats variable is 0
Total[0.0095] DEBUG: The threads variable is 64
Total[0.0095] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'poller_interval'
Total[0.0096] DEBUG: The polling interval is 60 seconds
Total[0.0097] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'concurrent_processes'
Total[0.0098] DEBUG: The number of concurrent processes is 1
Total[0.0098] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'script_timeout'
Total[0.0100] DEBUG: The script timeout is 25
Total[0.0100] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'selective_device_debug'
Total[0.0102] DEBUG: The selective_device_debug variable is
Total[0.0102] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'spine_log_level'
Total[0.0104] DEBUG: The spine_log_level variable is 0
Total[0.0104] DEVDBG: SQL:SELECT SQL_NO_CACHE value FROM settings WHERE name = 'php_servers'

Describe alternatives you've considered

A few milliseconds to a second or two can be shaved off the polling time by performing the call in bulk.

Additional context

It's something we introduced in cmd.php and script_server.php some time ago. We should have it here too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant