NDBD fetching config

出典: MySQL Practice Wiki

目次

main

main()からtheConfig->fetch_configuration()で取得。theConfigはConfigurationクラスのインスタンス。

  • kernel/main.cpp

Configuration::fetch_configuration()

ConfigRetriever::getConfig()を用いてMGMノードから設定データを取得。取得したデータをm_clusterConfigに設定データを格納。m_clusterConfigはndb_mgm_configurationのインスタンス。

  • kernel/vm/Configuration.cpp

ndb_mgm_configuration

struct ndb_mgm_configuration {
  ConfigValues m_config;
};

ndb_mgm_configuration_iteratorで操作。

  • mgmapi/mgmapi_configuration.hpp

ndb_mgm_configuration_iterator

struct ndb_mgm_configuration_iterator {
  Uint32 m_sectionNo;
  Uint32 m_typeOfSection;
  ConfigValues::ConstIterator m_config;

  ndb_mgm_configuration_iterator(const ndb_mgm_configuration &, unsigned type);
  ~ndb_mgm_configuration_iterator();

  int first();
  int next();
  int valid() const;
  int find(int param, unsigned value);

  int get(int param, unsigned * value) const ;
  int get(int param, Uint64 * value) const ;
  int get(int param, const char ** value) const ;

  //
  void reset();
  int enter();
};

ConfigValues

入れ物。

  • common/util/ConfigValues.cpp
個人用ツール