{"push_id":1431759719,"size":17,"distinct_size":17,"ref":"refs/heads/master","head":"8ffc6d1843fefe0b5f932ed4c00b086355b05cad","before":"6f423302d18460355f6b6111ba283a54ca2d9faa","commits":[{"sha":"eb4b46b800a92d4964e5d0eaec4a4fd011463901","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"cfile: make encoder/decoder classes final\n\nMarking the classes final means that the compiler can be sure that a\nvirtual method call from within the class will always be satisfied by\nthe implementation in that same class (since no subclass could exist).\n\nThis increases inlining opportunities and other downstream\noptimizations, and should improve performance a few percent in various\nspots.\n\nI verified the effect by running:\n\n  perf record  ./build/latest/bin/cfile-test --gtest_filter=\\*100MFileStringsPlain\\*0\n  perf report -n | grep BinaryPlainBlockBuilder | c++filt\n\nBefore:\n  Overhead       Samples  Command          Shared Object        Symbol\n     6.22%          1943  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::Add(unsigned char const*, unsigned long)\n     1.23%           386  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::IsBlockFull() const\n     0.23%            73  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::Finish(unsigned int)\n     0.00%             1  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::Reset()\n\nAfter:\n  Overhead       Samples  Command          Shared Object        Symbol\n     6.21%          1868  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::Add(unsigned char const*, unsigned long)\n     0.23%            69  cfile-test       cfile-test           [.] kudu::cfile::BinaryPlainBlockBuilder::Finish(unsigned int)\n\nYou can see that several functions were now inlined where they previously could\nnot be, and the sample count for 'Add' was also reduced.\n\nChange-Id: Ia0b8337868330b43595a275e837a448e3ba0c066\nReviewed-on: http://gerrit.cloudera.org:8080/5202\nReviewed-by: Dan Burkert <danburkert@apache.org>\nTested-by: Todd Lipcon <todd@apache.org>","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/eb4b46b800a92d4964e5d0eaec4a4fd011463901"},{"sha":"d74888c56d175b37f2b3c1ac90d28607653bc023","author":{"name":"Dan Burkert","email":"7dba38b9c523397e784544267dede802a4597d16@apache.org"},"message":"[java-client] KuduPredicate simplification for inequalities on boundary values\n\nAdds special casing for inequality predicates on minimum and maximum\nvalues. This tightens partition pruning in boundary cases. New tests are\nadded to cover the specific transformations. We already have good test\ncoverage of boundary values in TestScanPredicate.java.\n\nChange-Id: Id3779029d95532e91b235b4ed33a77e2a32ad072\nReviewed-on: http://gerrit.cloudera.org:8080/5272\nReviewed-by: Adar Dembo <adar@cloudera.com>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/d74888c56d175b37f2b3c1ac90d28607653bc023"},{"sha":"835cf6c1e38175c0bb019e62a294ed2bd9dc8102","author":{"name":"Dan Burkert","email":"7dba38b9c523397e784544267dede802a4597d16@apache.org"},"message":"[c++] ColumnPredicate simplification for inequalities on boundary values\n\nAdds special casing for inequality predicates on minimum and maximum\nvalues. This tightens partition pruning in boundary cases. New tests are\nadded to cover the specific transformations. We already have good test\ncoverage of boundary values in predicate-test.\n\nThese changes uncovered a bug in type traits where the minimum value for\nfloat types was defined as the lowest discrete value instead of\n-infinity, after adding the predicate simplification multiple test cases\nin predicate-test failed.\n\nChange-Id: I9bb150249a51a69fb85af67d34e85b7d7bed325c\nReviewed-on: http://gerrit.cloudera.org:8080/5273\nReviewed-by: Adar Dembo <adar@cloudera.com>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/835cf6c1e38175c0bb019e62a294ed2bd9dc8102"},{"sha":"2b5ad4a9b7a98cd3bb618f90572e504ff192f246","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"Remove GROUP_VARINT encoding\n\nThis encoding was only ever implemented for the UINT32 type, and users\ncan no longer specify this type, since we only support signed ints.\nThus, there's no sense carrying around this baggage.\n\nThis patch removes the encoding as well as associated tests.\n\nChange-Id: I0b0aeb5bfd8451a6e190ccb6e55e971da668b062\nReviewed-on: http://gerrit.cloudera.org:8080/5271\nReviewed-by: Dan Burkert <danburkert@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/2b5ad4a9b7a98cd3bb618f90572e504ff192f246"},{"sha":"c553a9a59ce664c38041fbb3809ab6402cdbc89b","author":{"name":"hahao","email":"d0381561aaf89edd5d760edafe0e182e8492017c@cloudera.com"},"message":"KUDU-1658: Reject CREATE TABLE ops with even replication factor\n\nReject table creation with even replication factor,\nand add an allow_unsafe_replication_factor\nmaster flag to make it possible for advanced user.\n\nChange-Id: I1674cc59cdfc2955d42fc5e4d8c0d962d9cc8e8e\nReviewed-on: http://gerrit.cloudera.org:8080/4945\nTested-by: Kudu Jenkins\nReviewed-by: Todd Lipcon <todd@apache.org>","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/c553a9a59ce664c38041fbb3809ab6402cdbc89b"},{"sha":"885d2e90a8c9e5ceb8ff330478a8b08c7ba3b2a0","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"KUDU-1545. Fix crash when visiting tablet page for tombstoned tablet\n\nThis page was previously accessing peer->consensus() which could be NULL\nin a tombstoned tablet.\n\nChange-Id: I7d53d2080c476fe02e2c4ab5482fe80387199377\nReviewed-on: http://gerrit.cloudera.org:8080/5280\nReviewed-by: Dan Burkert <danburkert@apache.org>\nReviewed-by: Will Berkeley <wdberkeley@gmail.com>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/885d2e90a8c9e5ceb8ff330478a8b08c7ba3b2a0"},{"sha":"85245160b73055b548f8a0b79be1786212cc6afb","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"KUDU-1754. Add a warning to the Java API docs that columns default NOT NULL\n\nChange-Id: Ia5589746f8b618874326fce69532578468e8ca4a\nReviewed-on: http://gerrit.cloudera.org:8080/5283\nReviewed-by: Dan Burkert <danburkert@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/85245160b73055b548f8a0b79be1786212cc6afb"},{"sha":"4aacaf6fc57b26195634c09c0433a24f5d4a778e","author":{"name":"Adar Dembo","email":"d67779a77ed75457dc1ed5ba612607a7259880f5@cloudera.com"},"message":"KUDU-1764: truncate preallocated space off of full lbm containers\n\nThe LBM maintains a preallocation window at the end of each container, but\nit erroneously leaves the window intact even as a container becomes full.\n\nThis patch addresses that in two ways:\n1. The window is truncated when a container becomes full, and\n2. It is truncated at startup after a full container is loaded.\n\nThe first trims the window in real time, while the second handles both\nexisting deployments and the edge case where a tserver has crashed mid-trim.\n\nThe implementation uses total_bytes_written_ as the truncation offset, which\nmeans it still leaves last_block_size % filesystem_block_size bytes behind.\nThis is equivalent to the internal fragmentation caused by aligning block\noffsets to the nearest filesystem block size, so I don't think it matters.\n\nI snuck in a change to remove the \"filesystem does not support\npreallocation\" behavior from block-manager-test; it's not possible to create\nan LBM on a filesystem sans hole punching; such a filesystem should support\npreallocation by definition.\n\nChange-Id: Ib9173f955e53d096bfd9d3ddacf4294846cff11a\nReviewed-on: http://gerrit.cloudera.org:8080/5254\nTested-by: Kudu Jenkins\nReviewed-by: Todd Lipcon <todd@apache.org>\nTested-by: Todd Lipcon <todd@apache.org>","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/4aacaf6fc57b26195634c09c0433a24f5d4a778e"},{"sha":"b4764f98cc99a8b4f37e0be2c1ad90dc3c645903","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"KUDU-1551. Ignore log segments which were preallocated but have no header.\n\nThis fixes a TS startup crash in the case that it finds a log segment\nwhich is preallocated but has no valid magic or header at the start.\n\nThe new test injects such a crash and verifies that the server can\nrestart and replay its logs.\n\nChange-Id: I843cf483b93823cbcc5506958f62cbb076569ca8\nReviewed-on: http://gerrit.cloudera.org:8080/5276\nReviewed-by: Adar Dembo <adar@cloudera.com>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/b4764f98cc99a8b4f37e0be2c1ad90dc3c645903"},{"sha":"68dc1ffeff2f6ad7ad8654da0df66162cb286cca","author":{"name":"Alexey Serbin","email":"e5c67d88007f49da71660fab75c9782852dc1412@cloudera.com"},"message":"KUDU-420 [i-tests] scan token timestamp propagation test\n\nAdded an integration test to verify timestamp propagation via scan\ntokens for C++ client.\n\nThe test is disabled as it currently fails. A follow up patch will fix\nthe bug and enable the test.\n\nThis is in the context of the following JIRA item:\nKUDU-420 c++ client: implement HT timestamp propagation via scan tokens\n\nChange-Id: I47cd067248f4a26c4605f075ec5ee30da71f6f30\nReviewed-on: http://gerrit.cloudera.org:8080/5219\nReviewed-by: David Ribeiro Alves <dralves@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/68dc1ffeff2f6ad7ad8654da0df66162cb286cca"},{"sha":"d81aa80a98bcec4b928e4a50c3c0a95f09bb57af","author":{"name":"Alexey Serbin","email":"e5c67d88007f49da71660fab75c9782852dc1412@cloudera.com"},"message":"KUDU-420 [c++ client] timestamp propagation via scan tokens\n\nImplemented server timestamp propagation via scan tokens for the\nKudu C++ client library. Added corresponding unit test as well.\n\nBesides, this changelist also enables the\nConsistencyITest.TestScanTokenTimestampPropagation test: this patch\nbrings the necessary fix to make it pass.\n\nThis is in the context of the following JIRA item:\nKUDU-420 c++ client: implement HT timestamp propagation via scan tokens\n\nChange-Id: I5c76c20b62cb91695c69f7dc4b98f4dc98bf02cc\nReviewed-on: http://gerrit.cloudera.org:8080/5220\nReviewed-by: David Ribeiro Alves <dralves@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/d81aa80a98bcec4b928e4a50c3c0a95f09bb57af"},{"sha":"eb1f45404745d30a5de62eda407862b701c7fb26","author":{"name":"Alexey Serbin","email":"e5c67d88007f49da71660fab75c9782852dc1412@cloudera.com"},"message":"KUDU-1770 [i-tests] test for timestamp propagation with write ops\n\nAdded an integration test to verify that C++ client propagates\ntimestamp with write operations.\n\nThe test is disabled as it currently fails. A follow up patch will fix\nthe bug and enable the test.\n\nThis is in the context of the following JIRA item:\nKUDU-1770 C++ client: propagate timestamp for write operations\n\nChange-Id: I1be285fd860f0608f5d4ce3be57c4e4b04c63455\nReviewed-on: http://gerrit.cloudera.org:8080/5268\nReviewed-by: David Ribeiro Alves <dralves@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/eb1f45404745d30a5de62eda407862b701c7fb26"},{"sha":"e4f7e926c4205ffec04b651afc178bd0b447a9ae","author":{"name":"Alexey Serbin","email":"e5c67d88007f49da71660fab75c9782852dc1412@cloudera.com"},"message":"KUDU-1770 [c++ client] propagate timestamp for write operations\n\nUpdated the Kudu C++ client library to propagate timestamp for write\noperations.\n\nThis is a fix for\nKUDU-1770 C++ client: propagate timestamp for write operations\n\nThis patch also enables the integration test which was failing prior\nto this fix: ConsistencyITest.TestTimestampPropagationForWriteOps\n\nChange-Id: I17feb6b2dacd0ba7c8b57464f1a50de99de2f772\nReviewed-on: http://gerrit.cloudera.org:8080/5269\nReviewed-by: David Ribeiro Alves <dralves@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/e4f7e926c4205ffec04b651afc178bd0b447a9ae"},{"sha":"b39491de611eb7a36be46816c66fa3a85590a656","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"KUDU-1775 (part 1). Reject CREATE TABLE with negative or too-high replication factors\n\nThis adds more master-side checking of the replication factor passed\nfrom the client:\n\n* must be non-negative. Previously passing a negative replication factor\n  would result in infinite retries trying to assign replicas.\n\n* put an upper bound of 7, configurable with a new unsafe flag. We\n  haven't tested higher replication factors at all, and a\n  well-intentioned user may try to set replication factor to a very high\n  number to get a table replicated onto every server in their cluster.\n  This is common practice in MPP RDBMS, but since we haven't tested it,\n  we shouldn't allow it without making the user turn on\n  --unlock_unsafe_flags.\n\nChange-Id: I83fedc7cb9722c049c20eb7766605fbb2f966347\nReviewed-on: http://gerrit.cloudera.org:8080/5289\nReviewed-by: Adar Dembo <adar@cloudera.com>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/b39491de611eb7a36be46816c66fa3a85590a656"},{"sha":"730bae3b5828875dab818eac191f526ec61b6424","author":{"name":"Mike Percy","email":"cff85361dbf37727974f83050b578c44b3a5c729@apache.org"},"message":"Make threadpool-test less flaky\n\nUnder heavy load, threadpool-test may take more than 10 seconds in rare\ncases and cause a test failure. This change increases the timeout.\n\nAlso reliably disable the alarm, even if an assertion fires, using a\nScopedCleanup object.\n\nChange-Id: I6465922e5b43dc9aff80fa2b6e6549061bfd0425\nReviewed-on: http://gerrit.cloudera.org:8080/5293\nReviewed-by: Adar Dembo <adar@cloudera.com>\nReviewed-by: Todd Lipcon <todd@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/730bae3b5828875dab818eac191f526ec61b6424"},{"sha":"c52cc1630d76c123619e40578b82cb2c7e8560c9","author":{"name":"Mike Percy","email":"cff85361dbf37727974f83050b578c44b3a5c729@apache.org"},"message":"threadpool: Allow zero-size task queue\n\nPreviously, our threadpool implementation's concept of max_queue_size\nwas not very useful, and one could not specify a zero-size queue, because\nwe took the meaning of queue size quite literally, thus leaking an\nimplementation detail: we use the task queue to hand off tasks from the\nuser's thread to our worker threads.\n\nNow, max_queue_size is more intuitive: the user is allowed to submit\n(max_queue_size + max_threads) tasks before new submissions are\nrejected (assuming no task completes in the mean time).\n\nIn this paradigm, a zero-size queue is a useful thing. It implies that\nthe total number of tasks running or queued at a given time will never\nexceed max_threads, which under typical circumstances means that no\nsuccessfully-submitted task is left waiting for an executor for very\nlong.\n\nAdded a new functional test for max_queue_size = 0 and updated an\nexisting queue-related test that is now deterministic instead of being\nracy.\n\nChange-Id: I5abf40473ee813c625e0a02232d714aab2e65109\nReviewed-on: http://gerrit.cloudera.org:8080/5275\nReviewed-by: Todd Lipcon <todd@apache.org>\nTested-by: Kudu Jenkins","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/c52cc1630d76c123619e40578b82cb2c7e8560c9"},{"sha":"8ffc6d1843fefe0b5f932ed4c00b086355b05cad","author":{"name":"Todd Lipcon","email":"dd5965a1ccaca30b2dd5053f256a6d9b88ca567f@apache.org"},"message":"Ignore tablet metadata files with old tmp infix\n\nCommit 8ff4d1211d2a9f20203774bd263112ec0d7333e1 changed the tmp infix\nfrom '.tmp' to '.kudutmp'. However, if we crash a server on an old\nversion and then restart with the new version, the server won't know to\nignore the tmp files from the old version in the tablet metadata\ndirectory.\n\nThis will result in failures to start up as it tries to read these tmp\nfiles as if they were completed tablet metadata files.\n\nChange-Id: Ie23d6d989472ec38b36d6a2f6d3f00e32df22869\nReviewed-on: http://gerrit.cloudera.org:8080/5298\nTested-by: Kudu Jenkins\nReviewed-by: Adar Dembo <adar@cloudera.com>","distinct":true,"url":"https://api.github.com/repos/EvilMcJerkface/kudu/commits/8ffc6d1843fefe0b5f932ed4c00b086355b05cad"}]}
{"actor":{"display_login":"EvilMcJerkface"}}