Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13632 )

Change subject: KUDU-2823 Place tablet replicas based on dimension
......................................................................

KUDU-2823 Place tablet replicas based on dimension

When we add a new range to the fact table, we expect replicas
of the newly created tablet to be evenly distributed across all
available tablet servers.

This is especially important when we use time as the range key.
The more recent the data, the hotter it gets. We expect hot tablets
on the cluster to be evenly distributed.

Unfortunately, after we add some new tablet servers to the cluster,
creating a new tablet replica will prioritize the new tablet server for
placement according to the current placement policy. This is because
we prefer to select tablet server which a smaller number of tablet
replicas. This will cause hot tablets to be concentrated on these new
tablet servers.

So, I added a new placement policy. When creating a new tablet replica,
we prefer to select tablet server which a smaller number of tablet
replicas in the dimension. You can set dimensions when creating tables
and adding partitions, this will ensure that the new tablets are evenly
distributed in the cluster based on dimension.

Change-Id: I48a225e221eb42ef2f5489687e80a151d8dc1a42
Reviewed-on: http://gerrit.cloudera.org:8080/13632
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo <a...@cloudera.com>
Reviewed-by: Alexey Serbin <aser...@cloudera.com>
---
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/table_alterer-internal.cc
M src/kudu/client/table_alterer-internal.h
M src/kudu/client/table_creator-internal.h
M src/kudu/integration-tests/create-table-itest.cc
M src/kudu/master/catalog_manager.cc
M src/kudu/master/catalog_manager.h
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/master/placement_policy-test.cc
M src/kudu/master/placement_policy.cc
M src/kudu/master/placement_policy.h
M src/kudu/master/sys_catalog.cc
M src/kudu/master/ts_descriptor.cc
M src/kudu/master/ts_descriptor.h
M src/kudu/tablet/metadata.proto
M src/kudu/tablet/tablet-harness.h
M src/kudu/tablet/tablet_bootstrap-test.cc
M src/kudu/tablet/tablet_metadata.cc
M src/kudu/tablet/tablet_metadata.h
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/tserver/heartbeater.cc
M src/kudu/tserver/mini_tablet_server.cc
M src/kudu/tserver/tablet_copy_client.cc
M src/kudu/tserver/tablet_server-test.cc
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/ts_tablet_manager-test.cc
M src/kudu/tserver/ts_tablet_manager.cc
M src/kudu/tserver/ts_tablet_manager.h
M src/kudu/tserver/tserver_admin.proto
31 files changed, 642 insertions(+), 129 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Adar Dembo: Looks good to me, but someone else must approve
  Alexey Serbin: Looks good to me, approved

-- 
To view, visit http://gerrit.cloudera.org:8080/13632
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I48a225e221eb42ef2f5489687e80a151d8dc1a42
Gerrit-Change-Number: 13632
Gerrit-PatchSet: 23
Gerrit-Owner: Yao Xu <ocla...@gmail.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: Yao Xu <ocla...@gmail.com>

Reply via email to