OmniSciDB  b24e664e58
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 config_file = {"mapd.conf"}
 
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_
 
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::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:358
void fillAdvancedOptions()
Definition: MapDServer.cpp:600
logger::LogOptions log_options_
Definition: MapDServer.cpp:341

+ Here is the call graph for this function:

MapDProgramOptions::MapDProgramOptions ( )

Member Function Documentation

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

Definition at line 600 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().

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

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

Definition at line 369 of file MapDServer.cpp.

References allow_loop_joins, base_path, MapDParameters::calcite_max_mem, MapDParameters::calcite_port, 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().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string MapDProgramOptions::getNodeIds ( )
std::vector<std::string> MapDProgramOptions::getNodeIdsArray ( )
void MapDProgramOptions::init_logging ( )

Definition at line 361 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().

361  {
364  }
367 }
void init(LogOptions const &log_opts)
Definition: Logger.cpp:265
std::string base_path
Definition: MapDServer.cpp:279
Severity severity_
Definition: Logger.h:116
void set_base_path(std::string const &base_path)
Definition: Logger.cpp:133
logger::LogOptions log_options_
Definition: MapDServer.cpp:341

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 872 of file MapDServer.cpp.

References AuthMetadata::allowLocalAuthFallback, authMetadata, AuthMetadata::ca_file_name, MapDParameters::calcite_max_mem, MapDParameters::calcite_port, 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().

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

void MapDProgramOptions::validate ( )

Definition at line 803 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().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MapDProgramOptions::validate_base_path ( )

Definition at line 796 of file MapDServer.cpp.

References base_path.

Referenced by main().

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

+ Here is the caller graph for this function:

Member Data Documentation

bool MapDProgramOptions::allow_loop_joins = false

Definition at line 290 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

bool MapDProgramOptions::allow_multifrag = true

Definition at line 288 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

AuthMetadata MapDProgramOptions::authMetadata

Definition at line 292 of file MapDServer.cpp.

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

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

Definition at line 281 of file MapDServer.cpp.

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

Definition at line 282 of file MapDServer.cpp.

std::string MapDProgramOptions::clusterIds_arg

Definition at line 348 of file MapDServer.cpp.

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

Definition at line 280 of file MapDServer.cpp.

Referenced by fillOptions(), and parse_command_line().

bool MapDProgramOptions::cpu_only = false

Definition at line 284 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

std::vector< LeafHostInfo > MapDProgramOptions::db_leaves

Definition at line 345 of file MapDServer.cpp.

Referenced by startMapdServer().

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

path to file containing warmup queries list

Definition at line 320 of file MapDServer.cpp.

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

po::options_description MapDProgramOptions::developer_desc

Definition at line 340 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and parse_command_line().

const bool MapDProgramOptions::dist_v5_

Definition at line 358 of file MapDServer.cpp.

Referenced by fillOptions().

unsigned MapDProgramOptions::dynamic_watchdog_time_limit = 10000

Definition at line 305 of file MapDServer.cpp.

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

bool MapDProgramOptions::enable_auto_clear_render_mem = false

Definition at line 296 of file MapDServer.cpp.

Referenced by startMapdServer().

bool MapDProgramOptions::enable_dynamic_watchdog = false

Definition at line 304 of file MapDServer.cpp.

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

bool MapDProgramOptions::enable_legacy_syntax = true

Definition at line 291 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

bool MapDProgramOptions::enable_rendering = false

Definition at line 295 of file MapDServer.cpp.

Referenced by startMapdServer().

bool MapDProgramOptions::enable_runtime_udf = false

Definition at line 301 of file MapDServer.cpp.

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

bool MapDProgramOptions::enable_watchdog = true

Definition at line 303 of file MapDServer.cpp.

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

bool MapDProgramOptions::exit_after_warmup = false

exit after warmup

Definition at line 324 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

bool MapDProgramOptions::flush_log = true

Definition at line 40 of file MapDProgramOptions.h.

po::options_description MapDProgramOptions::help_desc

Definition at line 339 of file MapDServer.cpp.

Referenced by fillOptions(), and parse_command_line().

int MapDProgramOptions::http_port = 6278

Definition at line 277 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

int MapDProgramOptions::idle_session_duration = kMinsPerHour

Inactive session tolerance in mins (60 mins)

Definition at line 328 of file MapDServer.cpp.

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

bool MapDProgramOptions::intel_jit_profile = false

Definition at line 287 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

bool MapDProgramOptions::jit_debug = false

Definition at line 286 of file MapDServer.cpp.

Referenced by fillAdvancedOptions(), and startMapdServer().

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

Definition at line 283 of file MapDServer.cpp.

logger::LogOptions MapDProgramOptions::log_options_

Definition at line 341 of file MapDServer.cpp.

Referenced by fillOptions(), and init_logging().

MapDParameters MapDProgramOptions::mapd_parameters
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 333 of file MapDServer.cpp.

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

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

Definition at line 352 of file MapDServer.cpp.

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 311 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

size_t MapDProgramOptions::num_reader_threads = 0

Number of threads used when loading data

Definition at line 316 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

po::positional_options_description MapDProgramOptions::positional_options

Definition at line 342 of file MapDServer.cpp.

Referenced by fillOptions(), and parse_command_line().

bool MapDProgramOptions::read_only = false

Definition at line 289 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

size_t MapDProgramOptions::render_mem_bytes = 500000000

Definition at line 298 of file MapDServer.cpp.

Referenced by startMapdServer().

int MapDProgramOptions::render_oom_retry_threshold = 0

Definition at line 297 of file MapDServer.cpp.

Referenced by startMapdServer().

size_t MapDProgramOptions::render_poly_cache_bytes = 300000000

Definition at line 299 of file MapDServer.cpp.

size_t MapDProgramOptions::reserved_gpu_mem = 1 << 27

Definition at line 278 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

int MapDProgramOptions::start_gpu = 0

Definition at line 312 of file MapDServer.cpp.

Referenced by fillOptions(), and startMapdServer().

std::vector< LeafHostInfo > MapDProgramOptions::string_leaves

Definition at line 346 of file MapDServer.cpp.

Referenced by startMapdServer().

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

Definition at line 334 of file MapDServer.cpp.

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

bool MapDProgramOptions::verbose_logging = false

Definition at line 285 of file MapDServer.cpp.

Referenced by fillOptions(), and init_logging().

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

Definition at line 73 of file MapDProgramOptions.h.

po::variables_map MapDProgramOptions::vm

Definition at line 347 of file MapDServer.cpp.

Referenced by parse_command_line().


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