1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2026-10-23 21:49:05 +03:00
Commit Graph

649 Commits

Author SHA1 Message Date
Patrick LeBlanc
3a11ffbfe4 Checkpointing an extremely minor optimization to assist branch prediction. 2020-01-31 16:07:21 -05:00
Patrick LeBlanc
65802377bc Commented debugging things for benchmarking. 2020-01-31 16:07:21 -05:00
Patrick LeBlanc
ad0308316f Checkpointing some things. 2020-01-31 16:07:21 -05:00
Patrick LeBlanc
6178f7b431 Checkpointing to xfer.
Added some debugging printouts.
2020-01-31 16:07:21 -05:00
Patrick LeBlanc
0f400081ca First impl of unix socket for localhost connections. 2020-01-31 16:07:21 -05:00
Andrew Hutchings
70f5c12279 Merge pull request #1010 from tntnatbry/MCOL-3680
MCOL-3680 mysqld will abort if Columnstore.xml is missing.
2020-01-28 15:26:05 +00:00
Patrick LeBlanc
5b794c862c Fixed a compiler warning that broke debugging builds. 2020-01-23 12:47:56 -05:00
Gagan Goel
d0ffede135 MCOL-3680 mysqld will abort if Columnstore.xml is missing
Add try-catch blocks in the plugin code to prevent mysqld
from aborting if configcpp cannot access Columnstore.xml.
2020-01-23 17:41:02 +00:00
Patrick LeBlanc
d47df1b6dd Noticed another deadlock possibility in PoolAllocator.
Also currently not a problem.
2020-01-03 17:29:39 -05:00
Patrick LeBlanc
8b6d004523 Noticed a potential deadlock problem in poolallocator. 2020-01-02 12:16:05 -05:00
Sergei Golubchik
586391e1ca compilation failure
error: reference to 'mutex' is ambiguous
note: candidates are: 'class boost::mutex'
note:                 'class std::mutex'
2019-12-19 18:13:39 +01:00
Patrick LeBlanc
98d546c2c2 Found and fixed a race on a counter in the new HJ hash table
construction code in PrimProc.
2019-12-17 18:17:04 -05:00
Roman Nozdrin
7acfddddb7 Refactored MDB relation names decoding in DDL code.
SH now takes all or nothing thus we need to change if conditions that rules our GBH.

Small warning fixes for GCC8.2

Disabled GBH.
2019-12-13 11:38:19 -06:00
Roman Nozdrin
914fa570fa Merge pull request #970 from LinuxJedi/fix-warnings
Fix warnings found in DEBUG combined build
2019-12-10 19:26:20 +02:00
Andrew Hutchings
49994f7bc3 Fix warnings found in DEBUG combined build
Fixes:
* Irrelevant where conditions
* Irrelevant const
* A potential infinite loop in treenode
* Bad implicit case fallthroughs
* Explicit markings for required case fallthroughs
* Unused variables
* Unused function

Also disabled some warnings for now which we should fix later.
2019-12-10 16:33:08 +00:00
Gagan Goel
feaa9cb659 Implement SPACE() and QUOTE() functions. 2019-12-10 14:18:28 +00:00
Roman Nozdrin
a9717ad49d Merge pull request #962 from jmrojas2332/MCOL-3474
MCOL 3474 Fix TIMEDIFF w/ non-temporal data types
2019-12-09 11:55:08 +02:00
Gagan Goel
ba4053bf2b Use signed int64_t for comparing two TIME values in the order by clause. 2019-12-06 14:31:48 +00:00
benthompson15
118efd473b Merge pull request #961 from LinuxJedi/MCOL-3647
Merge develop-1.2 into develop
2019-12-05 23:59:38 +01:00
benthompson15
207fb3f588 Merge pull request #960 from LinuxJedi/unified_build
Unified build for ES and MCS
2019-12-05 01:19:23 +01:00
jmrojas2332
c29c41e235 MCOL 3474 Fix Timediff results after accounting for new test cases 2019-12-04 22:48:07 +00:00
Patrick LeBlanc
3964db8db0 Merge pull request #955 from drrtuy/MCOL-3585
MCOL-3585 Enabled MCOL-498 by default for all dbroots.
2019-12-04 14:06:38 -06:00
jmrojas2332
16b004dc07 Merge branch 'develop' of https://github.com/mariadb-corporation/mariadb-columnstore-engine into MCOL-3474 2019-12-04 15:15:09 +00:00
jmrojas2332
1c0afc95bc MCOL 2072 Query Stats supress warning when calling libmysql::run 2019-12-04 15:02:50 +00:00
David Hall
69e7880358 MCOL-3607 sqrt should handle 0.0 2019-12-04 15:02:34 +00:00
David Hall
ea8e604324 MCOL-3607 Fixed some types for long double math functions 2019-12-04 15:02:21 +00:00
David Hall
882f767b15 MCOL-3607 Add long double support to math functions 2019-12-04 15:00:55 +00:00
Roman Nozdrin
766d84ada8 MCOL-3585 Enabled MCOL-498 by default for all dbroots. 2019-12-04 06:49:31 -06:00
Andrew Hutchings
7489d0bfd0 MCOL-3625 Rename packages
Rename packages to MariaDB-columnstore-engine, MariaDB-columnstore-libs
and MariaDB-columnstore-platform.

Also add the "columnstore-" prefix the the components so that MariaDB's
packaging system understands then and add a line to include them in
MariaDB's packaging.

In addition
* Fix S3 building for dist source build
* Fix Debian 10 dependency issue
* Fix git handling for dist builds
* Add support for MariaDB's RPM building
* Use MariaDB's PCRE and readline
* Removes a few dead files
* Fix Boost noncopyable includes
2019-12-04 11:04:39 +00:00
Andrew Hutchings
a8cd34f86d Add support for building from server 2019-12-03 21:21:28 +00:00
Andrew Hutchings
b3c22c8f9a MCOL-3626 Remove mcsmysql alias 2019-12-03 21:21:28 +00:00
jmrojas2332
252268ef63 MCOL 3474 Fix TIMEDIFF w/ non-temporal data types 2019-12-03 06:47:36 +00:00
Gagan Goel
a5bfd484f4 Enable unhex function and make minor implementation changes. 2019-11-27 17:22:17 +00:00
David.Hall
ccfc0dc16d Merge pull request #948 from LinuxJedi/fix-code-errors
MCOL-3621 Fix a few cppcheck issues
2019-11-25 15:04:55 -06:00
Gagan Goel
2e16fe674c 1. Implement bit_count() distributed function.
2. Handle hexadecimal string literals in buildReturnedColumn().
2019-11-22 18:02:47 -05:00
Patrick LeBlanc
947e0f6543 Merge pull request #946 from benthompson15/MCOL-3577
MCOL-3577
2019-11-22 13:45:35 -06:00
benthompson15
5bbd21b8e0 MCOL-3577: Add functionality to sync S3 storage for suspendDatabaseWrites. 2019-11-21 15:19:03 -06:00
Patrick LeBlanc
0d26dc447c Squash merge of the threaded UM hash table construction feature.
Conflicts:
	oam/etc/Columnstore.xml.singleserver
2019-11-21 14:41:00 -05:00
Andrew Hutchings
dba7220ad3 Fix a few cppcheck issues
Found the following:

* Potential stack explosions with alloca() usage on potentially large
strings
* Memory leaks in WriteEngineServer
* Stack usage out of scope in dataconvert
* A typo in an 'if' statement in dataconvert
2019-11-21 13:52:53 +00:00
Ubuntu
23b87f449d MCOL 3597 Fix MCOL 3474 causing regression test failure. New impl for MCOL 3474 2019-11-14 16:56:46 +00:00
Andrew Hutchings
b9708530e2 Fix library and storage manager install paths 2019-11-13 23:34:20 +00:00
Andrew Hutchings
8ab9ebb0f4 MCOL-3606 Make ColumnStore use generic paths
ColumnStore now uses standard bin/lib paths for pretty much everything.
Data path is now hard-coded to /var/lib/columnstore.

This patch also:

* Removes v1 decompression
* Removes a bunch of unneeded files
* Removes COLUMNSTORE_INSTALL_DIR / $INSTALLDIR
* Makes my.cnf.d work for all platforms (MCOL-3558)
* Changes configcpp to use recursive mutex (fixes possible config write deadlock)
* Fixes MCOL-3599 Fix regr functions, The library was installed in the wrong location
* Fixes a bunch of Ubuntu packaging issues
* Changes the binary names of several of the executables so as not to
clash with potential executables from other packages
2019-11-09 16:53:05 +00:00
Andrew Hutchings
bd41ffd6cc Merge pull request #925 from drrtuy/MCOL-894_develop_2
MCOL-894 parallel sort + MCOL-3536 UTF-8 aware sorting upmerge from 1.2
2019-11-07 17:26:19 +00:00
Patrick LeBlanc
5ea1320821 boost::atomic -> std::atomic 2019-11-05 10:28:48 -05:00
Roman Nozdrin
0696696cf6 MCOL-894 Upmerged post review changes.
Raised the default for orderby threads from 4 to 16.
    Removed if LIMIT check block in makeVtableModeSteps().
    Removed a duplicate of TimeCompare class and methods.

MCOL-3536 Upmerged the change.

MCOL-894 Post review changes.
    Uncomment if LIMIT check block in makeVtableModeSteps().

    TupleAnnexStep dtor now uses vector::size() as a boundary.

    Removed useless try-catch blocks.

    executeParallelOrderBy() now calculates rowSize only once.

    Removed forward declaration in the unexisting namespace.

    Trim UTs a bit.
2019-11-05 17:23:49 +03:00
Roman Nozdrin
7b5e5f0eb6 MCOL-894 Upmerged the fist part of the patch into develop.
MCOL-894 Add default values in Compare and CSEP ctors to activate UTF-8 sorting
    properly.

MCOL-894 Unit tests to build a framework for a new parallel sorting.

MCOL-894 Finished with parallel workers invocation.
     The implementation lacks final aggregation step.

MCOL-894 TupleAnnexStep's init and destructor are now parallel execution aware.

    Implemented final merging step for parallel execution finalizeParallelOrderBy().

    Templated unit test to use it with arbitrary number of rows, threads.

Reuse LimitedOrderBy in the final step

MCOL-894 Cleaned up finalizeParallelOrderBy.

MCOL-894 Add and propagate thread variable that controls a number of threads.

    Optimized comparators used for sorting and add corresponding UTs.

    Refactored TupleAnnexStep::finalizeParallelOrderByDistinct.

    Parallel sorting methods now preallocates memory in batches.

MCOL-894 Fixed comparator for StringCompare.
2019-11-05 15:23:43 +03:00
David Hall
0d2b0e0070 MCOL-3536 check for Japanese and use byte compare if found 2019-11-05 15:22:15 +03:00
David Hall
3b01d5ea22 MCOL-3536 use Locale from columnstore.xml when doing ORDER BY 2019-11-05 15:22:15 +03:00
Patrick LeBlanc
1eaa83d852 Squash merge of the multithreaded PM join code.
Squashed commit of the following:

commit fe4cc375faf1588e30471062f78403e81229cd02
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Fri Nov 1 13:38:11 2019 -0400

    Added some code comments to the new join code.

commit a7a82d093be4db3dfb44d33e4f514fd104b25f71
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Fri Nov 1 13:17:47 2019 -0400

    Fixed an error down a path I think is unused.

commit 4e6c7c266a9aefd54c384ae2b466645770c81a5d
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Fri Nov 1 13:12:12 2019 -0400

    std::atomic doesn't exist in C7, -> boost::atomic.

commit ed0996c3f4548fff0e19d43852d429ada1a72510
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Oct 16 12:47:32 2019 -0500

    Addition to the previous fix (join dependency projection).

commit 97bb806be9211e4688893460437f539c46f3796f
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Oct 15 15:22:09 2019 -0500

    Found and fixed a bad mem access, which may have been there for 8 years.

commit d8b0432d2abd70f28de5276daad758c494e4b04b
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Oct 15 14:04:48 2019 -0500

    Minor optimization in some code I happened to look at.

commit b6ec8204bf71670c7a8882464289e700aa5f7e33
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Oct 15 14:04:11 2019 -0500

    Fixed a compiler warning.

commit 0bf3e5218f71d92460ddc88090e3af77ecf28c35
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Oct 15 10:11:09 2019 -0500

    Undid part of the previous commit.

commit 5dfa1d23980e245c77c1644015b553aa4bcdf908
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Mon Oct 14 18:00:21 2019 -0500

    Proofread the diff vs base, added some comments, removed some debugging stuff.

commit 411fd955ebbae97ddab210a7b17fe5708538001d
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Fri Oct 11 13:55:39 2019 -0500

    If a dev build (SKIP_OAM_INIT), made postConfigure exit before trying
    to start the system, because that won't work.

commit 634b1b8a7340b55fcaee045fd6d00b3e3a9269fa
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Mon Sep 30 14:55:45 2019 -0500

    Reduced crit section of BPP::addToJoiner a little.

commit 31f30c64dd95942f2c7a247cc81feaa5933c1a07
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 18 11:09:27 2019 -0500

    Checkpointing.  make the add joiner stuff free tmp mem quickly.

commit 9b7e788690546af7ddc4c921a0ab441ee9a8df02
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 18 10:38:57 2019 -0500

    Checkpoint.  Removed tmp hardcoding of bucket count.

commit fda4d8b7fb30d0431dc15e473042abb3d8121b19
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 18 10:20:09 2019 -0500

    Checkpoint.  Adjusted unproductive loop wait time.

commit 7b9a67df7d192f240e9e558e6e66c7aa9f1e8687
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 18 10:10:43 2019 -0500

    Checkpointing add'l optimizations.

    If we promote bpp::processorThreads / bucket count to a power of 2, we can
    use a bitmask instead of a mod operation to decide a bucket.

    Also, boosted utilization by not waiting for a bucket lock to become free.
    There are likely more gains to be had there with a smarter strategy.
    Maybe have each thread generate a random bucket access pattern to reduce
    chance of collision.  TBD.

commit abe7dab8661b5120f6ee268abc005dd66cd643e2
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Sep 17 16:15:51 2019 -0500

    Multithreaded PM hash table construction likely works here.

    A couple more fixes.
     - missed a mod after a hash in one place.
     - Made the PoolAllocator thread safe (small degree of performance hit
       there in threaded env).  May need to circle back to the table
       construction code to eliminate contention for the allocators instead.

commit ab308762fbd873dbf246a6d1574223087cd0d5f6
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Sep 17 12:14:14 2019 -0500

    Checkpointing.  Did some initial testing, fixed a couple things.

    Not done testing yet.

commit 3b161d74fa859edb8b5ba84bb905e586ac0586e6
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Tue Sep 17 11:24:55 2019 -0500

    Checkpointing.  First cut of multithreaded PM join table building.

    Builds but is untested.

commit cb7e6e1c2761fc6c33b3b1c6b6cda488d7792bca
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Mon Sep 16 13:03:50 2019 -0500

    Increase the STLPoolAllocator window size to reduce destruction time.

commit b0ddaaae71a0a4959ad15c87579d85ed88e17e1f
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Fri Sep 13 11:52:51 2019 -0500

    Fixed a bug preventing parallel table loading.  works now.

commit b87039604e312c1ddb88cdb226228b1c3addf018
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Thu Sep 12 22:04:15 2019 -0500

    Checkpointing some experimental changes.

     - Made the allocator type used by PM joins the STLPoolAllocator
     - Changed the default chunk size used by STLPoolAlloc based on a few test
        runs
     - Made BPP-JL interleave the PM join data by join # to take advantage
        of new locking env on PM.
     - While I was at it, fixed MCOL-1758.

commit fd4b09cc383d2b96959a8e5ca490c940bacb3d37
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Thu Sep 12 16:03:30 2019 -0500

    Speculative change.  Row estimator was stopping at 20 extents.

    Removed that limitation.

commit 7dcdd5b5455f9ac06121dd3cf1ba722150f3ee56
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Thu Sep 5 09:10:28 2019 -0500

    Inlined some hot simpleallocator fcns.

commit 6d84daceecc5499f6286cf3468c118b8b1d28d8f
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 4 17:02:29 2019 -0500

    Some optimizations to PM hash table creation.

    - made locks more granular.
    - reduced logic per iteration when adding elements.

commit b20bf54ed97c5a0a88d414a4dd844a0afc2e27f3
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 4 15:32:32 2019 -0500

    Reduced granularity of djLock in PrimProc.

commit 6273a8f3c4c62b87ef91c77a829033426e38e4d4
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date:   Wed Sep 4 14:45:58 2019 -0500

    Added a timer to PM hash table construction

    signal USR1 will print cumulative wall time to stdout & reset the timer.
2019-11-01 17:34:33 -04:00
Jose Rojas
a69d0ac895 MCOL 3557 Related. Syntactical Bug Fix 2019-10-24 20:14:42 +00:00