Skip to content

Bob config

Vladimir Stepanenko edited this page Jun 25, 2021 · 3 revisions

This page provides a specification of the node configuration file. An example configuration can be found here.

Specification

Node config

  • log_config
    • Description: logger config file path
    • Type: string
    • Required: true
  • name
    • Description: node name, required to match with cluster config
    • Type: string
    • Required: true
  • quorum
    • Description: min count of successful operations on replicas to consider operation successful
    • Type: uint
    • Required: true
  • operation_timeout
    • Description: timeout for every GRPC operation
    • Type: Time
    • Required: true
  • check_interval
    • Description: interval for checking connections
    • Type: Time
    • Required: true
  • count_interval
    • Description: interval for checking connections
    • Type: Time
    • Required: false
    • Default: "10000ms"
  • cluster_policy
    • Description: policy of interaction with another nodes
    • Type: string
    • Variants:
      • "simple": without connection checking
      • "quorum": with connection checking
    • Required: true
  • backend_type
    • Description: type of the backend
    • Type: string
    • Variants:
      • "pearl": stores data on disk
      • "in_memory": stores data in memory
      • "stub": does not store data
    • Required: true
  • pearl
    • Description: used only for "backend_type: pearl"
    • Type: Pearl
    • Required: false
  • metrics
    • Description: send metrics
    • Type: Metrics
    • Required: false
  • cleanup_interval
    • Description: interval for checking for blobs cleanup
    • Type: Time
    • Required: true
  • open_blobs_soft_limit
    • Description: soft limit for count of max blobs to remain in ram
    • Type: uint
    • Required: false
  • open_blobs_hard_limit
    • Description: hard limit for count of max blobs to remain in ram
    • Type: uint
    • Required: false
  • init_par_degree
    • Description:
    • Type: uint
    • Required: false
    • Default: 1
  • disk_access_par_degree
    • Description:
    • Type: uint
    • Required: false
    • Default: 1

Time type

time is a concatenation of spans. Where each span is an integer number and a suffix.

E.g.: [1y 2M 4w 8d 16h 32min 64s 128ms 256us]

Supported suffixes:

  • nsec, ns -- microseconds
  • usec, us -- microseconds
  • msec, ms -- milliseconds
  • seconds, second, sec, s
  • minutes, minute, min, m
  • hours, hour, hr, h
  • days, day, d
  • weeks, week, w
  • months, month, M -- defined as 30.44 days
  • years, year, y -- defined as 365.25 days

Metrics type

  • name
    • Description: base name for metrics
    • Type: string
    • Required: false
  • graphite
    • Description: graphite address
    • Type: string
    • Required: true
  • prefix
    • Description: metrics format string
    • Variables:
      • "{local_address}" - address of the current node
      • "{node_name}" - name of the current node
      • "{metrics_name}" - base name
    • Type: string
    • Required: false

Pearl type

  • max_blob_size
    • Description: max blob size in bytes
    • Type: uint
    • Required: false
    • Default: 1000000
  • max_data_in_blob
    • Description: max records in blob
    • Type: uint
    • Required: false
    • Default: 1000000
  • blob_file_name_prefix
    • Description: prefix of the blob file
    • Type: string
    • Required: false
    • Default: "bob"
  • fail_retry_timeout
    • Description: timeout to retry to reinit pearl backend after fail
    • Type: Time
    • Required: false
    • Default: "100ms"
  • fail_retry_count
    • Description: maximum number of initialization attempts
    • Type: uint
    • Required: false
    • Default: 3
  • alien_disk
    • Description: name of the disk to store aliens
    • Type: string
    • Required: false
  • allow_duplicates
    • Description: disables search for existing keys before write
    • Type: bool
    • Required: false
    • Default: true
  • settings
    • Description: describes how create and manage bob directories
    • Type: Settings
    • Required: true
  • hash_chars_count
    • Description: count of chars in directory with blobs
    • Type: uint
    • Required: false
    • Default: 10
  • enable_aio
    • Description: enable aio if available
    • Type: bool
    • Required: false
    • Default: true
  • disks_events_logfile
    • Description: path to log file for disks events
    • Type: string
    • Required: false
    • Default: "/tmp/bob_events.csv"
  • bloom_filter_max_buf_bits_count
    • Description: Max number of bits in bloom filter buffer
    • Type: uint
    • Required: false
    • Default: 8_388_608 (1 Mb)

Settings type

  • root_dir_name
    • Description: root dir for bob storage
    • Type: string
    • Required: true
  • alien_root_dir_name
    • Description: root dir for alien storage in 'alien_disk'
    • Type: string
    • Required: true
  • timestamp_period
    • Description: period when new pearl directory created
    • Type: Time
    • Required: true
  • create_pearl_wait_delay
    • Description: each thread will wait this period if another thread creating pearl
    • Type: string
    • Required: true
Clone this wiki locally