From 69fb2293c4d38012e7c4781aaa39a47596125bbb Mon Sep 17 00:00:00 2001 From: Douglas Fuller Date: Fri, 29 Jun 2018 13:55:31 -0400 Subject: [PATCH] mon/OSDMonitor: Warn if missing expected_num_objects When creating a pool on filestore, warn if the user appears to be creating a pool to store a large number of objects but omitted the expected_num_objects parameter. Create the pool anyway. Fixes: http://tracker.ceph.com/issues/24687 Signed-off-by: Douglas Fuller --- src/mon/OSDMonitor.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 16c7af2ad0529..6da6e5a5c9c35 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -11127,6 +11127,17 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } + if (expected_num_objects == 0 && + cct->_conf->osd_objectstore == "filestore" && + cct->_conf->filestore_merge_threshold < 0) { + int osds = osdmap.get_num_osds(); + if (osds && (pg_num >= 1024 || pg_num / osds >= 100)) { + ss << "For better initial performance on pools expected to store a " + << "large number of objects, consider supplying the " + << "expected_num_objects parameter when creating the pool.\n"; + } + } + int64_t fast_read_param; cmd_getval(cct, cmdmap, "fast_read", fast_read_param, int64_t(-1)); FastReadType fast_read = FAST_READ_DEFAULT; -- 2.39.5