From aa2635b81b51b2e1a6dccabb595567c7a8ccfdfd 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 (cherry picked from commit 69fb2293c4d38012e7c4781aaa39a47596125bbb) --- src/mon/OSDMonitor.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index ea41571c7770..da55af151949 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -11071,6 +11071,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.47.3