tserver: sort /tablets list by table name first I noticed when I'm looking at /tablets I usually am most interested in looking at tablets from a particular table. So, sorting by tablet ID is not that useful. This patch changes to sorting by table name first, and then within each table sorting by tablet ID.
Change-Id: I70559d6812343c804d5742b66e29b58e93e38615 Reviewed-on: http://gerrit.cloudera.org:8080/4297 Reviewed-by: Adar Dembo <[email protected]> Reviewed-by: Will Berkeley <[email protected]> Tested-by: Kudu Jenkins Project: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/da73a2bf Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/da73a2bf Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/da73a2bf Branch: refs/heads/master Commit: da73a2bf70c9015c131d4a39128e09fbcbeabc07 Parents: d5a1f2d Author: Todd Lipcon <[email protected]> Authored: Thu Sep 1 17:43:49 2016 -0700 Committer: Todd Lipcon <[email protected]> Committed: Fri Sep 2 01:31:29 2016 +0000 ---------------------------------------------------------------------- src/kudu/tserver/tserver-path-handlers.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kudu/blob/da73a2bf/src/kudu/tserver/tserver-path-handlers.cc ---------------------------------------------------------------------- diff --git a/src/kudu/tserver/tserver-path-handlers.cc b/src/kudu/tserver/tserver-path-handlers.cc index 962fa55..df6f6bf 100644 --- a/src/kudu/tserver/tserver-path-handlers.cc +++ b/src/kudu/tserver/tserver-path-handlers.cc @@ -173,18 +173,20 @@ string TabletLink(const string& id) { EscapeForHtmlToString(id)); } -bool CompareByTabletId(const scoped_refptr<TabletPeer>& a, - const scoped_refptr<TabletPeer>& b) { - return a->tablet_id() < b->tablet_id(); -} - } // anonymous namespace void TabletServerPathHandlers::HandleTabletsPage(const Webserver::WebRequest& req, std::stringstream *output) { vector<scoped_refptr<TabletPeer> > peers; tserver_->tablet_manager()->GetTabletPeers(&peers); - std::sort(peers.begin(), peers.end(), &CompareByTabletId); + + // Sort by (table_name, tablet_id) tuples. + std::sort(peers.begin(), peers.end(), + [](const scoped_refptr<TabletPeer>& peer_a, + const scoped_refptr<TabletPeer>& peer_b) { + return std::make_pair(peer_a->tablet_metadata()->table_name(), peer_a->tablet_id()) < + std::make_pair(peer_b->tablet_metadata()->table_name(), peer_b->tablet_id()); + }); *output << "<h1>Tablets</h1>\n"; *output << "<table class='table table-striped'>\n";
