Changes to md_config_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

There's a change headed for master soon
(https://github.com/ceph/ceph/pull/16211) that will rework how config
settings are declared.  Currently they're declared using a
preprocessor macro, which is a bit too inflexible for some desirable
enhancements like having different defaults for clients vs servers,
adding more bounds/range checking, and adding more descriptive doc
metadata.

The thing that will effect you immediately is how to add new config settings:
 - Add them in common/options.cc
 - Access them using md_config_t::get()

The old-style definitions for existing settings still exist in
common/legacy_config_opts.h.  Do *not* add new definitions to that
file.  All the definitions in that file now have equivalent
definitions in common/options.cc, and the ones in common/options.cc
are authoritative.

The old header lives on in order to generate C++ member definitions
for the options in md_config_t (i.e. so that you can get at them with
g_conf->my_config_opt).  Once the consuming code has been modified to
avoid accessing them that way, the entries from legacy_config_opts.h
can be removed.

This sacrifices the compile-time check that you would previously get
by accessing a class member.  The benefit is that we can do all the
new-style stuff with clean C++, that we can in principle load
definitions at runtime (e.g. from the planned central mon config
store), and that md_config_t will now know which options are really in
use (because they're accessed by function and not by direct member
access).

John
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux