Dan Burkert has uploaded a new change for review. http://gerrit.cloudera.org:8080/3229
Change subject: Remove default table partitioning ...................................................................... Remove default table partitioning This commit removes the current default of creating tables with range partitioning over the primary key columns with no splits. This default is problematic because it results in a single tablet, which is a known anti-pattern. Kudu can't predict appropriate split rows without knowledge of the dataset, so creating default splits is not technically feasible. A better default to range partitioning would be to hash partition on the primary key columns with a number of buckets based on the number of tablet servers. Unfortunately, it's similarly difficult to predict an appopriate number of hash buckets with knowledge of the data set. Since changing the default would be a breaking change, and we don't currently have a bullet-proof default option, this commit changes the table creator in the C++ and Java clients to force users to explicitly specify at least range or hash partitioning. Users who really do want a table with no partitioning (a single tablet), can still explicitly set the range partition columns to an empty list and provide no split rows. Change-Id: I7021d7950f8dbb4918503ea6fab2e6ee35076064 Reviewed-on: http://gerrit.cloudera.org:8080/3131 Tested-by: Kudu Jenkins Reviewed-by: Misty Stanley-Jones <mi...@apache.org> (cherry picked from commit 0e7c257f950e8875fe9d6a541cc03918ae23912e) --- M docs/release_notes.adoc M docs/schema_design.adoc M java/kudu-client-tools/src/main/java/org/kududb/mapreduce/tools/IntegrationTestBigLinkedList.java M java/kudu-client-tools/src/test/java/org/kududb/mapreduce/tools/ITImportCsv.java M java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java M java/kudu-client/src/main/java/org/kududb/client/CreateTableOptions.java M java/kudu-client/src/main/java/org/kududb/client/KuduClient.java M java/kudu-client/src/test/java/org/kududb/client/BaseKuduTest.java M java/kudu-client/src/test/java/org/kududb/client/TestAsyncKuduClient.java M java/kudu-client/src/test/java/org/kududb/client/TestAsyncKuduSession.java M java/kudu-client/src/test/java/org/kududb/client/TestFlexiblePartitioning.java M java/kudu-client/src/test/java/org/kududb/client/TestHybridTime.java M java/kudu-client/src/test/java/org/kududb/client/TestKuduClient.java M java/kudu-client/src/test/java/org/kududb/client/TestKuduSession.java M java/kudu-client/src/test/java/org/kududb/client/TestKuduTable.java M java/kudu-client/src/test/java/org/kududb/client/TestLeaderFailover.java M java/kudu-client/src/test/java/org/kududb/client/TestMasterFailover.java M java/kudu-client/src/test/java/org/kududb/client/TestRowErrors.java M java/kudu-client/src/test/java/org/kududb/client/TestRowResult.java M java/kudu-client/src/test/java/org/kududb/client/TestScanPredicate.java M java/kudu-client/src/test/java/org/kududb/client/TestScannerMultiTablet.java M java/kudu-client/src/test/java/org/kududb/client/TestStatistics.java M java/kudu-client/src/test/java/org/kududb/client/TestTimeouts.java M java/kudu-flume-sink/src/test/java/org/kududb/flume/sink/KuduSinkTest.java M java/kudu-mapreduce/src/test/java/org/kududb/mapreduce/ITKuduTableInputFormat.java M java/kudu-mapreduce/src/test/java/org/kududb/mapreduce/ITKuduTableOutputFormat.java M java/kudu-mapreduce/src/test/java/org/kududb/mapreduce/ITOutputFormatJob.java M java/kudu-spark/src/test/scala/org/kududb/spark/kudu/DefaultSourceTest.scala M java/kudu-spark/src/test/scala/org/kududb/spark/kudu/TestContext.scala M python/kudu/client.pyx M python/kudu/tests/common.py M python/kudu/tests/test_client.py M src/kudu/benchmarks/tpch/rpc_line_item_dao.cc M src/kudu/client/client-test.cc M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/client/predicate-test.cc M src/kudu/client/samples/sample.cc M src/kudu/integration-tests/all_types-itest.cc M src/kudu/integration-tests/alter_table-randomized-test.cc M src/kudu/integration-tests/alter_table-test.cc M src/kudu/integration-tests/create-table-itest.cc M src/kudu/integration-tests/create-table-stress-test.cc M src/kudu/integration-tests/delete_table-test.cc M src/kudu/integration-tests/full_stack-insert-scan-test.cc M src/kudu/integration-tests/fuzz-itest.cc M src/kudu/integration-tests/linked_list-test-util.h M src/kudu/integration-tests/master_failover-itest.cc M src/kudu/integration-tests/master_replication-itest.cc M src/kudu/integration-tests/remote_bootstrap-itest.cc M src/kudu/integration-tests/test_workload.cc M src/kudu/integration-tests/ts_itest-base.h M src/kudu/integration-tests/ts_tablet_manager-itest.cc M src/kudu/integration-tests/update_scan_delta_compact-test.cc M src/kudu/integration-tests/write_throttling-itest.cc M src/kudu/tools/ksck_remote-test.cc 56 files changed, 226 insertions(+), 140 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/29/3229/1 -- To view, visit http://gerrit.cloudera.org:8080/3229 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7021d7950f8dbb4918503ea6fab2e6ee35076064 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: branch-0.9.x Gerrit-Owner: Dan Burkert <d...@cloudera.com>