OmniSciDB  29e35f4d58
MapDProgramOptions Class Reference

#include <MapDProgramOptions.h>

+ Inheritance diagram for MapDProgramOptions:
+ Collaboration diagram for MapDProgramOptions:

Public Member Functions

 MapDProgramOptions (char const *argv0, bool dist_v5_=false)
 
void fillOptions ()
 
void fillAdvancedOptions ()
 
std::string getNodeIds ()
 
std::vector< std::string > getNodeIdsArray ()
 
boost::optional< int > parse_command_line (int argc, char const *const *argv)
 
void validate ()
 
void validate_base_path ()
 
void init_logging ()
 
 MapDProgramOptions ()
 
bool parse_command_line (int argc, char **argv, int &return_code)
 

Public Attributes

int http_port = 6278
 
size_t reserved_gpu_mem = 1 << 27
 
std::string base_path
 
std::string cluster_file = {"cluster.conf"}
 
std::string cluster_topology_file = {"cluster_topology.conf"}
 
std::string license_path = {""}
 
bool cpu_only = false
 
bool verbose_logging = false
 
bool jit_debug = false
 
bool intel_jit_profile = false
 
bool allow_multifrag = true
 
bool read_only = false
 
bool allow_loop_joins = false
 
bool enable_legacy_syntax = true
 
AuthMetadata authMetadata
 
MapDParameters mapd_parameters
 
bool enable_rendering = false
 
bool enable_auto_clear_render_mem = false
 
int render_oom_retry_threshold = 0
 
size_t render_mem_bytes = 500000000
 
size_t render_poly_cache_bytes = 300000000
 
bool enable_runtime_udf = false
 
bool enable_watchdog = true
 
bool enable_dynamic_watchdog = false
 
unsigned dynamic_watchdog_time_limit = 10000
 
int num_gpus = -1
 
int start_gpu = 0
 
size_t num_reader_threads = 0
 
std::string db_query_file = {""}
 
bool exit_after_warmup = false
 
int idle_session_duration = kMinsPerHour
 
int max_session_duration = kMinsPerMonth
 
std::string udf_file_name = {""}
 
po::options_description help_desc
 
po::options_description developer_desc
 
logger::LogOptions log_options_
 
po::positional_options_description positional_options
 
std::vector< LeafHostInfodb_leaves
 
std::vector< LeafHostInfostring_leaves
 
po::variables_map vm
 
std::string clusterIds_arg
 
const bool dist_v5_
 
std::string config_file = {"mapd.conf"}
 
bool flush_log = true
 

Static Public Attributes

static const std::string nodeIds_token = {"node_id"}
 

Private Member Functions

void fillOptions (boost::program_options::options_description &desc)
 
void fillAdvancedOptions (boost::program_options::options_description &desc_adv)
 

Private Attributes

boost::program_options::variables_map vm
 

Detailed Description

Definition at line 270 of file MapDServer.cpp.

Constructor & Destructor Documentation

◆ MapDProgramOptions() [1/2]

MapDProgramOptions::MapDProgramOptions ( char const *  argv0,
bool  dist_v5_ = false 
)
inline

Definition at line 272 of file MapDServer.cpp.

References fillAdvancedOptions(), and fillOptions().

273  : log_options_(argv0), dist_v5_(dist_v5_) {
274  fillOptions();
276  }
const bool dist_v5_
Definition: MapDServer.cpp:357
void fillAdvancedOptions()
Definition: MapDServer.cpp:599
logger::LogOptions log_options_
Definition: MapDServer.cpp:340
+ Here is the call graph for this function:

◆ MapDProgramOptions() [2/2]

MapDProgramOptions::MapDProgramOptions ( )

Member Function Documentation

◆ fillAdvancedOptions() [1/2]

void MapDProgramOptions::fillAdvancedOptions ( boost::program_options::options_description &  desc_adv)
private

◆ fillAdvancedOptions() [2/2]

void MapDProgramOptions::fillAdvancedOptions ( )

Definition at line 599 of file MapDServer.cpp.

References allow_multifrag, authMetadata, AuthMetadata::ca_file_name, developer_desc, MapDParameters::enable_calcite_view_optimize, enable_legacy_syntax, g_enable_bump_allocator, g_enable_columnar_output, g_enable_direct_columnarization, g_enable_smem_group_by, g_enable_table_functions, g_enable_window_functions, g_max_memory_allocation_size, g_min_memory_allocation_size, g_skip_intermediate_count, g_strip_join_covered_quals, intel_jit_profile, jit_debug, mapd_parameters, AuthMetadata::pki_db_client_auth, MapDParameters::ssl_cert_file, MapDParameters::ssl_key_file, MapDParameters::ssl_keystore, MapDParameters::ssl_keystore_password, MapDParameters::ssl_transport_client_auth, MapDParameters::ssl_trust_ca_file, MapDParameters::ssl_trust_password, MapDParameters::ssl_trust_store, and udf_file_name.

Referenced by MapDProgramOptions().

599  {
600  developer_desc.add_options()("dev-options", "Print internal developer options.");
601  developer_desc.add_options()(
602  "enable-calcite-view-optimize",
605  ->implicit_value(true),
606  "Enable additional calcite (query plan) optimizations when a view is part of the "
607  "query.");
608  developer_desc.add_options()(
609  "enable-columnar-output",
610  po::value<bool>(&g_enable_columnar_output)
611  ->default_value(g_enable_columnar_output)
612  ->implicit_value(true),
613  "Enable columnar output for intermediate/final query steps.");
614  developer_desc.add_options()("enable-legacy-syntax",
615  po::value<bool>(&enable_legacy_syntax)
616  ->default_value(enable_legacy_syntax)
617  ->implicit_value(true),
618  "Enable legacy syntax.");
619  developer_desc.add_options()(
620  "enable-multifrag",
621  po::value<bool>(&allow_multifrag)
622  ->default_value(allow_multifrag)
623  ->implicit_value(true),
624  "Enable execution over multiple fragments in a single round-trip to GPU.");
625  developer_desc.add_options()(
626  "enable-shared-mem-group-by",
627  po::value<bool>(&g_enable_smem_group_by)
628  ->default_value(g_enable_smem_group_by)
629  ->implicit_value(true),
630  "Enable using GPU shared memory for some GROUP BY queries.");
631  developer_desc.add_options()("enable-direct-columnarization",
632  po::value<bool>(&g_enable_direct_columnarization)
633  ->default_value(g_enable_direct_columnarization)
634  ->implicit_value(true),
635  "Enables/disables a more optimized columnarization method "
636  "for intermediate steps in multi-step queries.");
637  developer_desc.add_options()("enable-window-functions",
638  po::value<bool>(&g_enable_window_functions)
639  ->default_value(g_enable_window_functions)
640  ->implicit_value(true),
641  "Enable experimental window function support.");
642  developer_desc.add_options()("enable-table-functions",
643  po::value<bool>(&g_enable_table_functions)
644  ->default_value(g_enable_table_functions)
645  ->implicit_value(true),
646  "Enable experimental table functions support.");
647  developer_desc.add_options()(
648  "jit-debug-ir",
649  po::value<bool>(&jit_debug)->default_value(jit_debug)->implicit_value(true),
650  "Enable runtime debugger support for the JIT. Note that this flag is "
651  "incompatible "
652  "with the `ENABLE_JIT_DEBUG` build flag. The generated code can be found at "
653  "`/tmp/mapdquery`.");
654  developer_desc.add_options()(
655  "intel-jit-profile",
656  po::value<bool>(&intel_jit_profile)
657  ->default_value(intel_jit_profile)
658  ->implicit_value(true),
659  "Enable runtime support for the JIT code profiling using Intel VTune.");
660  developer_desc.add_options()(
661  "skip-intermediate-count",
662  po::value<bool>(&g_skip_intermediate_count)
663  ->default_value(g_skip_intermediate_count)
664  ->implicit_value(true),
665  "Skip pre-flight counts for intermediate projections with no filters.");
666  developer_desc.add_options()(
667  "strip-join-covered-quals",
668  po::value<bool>(&g_strip_join_covered_quals)
669  ->default_value(g_strip_join_covered_quals)
670  ->implicit_value(true),
671  "Remove quals from the filtered count if they are covered by a "
672  "join condition (currently only ST_Contains).");
673  developer_desc.add_options()(
674  "max-output-projection-allocation-bytes",
675  po::value<size_t>(&g_max_memory_allocation_size)
676  ->default_value(g_max_memory_allocation_size),
677  "Maximum allocation size for a fixed output buffer allocation for projection "
678  "queries with no pre-flight count. Default is the maximum slab size (sizes "
679  "greater "
680  "than the maximum slab size have no affect). Requires bump allocator.");
681  developer_desc.add_options()(
682  "min-output-projection-allocation-bytes",
683  po::value<size_t>(&g_min_memory_allocation_size)
684  ->default_value(g_min_memory_allocation_size),
685  "Minimum allocation size for a fixed output buffer allocation for projection "
686  "queries with no pre-flight count. If an allocation of this size cannot be "
687  "obtained, the query will be retried with different execution parameters and/or "
688  "on "
689  "CPU (if allow-cpu-retry is enabled). Requires bump allocator.");
690  developer_desc.add_options()("enable-bump-allocator",
691  po::value<bool>(&g_enable_bump_allocator)
692  ->default_value(g_enable_bump_allocator)
693  ->implicit_value(true),
694  "Enable the bump allocator for projection queries on "
695  "GPU. The bump allocator will "
696  "allocate a fixed size buffer for each query, track the "
697  "number of rows passing the "
698  "kernel during query execution, and copy back only the "
699  "rows that passed the kernel "
700  "to CPU after execution. When disabled, pre-flight "
701  "count queries are used to size "
702  "the output buffer for projection queries.");
703 
704  developer_desc.add_options()("ssl-cert",
705  po::value<std::string>(&mapd_parameters.ssl_cert_file)
706  ->default_value(std::string("")),
707  "SSL Validated public certficate.");
708 
709  developer_desc.add_options()(
710  "pki-db-client-auth",
711  po::value<bool>(&authMetadata.pki_db_client_auth)->default_value(false),
712  "Use client PKI authentication to the database.");
713 
714  developer_desc.add_options()(
715  "ssl-transport-client-auth",
716  po::value<bool>(&mapd_parameters.ssl_transport_client_auth)->default_value(false),
717  "SSL Use client PKI authentication at the transport layer.");
718 
719  developer_desc.add_options()("ssl-private-key",
720  po::value<std::string>(&mapd_parameters.ssl_key_file)
721  ->default_value(std::string("")),
722  "SSL private key file.");
723  // Note ssl_trust_store is passed through to Calcite via mapd_parameters
724  // todo(jack): add ensure ssl-trust-store exists if cert and private key in use
725  developer_desc.add_options()("ssl-trust-store",
726  po::value<std::string>(&mapd_parameters.ssl_trust_store)
727  ->default_value(std::string("")),
728  "SSL public CA certifcates (java trust store) to validate "
729  "TLS connections (passed through to the Calcite server).");
730 
731  developer_desc.add_options()(
732  "ssl-trust-password",
733  po::value<std::string>(&mapd_parameters.ssl_trust_password)
734  ->default_value(std::string("")),
735  "SSL password for java trust store provided via --ssl-trust-store parameter.");
736 
737  developer_desc.add_options()(
738  "ssl-trust-ca",
739  po::value<std::string>(&mapd_parameters.ssl_trust_ca_file)
740  ->default_value(std::string("")),
741  "SSL public CA certificates to validate TLS connection(as a client).");
742 
743  developer_desc.add_options()(
744  "ssl-trust-ca-server",
745  po::value<std::string>(&authMetadata.ca_file_name)->default_value(std::string("")),
746  "SSL public CA certificates to validate TLS connection(as a server).");
747 
748  developer_desc.add_options()("ssl-keystore",
749  po::value<std::string>(&mapd_parameters.ssl_keystore)
750  ->default_value(std::string("")),
751  "SSL server credentials as a java key store (passed "
752  "through to the Calcite server).");
753 
754  developer_desc.add_options()(
755  "ssl-keystore-password",
756  po::value<std::string>(&mapd_parameters.ssl_keystore_password)
757  ->default_value(std::string("")),
758  "SSL password for java keystore, provide by via --ssl-keystore.");
759 
760  developer_desc.add_options()(
761  "udf",
762  po::value<std::string>(&udf_file_name),
763  "Load user defined extension functions from this file at startup. The file is "
764  "expected to be a C/C++ file with extension .cpp.");
765 }
bool g_enable_smem_group_by
bool enable_calcite_view_optimize
bool g_enable_bump_allocator
Definition: Execute.cpp:99
bool g_strip_join_covered_quals
Definition: Execute.cpp:90
std::string ssl_key_file
bool g_enable_direct_columnarization
Definition: Execute.cpp:101
std::string ssl_trust_store
std::string udf_file_name
Definition: MapDServer.cpp:333
bool ssl_transport_client_auth
std::string ssl_trust_ca_file
size_t g_max_memory_allocation_size
Definition: Execute.cpp:95
bool g_enable_columnar_output
Definition: Execute.cpp:86
MapDParameters mapd_parameters
Definition: MapDServer.cpp:293
po::options_description developer_desc
Definition: MapDServer.cpp:339
size_t g_min_memory_allocation_size
Definition: Execute.cpp:96
std::string ssl_keystore
std::string ssl_keystore_password
std::string ssl_trust_password
std::string ca_file_name
Definition: AuthMetadata.h:33
std::string ssl_cert_file
bool g_enable_window_functions
Definition: Execute.cpp:93
AuthMetadata authMetadata
Definition: MapDServer.cpp:291
bool g_enable_table_functions
Definition: Execute.cpp:94
bool g_skip_intermediate_count
bool pki_db_client_auth
Definition: AuthMetadata.h:32
+ Here is the caller graph for this function:

◆ fillOptions() [1/2]

void MapDProgramOptions::fillOptions ( boost::program_options::options_description &  desc)
private

◆ fillOptions() [2/2]

void MapDProgramOptions::fillOptions ( )

Definition at line 368 of file MapDServer.cpp.

References allow_loop_joins, base_path, MapDParameters::calcite_max_mem, MapDParameters::calcite_port, MapDParameters::config_file, MapDParameters::cpu_buffer_mem_bytes, cpu_only, MapDParameters::cuda_block_size, MapDParameters::cuda_grid_size, db_query_file, dist_v5_, dynamic_watchdog_time_limit, enable_dynamic_watchdog, enable_runtime_udf, enable_watchdog, exit_after_warmup, g_allow_cpu_retry, g_bigint_count, g_cache_string_hash, g_enable_debug_timer, g_enable_experimental_string_functions, g_enable_filter_push_down, g_enable_overlaps_hashjoin, g_enable_thrift_logs, g_filter_push_down_high_frac, g_filter_push_down_low_frac, g_filter_push_down_passing_row_ubound, g_from_table_reordering, g_hll_precision_bits, g_inner_join_fragment_skipping, g_null_div_by_zero, g_overlaps_max_table_size_bytes, g_trivial_loop_join_threshold, logger::LogOptions::get_options(), MapDParameters::gpu_buffer_mem_bytes, MapDParameters::gpu_input_mem_limit, help_desc, http_port, idle_session_duration, log_options_, mapd_parameters, max_session_duration, num_gpus, num_reader_threads, MapDParameters::omnisci_server_port, positional_options, read_only, run_benchmark_import::required, reserved_gpu_mem, start_gpu, and verbose_logging.

Referenced by MapDProgramOptions().

368  {
369  help_desc.add_options()("help,h", "Show available options.");
370  help_desc.add_options()(
371  "allow-cpu-retry",
372  po::value<bool>(&g_allow_cpu_retry)
373  ->default_value(g_allow_cpu_retry)
374  ->implicit_value(true),
375  R"(Allow the queries which failed on GPU to retry on CPU, even when watchdog is enabled.)");
376  help_desc.add_options()("allow-loop-joins",
377  po::value<bool>(&allow_loop_joins)
378  ->default_value(allow_loop_joins)
379  ->implicit_value(true),
380  "Enable loop joins.");
381  help_desc.add_options()("bigint-count",
382  po::value<bool>(&g_bigint_count)
383  ->default_value(g_bigint_count)
384  ->implicit_value(false),
385  "Use 64-bit count.");
386  help_desc.add_options()("calcite-max-mem",
387  po::value<size_t>(&mapd_parameters.calcite_max_mem)
388  ->default_value(mapd_parameters.calcite_max_mem),
389  "Max memory available to calcite JVM.");
390  if (!dist_v5_) {
391  help_desc.add_options()("calcite-port",
392  po::value<int>(&mapd_parameters.calcite_port)
393  ->default_value(mapd_parameters.calcite_port),
394  "Calcite port number.");
395  }
396  help_desc.add_options()("config",
397  po::value<std::string>(&mapd_parameters.config_file),
398  "Path to server configuration file.");
399  help_desc.add_options()("cpu-buffer-mem-bytes",
400  po::value<size_t>(&mapd_parameters.cpu_buffer_mem_bytes)
401  ->default_value(mapd_parameters.cpu_buffer_mem_bytes),
402  "Size of memory reserved for CPU buffers, in bytes.");
403  help_desc.add_options()(
404  "cpu-only",
405  po::value<bool>(&cpu_only)->default_value(cpu_only)->implicit_value(true),
406  "Run on CPU only, even if GPUs are available.");
407  help_desc.add_options()("cuda-block-size",
408  po::value<size_t>(&mapd_parameters.cuda_block_size)
409  ->default_value(mapd_parameters.cuda_block_size),
410  "Size of block to use on GPU.");
411  help_desc.add_options()("cuda-grid-size",
412  po::value<size_t>(&mapd_parameters.cuda_grid_size)
413  ->default_value(mapd_parameters.cuda_grid_size),
414  "Size of grid to use on GPU.");
415  if (!dist_v5_) {
416  help_desc.add_options()(
417  "data",
418  po::value<std::string>(&base_path)->required()->default_value("data"),
419  "Directory path to OmniSci data storage (catalogs, raw data, log files, etc).");
420  positional_options.add("data", 1);
421  }
422  help_desc.add_options()("db-query-list",
423  po::value<std::string>(&db_query_file),
424  "Path to file containing OmniSci warmup queries.");
425  help_desc.add_options()(
426  "exit-after-warmup",
427  po::value<bool>(&exit_after_warmup)->default_value(false)->implicit_value(true),
428  "Exit after OmniSci warmup queries.");
429  help_desc.add_options()("dynamic-watchdog-time-limit",
430  po::value<unsigned>(&dynamic_watchdog_time_limit)
431  ->default_value(dynamic_watchdog_time_limit)
432  ->implicit_value(10000),
433  "Dynamic watchdog time limit, in milliseconds.");
434  help_desc.add_options()("enable-debug-timer",
435  po::value<bool>(&g_enable_debug_timer)
436  ->default_value(g_enable_debug_timer)
437  ->implicit_value(true),
438  "Enable debug timer logging.");
439  help_desc.add_options()("enable-dynamic-watchdog",
440  po::value<bool>(&enable_dynamic_watchdog)
441  ->default_value(enable_dynamic_watchdog)
442  ->implicit_value(true),
443  "Enable dynamic watchdog.");
444  help_desc.add_options()("enable-filter-push-down",
445  po::value<bool>(&g_enable_filter_push_down)
446  ->default_value(g_enable_filter_push_down)
447  ->implicit_value(true),
448  "Enable filter push down through joins.");
449  help_desc.add_options()("enable-overlaps-hashjoin",
450  po::value<bool>(&g_enable_overlaps_hashjoin)
451  ->default_value(g_enable_overlaps_hashjoin)
452  ->implicit_value(true),
453  "Enable the overlaps hash join framework allowing for range "
454  "join (e.g. spatial overlaps) computation using a hash table.");
455  if (!dist_v5_) {
456  help_desc.add_options()(
457  "enable-string-dict-hash-cache",
458  po::value<bool>(&g_cache_string_hash)
459  ->default_value(g_cache_string_hash)
460  ->implicit_value(true),
461  "Cache string hash values in the string dictionary server during import.");
462  }
463  help_desc.add_options()(
464  "enable-thrift-logs",
465  po::value<bool>(&g_enable_thrift_logs)
466  ->default_value(g_enable_thrift_logs)
467  ->implicit_value(true),
468  "Enable writing messages directly from thrift to stdout/stderr.");
469  help_desc.add_options()("enable-watchdog",
470  po::value<bool>(&enable_watchdog)
471  ->default_value(enable_watchdog)
472  ->implicit_value(true),
473  "Enable watchdog.");
474  help_desc.add_options()(
475  "filter-push-down-low-frac",
476  po::value<float>(&g_filter_push_down_low_frac)
477  ->default_value(g_filter_push_down_low_frac)
478  ->implicit_value(g_filter_push_down_low_frac),
479  "Lower threshold for selectivity of filters that are pushed down.");
480  help_desc.add_options()(
481  "filter-push-down-high-frac",
482  po::value<float>(&g_filter_push_down_high_frac)
483  ->default_value(g_filter_push_down_high_frac)
484  ->implicit_value(g_filter_push_down_high_frac),
485  "Higher threshold for selectivity of filters that are pushed down.");
486  help_desc.add_options()("filter-push-down-passing-row-ubound",
487  po::value<size_t>(&g_filter_push_down_passing_row_ubound)
489  ->implicit_value(g_filter_push_down_passing_row_ubound),
490  "Upperbound on the number of rows that should pass the filter "
491  "if the selectivity is less than "
492  "the high fraction threshold.");
493  help_desc.add_options()("from-table-reordering",
494  po::value<bool>(&g_from_table_reordering)
495  ->default_value(g_from_table_reordering)
496  ->implicit_value(true),
497  "Enable automatic table reordering in FROM clause.");
498  help_desc.add_options()("gpu-buffer-mem-bytes",
499  po::value<size_t>(&mapd_parameters.gpu_buffer_mem_bytes)
500  ->default_value(mapd_parameters.gpu_buffer_mem_bytes),
501  "Size of memory reserved for GPU buffers, in bytes, per GPU.");
502  help_desc.add_options()("gpu-input-mem-limit",
503  po::value<double>(&mapd_parameters.gpu_input_mem_limit)
504  ->default_value(mapd_parameters.gpu_input_mem_limit),
505  "Force query to CPU when input data memory usage exceeds this "
506  "percentage of available GPU memory.");
507  help_desc.add_options()(
508  "hll-precision-bits",
509  po::value<int>(&g_hll_precision_bits)
510  ->default_value(g_hll_precision_bits)
511  ->implicit_value(g_hll_precision_bits),
512  "Number of bits used from the hash value used to specify the bucket number.");
513  if (!dist_v5_) {
514  help_desc.add_options()("http-port",
515  po::value<int>(&http_port)->default_value(http_port),
516  "HTTP port number.");
517  }
518  help_desc.add_options()(
519  "idle-session-duration",
520  po::value<int>(&idle_session_duration)->default_value(idle_session_duration),
521  "Maximum duration of idle session.");
522  help_desc.add_options()("inner-join-fragment-skipping",
523  po::value<bool>(&g_inner_join_fragment_skipping)
524  ->default_value(g_inner_join_fragment_skipping)
525  ->implicit_value(true),
526  "Enable/disable inner join fragment skipping. This feature is "
527  "considered stable and is enabled by default. This "
528  "parameter will be removed in a future release.");
529  help_desc.add_options()(
530  "max-session-duration",
531  po::value<int>(&max_session_duration)->default_value(max_session_duration),
532  "Maximum duration of active session.");
533  help_desc.add_options()(
534  "null-div-by-zero",
535  po::value<bool>(&g_null_div_by_zero)
536  ->default_value(g_null_div_by_zero)
537  ->implicit_value(true),
538  "Return null on division by zero instead of throwing an exception.");
539  help_desc.add_options()(
540  "num-reader-threads",
541  po::value<size_t>(&num_reader_threads)->default_value(num_reader_threads),
542  "Number of reader threads to use.");
543  help_desc.add_options()(
544  "overlaps-max-table-size-bytes",
545  po::value<size_t>(&g_overlaps_max_table_size_bytes)
546  ->default_value(g_overlaps_max_table_size_bytes),
547  "The maximum size in bytes of the hash table for an overlaps hash join.");
548  if (!dist_v5_) {
549  help_desc.add_options()("port,p",
550  po::value<int>(&mapd_parameters.omnisci_server_port)
551  ->default_value(mapd_parameters.omnisci_server_port),
552  "TCP Port number.");
553  }
554  help_desc.add_options()("num-gpus",
555  po::value<int>(&num_gpus)->default_value(num_gpus),
556  "Number of gpus to use.");
557  help_desc.add_options()(
558  "read-only",
559  po::value<bool>(&read_only)->default_value(read_only)->implicit_value(true),
560  "Enable read-only mode.");
561  help_desc.add_options()(
562  "res-gpu-mem",
563  po::value<size_t>(&reserved_gpu_mem)->default_value(reserved_gpu_mem),
564  "Reduces GPU memory available to the OmniSci allocator by this amount. Used for "
565  "compiled code cache and ancillary GPU functions and other processes that may also "
566  "be using the GPU concurrent with OmniSciDB.");
567  help_desc.add_options()("start-gpu",
568  po::value<int>(&start_gpu)->default_value(start_gpu),
569  "First gpu to use.");
570  help_desc.add_options()("trivial-loop-join-threshold",
571  po::value<unsigned>(&g_trivial_loop_join_threshold)
572  ->default_value(g_trivial_loop_join_threshold)
573  ->implicit_value(1000),
574  "The maximum number of rows in the inner table of a loop join "
575  "considered to be trivially small.");
576  help_desc.add_options()("verbose",
577  po::value<bool>(&verbose_logging)
578  ->default_value(verbose_logging)
579  ->implicit_value(true),
580  "Write additional debug log messages to server logs.");
581  help_desc.add_options()(
582  "enable-runtime-udf",
583  po::value<bool>(&enable_runtime_udf)
584  ->default_value(enable_runtime_udf)
585  ->implicit_value(true),
586  "Enable runtime UDF registration by passing signatures and corresponding LLVM IR "
587  "to the `register_runtime_udf` endpoint. For use with the Python Remote Backend "
588  "Compiler server, packaged separately.");
589  help_desc.add_options()("version,v", "Print Version Number.");
590  help_desc.add_options()("enable-experimental-string-functions",
593  ->implicit_value(true),
594  "Enable experimental string functions.");
595 
597 }
float g_filter_push_down_low_frac
Definition: Execute.cpp:83
bool g_cache_string_hash
Definition: Execute.cpp:88
size_t gpu_buffer_mem_bytes
bool g_enable_debug_timer
Definition: Logger.cpp:17
boost::program_options::options_description const & get_options() const
Definition: Logger.cpp:75
size_t g_filter_push_down_passing_row_ubound
Definition: Execute.cpp:85
unsigned g_trivial_loop_join_threshold
Definition: Execute.cpp:76
int g_hll_precision_bits
size_t cuda_block_size
po::options_description help_desc
Definition: MapDServer.cpp:338
bool g_enable_overlaps_hashjoin
Definition: Execute.cpp:87
bool g_inner_join_fragment_skipping
Definition: Execute.cpp:78
const bool dist_v5_
Definition: MapDServer.cpp:357
bool g_null_div_by_zero
Definition: Execute.cpp:75
MapDParameters mapd_parameters
Definition: MapDServer.cpp:293
bool g_from_table_reordering
Definition: Execute.cpp:77
std::string config_file
unsigned dynamic_watchdog_time_limit
Definition: MapDServer.cpp:304
size_t cuda_grid_size
float g_filter_push_down_high_frac
Definition: Execute.cpp:84
bool g_bigint_count
std::string base_path
Definition: MapDServer.cpp:279
size_t g_overlaps_max_table_size_bytes
Definition: Execute.cpp:89
size_t calcite_max_mem
std::string db_query_file
Definition: MapDServer.cpp:319
double gpu_input_mem_limit
size_t cpu_buffer_mem_bytes
bool g_enable_filter_push_down
Definition: Execute.cpp:82
bool g_enable_experimental_string_functions
po::positional_options_description positional_options
Definition: MapDServer.cpp:341
bool g_allow_cpu_retry
Definition: Execute.cpp:74
bool g_enable_thrift_logs
Definition: MapDServer.cpp:83
logger::LogOptions log_options_
Definition: MapDServer.cpp:340
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNodeIds()

std::string MapDProgramOptions::getNodeIds ( )

◆ getNodeIdsArray()

std::vector<std::string> MapDProgramOptions::getNodeIdsArray ( )

◆ init_logging()

void MapDProgramOptions::init_logging ( )

Definition at line 360 of file MapDServer.cpp.

References base_path, logger::DEBUG1, logger::init(), log_options_, logger::LogOptions::set_base_path(), logger::LogOptions::severity_, and verbose_logging.

Referenced by main().

360  {
363  }
366 }
void init(LogOptions const &log_opts)
Definition: Logger.cpp:272
std::string base_path
Definition: MapDServer.cpp:279
Severity severity_
Definition: Logger.h:118
void set_base_path(std::string const &base_path)
Definition: Logger.cpp:89
logger::LogOptions log_options_
Definition: MapDServer.cpp:340
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parse_command_line() [1/2]

bool MapDProgramOptions::parse_command_line ( int  argc,
char **  argv,
int &  return_code 
)

◆ parse_command_line() [2/2]

boost::optional< int > MapDProgramOptions::parse_command_line ( int  argc,
char const *const *  argv 
)

Definition at line 871 of file MapDServer.cpp.

References AuthMetadata::allowLocalAuthFallback, authMetadata, AuthMetadata::ca_file_name, MapDParameters::calcite_max_mem, MapDParameters::calcite_port, MapDParameters::config_file, MapDParameters::cuda_block_size, MapDParameters::cuda_grid_size, developer_desc, AuthMetadata::distinguishedName, dynamic_watchdog_time_limit, MapDParameters::enable_calcite_view_optimize, enable_dynamic_watchdog, enable_runtime_udf, enable_watchdog, logger::ERROR, g_dynamic_watchdog_time_limit, g_enable_dynamic_watchdog, g_enable_filter_push_down, g_enable_watchdog, g_from_table_reordering, MapDParameters::ha_brokers, MapDParameters::ha_group_id, MapDParameters::ha_shared_data, MapDParameters::ha_unique_server_id, help_desc, logger::INFO, AuthMetadata::ldapQueryUrl, AuthMetadata::ldapRoleRegex, AuthMetadata::ldapSuperUserRole, LOG, mapd_parameters, MAPD_RELEASE, MapDParameters::omnisci_server_port, positional_options, AuthMetadata::restToken, AuthMetadata::restUrl, run, anonymous_namespace{MapDServer.cpp}::sanitize_config_file(), MapDParameters::ssl_cert_file, MapDParameters::ssl_key_file, MapDParameters::ssl_keystore, MapDParameters::ssl_trust_ca_file, MapDParameters::ssl_trust_store, anonymous_namespace{MapDServer.cpp}::trim_and_check_file_exists(), udf_file_name, AuthMetadata::uri, and vm.

Referenced by main().

872  {
873  po::options_description all_desc("All options");
874  all_desc.add(help_desc).add(developer_desc);
875 
876  try {
877  po::store(po::command_line_parser(argc, argv)
878  .options(all_desc)
879  .positional(positional_options)
880  .run(),
881  vm);
882  po::notify(vm);
883 
884  if (vm.count("config")) {
885  std::ifstream settings_file(mapd_parameters.config_file);
886 
887  auto sanitized_settings = sanitize_config_file(settings_file);
888 
889  po::store(po::parse_config_file(sanitized_settings, all_desc, false), vm);
890  po::notify(vm);
891  settings_file.close();
892  }
893 
895  return 1;
896  }
897  if (!trim_and_check_file_exists(authMetadata.ca_file_name, "ca file name")) {
898  return 1;
899  }
901  return 1;
902  }
904  return 1;
905  }
907  return 1;
908  }
910  return 1;
911  }
912 
913  if (vm.count("help")) {
914  std::cerr << "Usage: omnisci_server <data directory path> [-p <port number>] "
915  "[--http-port <http port number>] [--flush-log] [--version|-v]"
916  << std::endl
917  << std::endl;
918  std::cerr << help_desc << std::endl;
919  return 0;
920  }
921  if (vm.count("dev-options")) {
922  std::cout << "Usage: omnisci_server <data directory path> [-p <port number>] "
923  "[--http-port <http port number>] [--flush-log] [--version|-v]"
924  << std::endl
925  << std::endl;
926  std::cout << developer_desc << std::endl;
927  return 0;
928  }
929  if (vm.count("version")) {
930  std::cout << "OmniSci Version: " << MAPD_RELEASE << std::endl;
931  return 0;
932  }
933 
937  } catch (po::error& e) {
938  std::cerr << "Usage Error: " << e.what() << std::endl;
939  return 1;
940  }
941 
942  if (g_hll_precision_bits < 1 || g_hll_precision_bits > 16) {
943  std::cerr << "hll-precision-bits must be between 1 and 16." << std::endl;
944  return 1;
945  }
946 
948  LOG(INFO) << " From clause table reordering is disabled";
949  }
950 
952  LOG(INFO) << " Filter push down for JOIN is enabled";
953  }
954 
955  if (vm.count("udf")) {
956  boost::algorithm::trim_if(udf_file_name, boost::is_any_of("\"'"));
957 
958  if (!boost::filesystem::exists(udf_file_name)) {
959  LOG(ERROR) << " User defined function file " << udf_file_name << " does not exist.";
960  return 1;
961  }
962 
963  LOG(INFO) << " User provided extension functions loaded from " << udf_file_name;
964  }
965 
966  if (enable_runtime_udf) {
967  LOG(INFO) << " Runtime user defined extension functions enabled globally.";
968  }
969 
970  boost::algorithm::trim_if(mapd_parameters.ha_brokers, boost::is_any_of("\"'"));
971  boost::algorithm::trim_if(mapd_parameters.ha_group_id, boost::is_any_of("\"'"));
972  boost::algorithm::trim_if(mapd_parameters.ha_shared_data, boost::is_any_of("\"'"));
973  boost::algorithm::trim_if(mapd_parameters.ha_unique_server_id, boost::is_any_of("\"'"));
974 
975  if (!mapd_parameters.ha_group_id.empty()) {
976  LOG(INFO) << " HA group id " << mapd_parameters.ha_group_id;
977  if (mapd_parameters.ha_unique_server_id.empty()) {
978  LOG(ERROR) << "Starting server in HA mode --ha-unique-server-id must be set ";
979  return 5;
980  } else {
981  LOG(INFO) << " HA unique server id " << mapd_parameters.ha_unique_server_id;
982  }
983  if (mapd_parameters.ha_brokers.empty()) {
984  LOG(ERROR) << "Starting server in HA mode --ha-brokers must be set ";
985  return 6;
986  } else {
987  LOG(INFO) << " HA brokers " << mapd_parameters.ha_brokers;
988  }
989  if (mapd_parameters.ha_shared_data.empty()) {
990  LOG(ERROR) << "Starting server in HA mode --ha-shared-data must be set ";
991  return 7;
992  } else {
993  LOG(INFO) << " HA shared data is " << mapd_parameters.ha_shared_data;
994  }
995  }
996  LOG(INFO) << " cuda block size " << mapd_parameters.cuda_block_size;
997  LOG(INFO) << " cuda grid size " << mapd_parameters.cuda_grid_size;
998  LOG(INFO) << " calcite JVM max memory " << mapd_parameters.calcite_max_mem;
999  LOG(INFO) << " OmniSci Server Port " << mapd_parameters.omnisci_server_port;
1000  LOG(INFO) << " OmniSci Calcite Port " << mapd_parameters.calcite_port;
1001  LOG(INFO) << " Enable Calcite view optimize "
1003 
1004  LOG(INFO) << " Allow Local Auth Fallback: "
1005  << (authMetadata.allowLocalAuthFallback ? "enabled" : "disabled");
1006 
1007  boost::algorithm::trim_if(authMetadata.distinguishedName, boost::is_any_of("\"'"));
1008  boost::algorithm::trim_if(authMetadata.uri, boost::is_any_of("\"'"));
1009  boost::algorithm::trim_if(authMetadata.ldapQueryUrl, boost::is_any_of("\"'"));
1010  boost::algorithm::trim_if(authMetadata.ldapRoleRegex, boost::is_any_of("\"'"));
1011  boost::algorithm::trim_if(authMetadata.ldapSuperUserRole, boost::is_any_of("\"'"));
1012  boost::algorithm::trim_if(authMetadata.restToken, boost::is_any_of("\"'"));
1013  boost::algorithm::trim_if(authMetadata.restUrl, boost::is_any_of("\"'"));
1014 
1015  return boost::none;
1016 }
std::string distinguishedName
Definition: AuthMetadata.h:25
std::string ldapQueryUrl
Definition: AuthMetadata.h:26
bool enable_calcite_view_optimize
std::string ssl_key_file
#define LOG(tag)
Definition: Logger.h:188
std::string ldapRoleRegex
Definition: AuthMetadata.h:27
std::string ssl_trust_store
std::string udf_file_name
Definition: MapDServer.cpp:333
std::string ssl_trust_ca_file
bool g_enable_dynamic_watchdog
Definition: Execute.cpp:72
size_t cuda_block_size
po::options_description help_desc
Definition: MapDServer.cpp:338
std::string ha_shared_data
std::string restToken
Definition: AuthMetadata.h:31
MapDParameters mapd_parameters
Definition: MapDServer.cpp:293
po::options_description developer_desc
Definition: MapDServer.cpp:339
bool g_from_table_reordering
Definition: Execute.cpp:77
std::string ssl_keystore
std::string restUrl
Definition: AuthMetadata.h:30
std::string config_file
unsigned dynamic_watchdog_time_limit
Definition: MapDServer.cpp:304
size_t cuda_grid_size
std::string uri
Definition: AuthMetadata.h:24
std::string ca_file_name
Definition: AuthMetadata.h:33
std::string ssl_cert_file
po::variables_map vm
Definition: MapDServer.cpp:346
size_t calcite_max_mem
std::string ldapSuperUserRole
Definition: AuthMetadata.h:28
bool trim_and_check_file_exists(std::string &filename, const std::string desc)
Definition: MapDServer.cpp:782
std::string ha_brokers
AuthMetadata authMetadata
Definition: MapDServer.cpp:291
std::stringstream sanitize_config_file(std::ifstream &in)
Definition: MapDServer.cpp:769
bool g_enable_filter_push_down
Definition: Execute.cpp:82
bool allowLocalAuthFallback
Definition: AuthMetadata.h:34
po::positional_options_description positional_options
Definition: MapDServer.cpp:341
bool g_enable_watchdog
Definition: Execute.cpp:71
std::string ha_group_id
static const std::string MAPD_RELEASE
Definition: release.h:43
static bool run
unsigned g_dynamic_watchdog_time_limit
Definition: Execute.cpp:73
std::string ha_unique_server_id
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validate()

void MapDProgramOptions::validate ( )

Definition at line 802 of file MapDServer.cpp.

References base_path, File_Namespace::close(), db_query_file, dynamic_watchdog_time_limit, enable_dynamic_watchdog, enable_watchdog, g_enable_debug_timer, idle_session_duration, logger::INFO, LOG, max_session_duration, OMNISCI_SYSTEM_CATALOG, File_Namespace::open(), to_string(), and File_Namespace::write().

Referenced by main().

802  {
803  boost::algorithm::trim_if(base_path, boost::is_any_of("\"'"));
804  const auto data_path = boost::filesystem::path(base_path) / "mapd_data";
805  if (!boost::filesystem::exists(data_path)) {
806  throw std::runtime_error("OmniSci data directory does not exist at '" + base_path +
807  "'");
808  }
809 
810  {
811  const auto lock_file = boost::filesystem::path(base_path) / "omnisci_server_pid.lck";
812  auto pid = std::to_string(getpid());
813 
814  int pid_fd = open(lock_file.c_str(), O_RDWR | O_CREAT, 0644);
815  if (pid_fd == -1) {
816  auto err = std::string("Failed to open PID file ") + lock_file.c_str() + ". " +
817  strerror(errno) + ".";
818  throw std::runtime_error(err);
819  }
820  if (lockf(pid_fd, F_TLOCK, 0) == -1) {
821  close(pid_fd);
822  auto err = std::string("Another OmniSci Server is using data directory ") +
823  base_path + ".";
824  throw std::runtime_error(err);
825  }
826  if (ftruncate(pid_fd, 0) == -1) {
827  close(pid_fd);
828  auto err = std::string("Failed to truncate PID file ") + lock_file.c_str() + ". " +
829  strerror(errno) + ".";
830  throw std::runtime_error(err);
831  }
832  if (write(pid_fd, pid.c_str(), pid.length()) == -1) {
833  close(pid_fd);
834  auto err = std::string("Failed to write PID file ") + lock_file.c_str() + ". " +
835  strerror(errno) + ".";
836  throw std::runtime_error(err);
837  }
838  }
839  boost::algorithm::trim_if(db_query_file, boost::is_any_of("\"'"));
840  if (db_query_file.length() > 0 && !boost::filesystem::exists(db_query_file)) {
841  throw std::runtime_error("File containing DB queries " + db_query_file +
842  " does not exist.");
843  }
844  const auto db_file =
845  boost::filesystem::path(base_path) / "mapd_catalogs" / OMNISCI_SYSTEM_CATALOG;
846  if (!boost::filesystem::exists(db_file)) {
847  { // check old system catalog existsense
848  const auto db_file = boost::filesystem::path(base_path) / "mapd_catalogs/mapd";
849  if (!boost::filesystem::exists(db_file)) {
850  throw std::runtime_error("OmniSci system catalog " + OMNISCI_SYSTEM_CATALOG +
851  " does not exist.");
852  }
853  }
854  }
855 
856  // add all parameters to be displayed on startup
857  LOG(INFO) << "OmniSci started with data directory at '" << base_path << "'";
858  LOG(INFO) << " Watchdog is set to " << enable_watchdog;
859  LOG(INFO) << " Dynamic Watchdog is set to " << enable_dynamic_watchdog;
861  LOG(INFO) << " Dynamic Watchdog timeout is set to " << dynamic_watchdog_time_limit;
862  }
863 
864  LOG(INFO) << " Debug Timer is set to " << g_enable_debug_timer;
865 
866  LOG(INFO) << " Maximum Idle session duration " << idle_session_duration;
867 
868  LOG(INFO) << " Maximum active session duration " << max_session_duration;
869 }
#define LOG(tag)
Definition: Logger.h:188
bool g_enable_debug_timer
Definition: Logger.cpp:17
const std::string OMNISCI_SYSTEM_CATALOG
Definition: SysCatalog.h:58
std::string to_string(char const *&&v)
unsigned dynamic_watchdog_time_limit
Definition: MapDServer.cpp:304
std::string base_path
Definition: MapDServer.cpp:279
std::string db_query_file
Definition: MapDServer.cpp:319
FILE * open(int fileId)
Opens/creates the file with the given id; returns NULL on error.
Definition: File.cpp:82
size_t write(FILE *f, const size_t offset, const size_t size, int8_t *buf)
Writes the specified number of bytes to the offset position in file f from buf.
Definition: File.cpp:120
void close(FILE *f)
Closes the file pointed to by the FILE pointer.
Definition: File.cpp:101
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validate_base_path()

void MapDProgramOptions::validate_base_path ( )

Definition at line 795 of file MapDServer.cpp.

References base_path.

Referenced by main().

795  {
796  boost::algorithm::trim_if(base_path, boost::is_any_of("\"'"));
797  if (!boost::filesystem::exists(base_path)) {
798  throw std::runtime_error("OmniSci base directory does not exist at " + base_path);
799  }
800 }
std::string base_path
Definition: MapDServer.cpp:279
+ Here is the caller graph for this function:

Member Data Documentation

◆ allow_loop_joins

bool MapDProgramOptions::allow_loop_joins = false

Definition at line 289 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ allow_multifrag

bool MapDProgramOptions::allow_multifrag = true

Definition at line 287 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

◆ authMetadata

AuthMetadata MapDProgramOptions::authMetadata

Definition at line 291 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), parse_command_line(), and startMapdServer().

◆ base_path

std::string MapDProgramOptions::base_path

◆ cluster_file

std::string MapDProgramOptions::cluster_file = {"cluster.conf"}

Definition at line 280 of file MapDServer.cpp.

◆ cluster_topology_file

std::string MapDProgramOptions::cluster_topology_file = {"cluster_topology.conf"}

Definition at line 281 of file MapDServer.cpp.

◆ clusterIds_arg

std::string MapDProgramOptions::clusterIds_arg

Definition at line 347 of file MapDServer.cpp.

◆ config_file

std::string MapDProgramOptions::config_file = {"mapd.conf"}

Definition at line 37 of file MapDProgramOptions.h.

◆ cpu_only

bool MapDProgramOptions::cpu_only = false

Definition at line 283 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ db_leaves

std::vector< LeafHostInfo > MapDProgramOptions::db_leaves

Definition at line 344 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ db_query_file

std::string MapDProgramOptions::db_query_file = {""}

path to file containing warmup queries list

Definition at line 319 of file MapDServer.cpp.

Referenced by fillOptions(), startMapdServer(), and validate().

◆ developer_desc

po::options_description MapDProgramOptions::developer_desc

Definition at line 339 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and parse_command_line().

◆ dist_v5_

const bool MapDProgramOptions::dist_v5_

Definition at line 357 of file MapDServer.cpp.

Referenced by fillOptions().

◆ dynamic_watchdog_time_limit

unsigned MapDProgramOptions::dynamic_watchdog_time_limit = 10000

Definition at line 304 of file MapDServer.cpp.

Referenced by fillOptions(), parse_command_line(), and validate().

◆ enable_auto_clear_render_mem

bool MapDProgramOptions::enable_auto_clear_render_mem = false

Definition at line 295 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ enable_dynamic_watchdog

bool MapDProgramOptions::enable_dynamic_watchdog = false

Definition at line 303 of file MapDServer.cpp.

Referenced by fillOptions(), parse_command_line(), and validate().

◆ enable_legacy_syntax

bool MapDProgramOptions::enable_legacy_syntax = true

Definition at line 290 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

◆ enable_rendering

bool MapDProgramOptions::enable_rendering = false

Definition at line 294 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ enable_runtime_udf

bool MapDProgramOptions::enable_runtime_udf = false

Definition at line 300 of file MapDServer.cpp.

Referenced by fillOptions(), parse_command_line(), and startMapdServer().

◆ enable_watchdog

bool MapDProgramOptions::enable_watchdog = true

Definition at line 302 of file MapDServer.cpp.

Referenced by fillOptions(), parse_command_line(), and validate().

◆ exit_after_warmup

bool MapDProgramOptions::exit_after_warmup = false

exit after warmup

Definition at line 323 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ flush_log

bool MapDProgramOptions::flush_log = true

Definition at line 40 of file MapDProgramOptions.h.

◆ help_desc

po::options_description MapDProgramOptions::help_desc

Definition at line 338 of file MapDServer.cpp.

Referenced by fillOptions(), and parse_command_line().

◆ http_port

int MapDProgramOptions::http_port = 6278

Definition at line 277 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ idle_session_duration

int MapDProgramOptions::idle_session_duration = kMinsPerHour

Inactive session tolerance in mins (60 mins)

Definition at line 327 of file MapDServer.cpp.

Referenced by fillOptions(), startMapdServer(), and validate().

◆ intel_jit_profile

bool MapDProgramOptions::intel_jit_profile = false

Definition at line 286 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

◆ jit_debug

bool MapDProgramOptions::jit_debug = false

Definition at line 285 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

◆ license_path

std::string MapDProgramOptions::license_path = {""}

Definition at line 282 of file MapDServer.cpp.

◆ log_options_

logger::LogOptions MapDProgramOptions::log_options_

Definition at line 340 of file MapDServer.cpp.

Referenced by fillOptions(), and init_logging().

◆ mapd_parameters

MapDParameters MapDProgramOptions::mapd_parameters

◆ max_session_duration

int MapDProgramOptions::max_session_duration = kMinsPerMonth

Maximum session life in mins (43,200 mins == 30 Days) (https://pages.nist.gov/800-63-3/sp800-63b.html#aal3reauth)

Definition at line 332 of file MapDServer.cpp.

Referenced by fillOptions(), startMapdServer(), and validate().

◆ nodeIds_token

const std::string MapDProgramOptions::nodeIds_token = {"node_id"}
static

Definition at line 351 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ num_gpus

int MapDProgramOptions::num_gpus = -1

Can be used to override the number of gpus detected on the system -1 means do not override

Definition at line 310 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ num_reader_threads

size_t MapDProgramOptions::num_reader_threads = 0

Number of threads used when loading data

Definition at line 315 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ positional_options

po::positional_options_description MapDProgramOptions::positional_options

Definition at line 341 of file MapDServer.cpp.

Referenced by fillOptions(), and parse_command_line().

◆ read_only

bool MapDProgramOptions::read_only = false

Definition at line 288 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ render_mem_bytes

size_t MapDProgramOptions::render_mem_bytes = 500000000

Definition at line 297 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ render_oom_retry_threshold

int MapDProgramOptions::render_oom_retry_threshold = 0

Definition at line 296 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ render_poly_cache_bytes

size_t MapDProgramOptions::render_poly_cache_bytes = 300000000

Definition at line 298 of file MapDServer.cpp.

◆ reserved_gpu_mem

size_t MapDProgramOptions::reserved_gpu_mem = 1 << 27

Definition at line 278 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ start_gpu

int MapDProgramOptions::start_gpu = 0

Definition at line 311 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

◆ string_leaves

std::vector< LeafHostInfo > MapDProgramOptions::string_leaves

Definition at line 345 of file MapDServer.cpp.

Referenced by startMapdServer().

◆ udf_file_name

std::string MapDProgramOptions::udf_file_name = {""}

Definition at line 333 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), parse_command_line(), and startMapdServer().

◆ verbose_logging

bool MapDProgramOptions::verbose_logging = false

Definition at line 284 of file MapDServer.cpp.

Referenced by fillOptions(), and init_logging().

◆ vm [1/2]

boost::program_options::variables_map MapDProgramOptions::vm
private

Definition at line 73 of file MapDProgramOptions.h.

◆ vm [2/2]

po::variables_map MapDProgramOptions::vm

Definition at line 346 of file MapDServer.cpp.

Referenced by parse_command_line().


The documentation for this class was generated from the following files: