1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-04-26 11:48:52 +03:00

99 Commits

Author SHA1 Message Date
Andrew Hutchings
b6424480c0 MCOL-1408 Fix HWM calculation for DML & API
HWM for DML and API was being calculated using the first column in a
table instead of the smallest column. This shifts the calculation to the
correct column.
2018-05-29 21:21:38 +01:00
Andrew Hutchings
d010397be6 MCOL-1197 Make -c work in cpimport
It turns out -c wasn't actually connected to anything and now with have
BLOB/TEXT it is pretty useful. If -c is set to < 1MB then 1MB is used,
otherwise it will use the selected buffer size.
2018-05-09 14:52:42 +01:00
david hill
ae04b8a687
Merge pull request #438 from mariadb-corporation/MCOL-1323
MCOL-1323 cpimport Splitter has incorrect SIGPIPE mapping
2018-04-10 10:55:56 -04:00
David Hall
dbcbd6c7e7 MCOL-1323 cpimport Splitter has incorrect SIGPIPE mapping 2018-04-04 12:34:17 -05:00
David.Hall
2b944ebe2c
Merge branch 'develop-1.1' into MCOL-1160 2018-01-30 15:32:25 -06:00
Andrew Hutchings
63f8e1ce71 MCOL-1176 Fix API extent rollover
When the API inserts data into ColumnStore which will roll over into a
new extent that data wasn't being put into the new extent and corruption
occured. This patch now tracks the additional data and inserts it into
the new extent. It also makes sure the LBIDs are stored so that they are
correctly committed.
2018-01-30 11:46:47 +00:00
Andrew Hutchings
6211372f61 MCOL-1160 Track and flush dictionary blocks
When bulk write API is used dictionary blocks that are written to needs
flushing in PrimProc. This patch tracks the blocks and flushes them.
2018-01-23 21:17:33 +00:00
Andrew Hutchings
5d9f9c819b Merge branch 'develop-1.0' into 1.1-merge-up-20180118 2018-01-18 16:28:08 +00:00
Andrew Hutchings
c31c836352 MCOL-1085 Add crash dump to daemons
This patch adds an automated crash dump which logs in
/var/log/mariadb/columnstore/trace/ when one of the ColumnStore daemons
crashes.
2018-01-03 09:20:09 +00:00
Andrew Hutchings
8babe4a35d Merge branch 'develop-1.0' into 1.0-merge-up 2017-12-12 10:01:14 +00:00
David Hall
34799d8d30 MCOL-994 handle a second abbreviated extent in case it moved dbroots because of redistribute remove. 2017-12-07 10:49:51 -06:00
Andrew Hutchings
37f673d121 Merge branch 'develop-1.0' into 1.0-merge-up 2017-11-30 15:09:11 +00:00
Andrew Hutchings
3d5bd3809c MCOL-444 Truncate UTF8 correctly
cpimport would truncate UTF8 data half way through a character which
would cause problems for functions using that data. This patch
calculates the correct truncation point when inserting the data.
2017-11-29 10:43:57 +00:00
Andrew Hutchings
21ca6ca42f MCOL-1021 Fix dictionary de-duplication cache
The signatures were getting destroyed whilst processing before being
used in the dictionary de-duplication cache making the cache full of
empty strings. This fix resets the signature after insertion for the
cache.

This fix also lets the signature cache be read when there is 1000
entries in it.
2017-11-09 17:28:21 +00:00
Andrew Hutchings
7aa588f523 MCOL-984 Fix API bulk insert rowID/HWM calulation
The rowID and therefore HWM for an insert was being calculated based on
the first column. If there are smaller columns in the table these will
insert in the middle of blocks instead of creating new blocks. This means
that we would no longer be crash safe and PrimProc gets very confused until
a cache flush.

We now use the smallest column to calculate the rowID and HWM increment
(as cpimport does).
2017-10-26 11:19:41 +01:00
David Hall
1dc0ea5fb4 MCOL-786 Redistribute: Round robin target dbroots 2017-10-05 15:05:44 -05:00
David Hall
de919c7f05 MCOL-786 Redistribute: Round robin target dbroots 2017-09-18 12:49:43 -05:00
Andrew Hutchings
f8f6f8bdde Fix write API char < 5
We need to cast to a 64bit int, not a size based int.
2017-09-13 17:19:00 +01:00
Andrew Hutchings
401e257df3 MCOL-879 Fix QueryStats linking issues
With 1.1 we have removed libdrizzle and used MariaDB's client library
instead for both CrossEngine and QueryStats. Unfortunately MariaDB 10.2
has two client libraries which have different structs with the same
name. When QueryStats was running inside the ColumnStore plugin this
symbol conflict was causing a crash.

The server's built-in client API has several different and several
missing functions so some additions to sm.cpp were made to fill the
gaps.

This patch does the following:

* Make sure that libmariadb is only linked to executables, not the
ColumnStore Plugin (to avoid symbol conflicts). Note that all
executables that link to CrossEngine and/or QueryStats need to link to
libmariadb to avoid missing symbol issues.
* Use the server's built-in client API for QueryStats when run in the
plugin
* Replace missing server built-in client API calls in sm.cpp (this is
for QueryStats and CrossEngine to keep the dynamic linker happy)
* Fixes issue where using 'localhost' as the MariaDB Server hostname
would fail in QueryStats.
2017-08-18 10:16:52 +01:00
Andrew Hutchings
3330495a2e MCOL-777 Cleanup source
Clean out autotools and some other things from the source tree.
2017-08-07 15:59:56 +01:00
David Hall
bc2a4e7795 MCOL-523 Add UDAF and UDAnF SDK 2017-08-02 11:22:07 -05:00
Andrew Hutchings
17660aaa54 MCOL-769 Fix data casting issues
Several typos corrupting data, a cleaner method used now
2017-06-27 16:56:01 +01:00
Andrew Hutchings
60694a7b72 MCOL-769 Add WE command to get LBIDs written to 2017-06-21 22:39:59 +01:00
Andrew Hutchings
736826cbdf MCOL-769 Make sure system catalog is versioned
Otherwise bad things can happen
2017-06-21 10:05:14 +01:00
Andrew Hutchings
4cca5fa7fa MCOL-769 Much higher performance bulk insert
Use void* pointers instead of boost::any with lots of copies
2017-06-20 19:08:48 +01:00
Andrew Hutchings
44977a8c6b MCOL-769 Add autocommit to condition 2017-06-16 17:55:44 +01:00
Andrew Hutchings
e8581e12d3 MCOL-769 Don't use version buffer in I_S mode
We don't need the version buffer in bulk write I_S mode since auto
commit will be on and we use the first empty block.
2017-06-16 17:29:08 +01:00
Andrew Hutchings
cb52f1a712 MCOL-769 fix column values
They weren't being reset between columns
2017-06-15 10:24:59 +01:00
Andrew Hutchings
8a9c58cf6b MCOL-769 Add new binary bulk insert command
For use with mcsapi and maybe INSERT...SELECT and LDI
2017-06-13 13:19:01 +01:00
Andrew Hutchings
cced9222e1 MCOL-710 Fix ALTER TABLE ADD COLUMN for TEXT/BLOB
The column fill didn't detect that this was a TEXT/BLOB column.
2017-05-10 12:03:21 +01:00
David Hall
a48174de23 MCOL-455: fix crash caused by rewind of unopened redistribute plan file during display when no partitions have been planned to be moved. 2017-04-21 09:48:34 -05:00
dhall-InfiniDB
e1a71a5628 Merge pull request #154 from mariadb-corporation/MCOL-670
MCOL-670 Fix UPDATE with BLOB/TEXT
2017-04-19 16:56:06 -05:00
Andrew Hutchings
785e6c91bd MCOL-670 Fix UPDATE with BLOB/TEXT
* Don't cache > 8000 bytes during update
* Fix PrimProc case where token is used more than once
2017-04-19 22:45:23 +01:00
Andrew Hutchings
f251ebccb2 MCOL-669 TEXT cpimport fixes
* 64KB TEXT column had off-by-one length pointer counting
* TEXT I_S/LDI was looping where it shouldn't causing pointer issues
* TEXT data type wasn't fully understood by cpimport
2017-04-19 14:11:21 +01:00
Andrew Hutchings
e9db44424c MCOL-642 Separate TEXT from BLOB
* TEXT and BLOB now have separate identifiers internally
* TEXT columns are identified as such in system catalog
* cpimport only requires hex input for BLOB, not TEXT
2017-03-27 21:36:27 +01:00
Andrew Hutchings
b7a01ce02e MCOL-267 Add blob support for INSERT_SELECT
* Note there is a 1MB buffer limit, rows longer than 512KB will fail (2x
due to hex of blob data)
* cpimport needs to use hex of blob data
2017-03-23 14:04:14 +00:00
Andrew Hutchings
1892ac8681 MCOL-267 Bulk write & PrimProc fixes 2017-03-20 21:26:53 +00:00
Andrew Hutchings
093aa377e5 MCOL-267 multi-block support for PrimProc and bulk
* Adds multi-block bulk write support
* Adds PrimProc multi-block read support
* Allows the functions length() and hex() to work with BLOB columns
2017-03-20 18:32:24 +00:00
Andrew Hutchings
aea729fe7d MCOL-267 DML support
* DML writes for multi-block dictionary (blob) now works
* PrimProc fixed so that the first block in multi-block is read
correctly
* Performance optimisation (removed string copy into stack) for new
dictionary entries
2017-03-18 14:31:29 +00:00
Andrew Hutchings
c08d03fba4 MCOL-267 Make BLOB DDL/DML work
Currently limited to 8KB inserts.
2017-03-17 12:10:02 +00:00
Andrew Hutchings
82c383ac20 MCOL-353 Fix lag at end of cpimport
The end of a cpimport adds a delay which is 1 second multiplied by the
number of PMs. This in-turn is multipled up with the number of
connections/threads causing a long delay when you have several PMs.

The delay is not required as we already have a 20ms delay and we will
re-enter the recv() if there is no data and we are still connected.
2017-03-07 21:29:39 +00:00
Andrew Hutchings
80b4d7ee36 MCOL-553 Improve error handling for ulimit
Now sends an error to the error log and aborts postConfigure
2017-02-21 21:10:57 +00:00
Andrew Hutchings
739f61a1ef MCOL-553 Error if we can't set file limits
Especially for non-root installs. Otherwise we could be in for some pain
later...
2017-02-08 17:13:30 +00:00
David Hall
90ba63b929 MCOL-455 spell check 2017-01-20 10:40:58 -06:00
David Hall
d054d0edc7 MCOL-455 spell check 2017-01-20 10:37:43 -06:00
David Hall
72436e1d57 MCOL-455: fix crash caused by rewind of unopened redistribute plan file during display when no partitions have been planned to be moved. 2017-01-20 10:20:09 -06:00
David Hall
faea63b9cb MCOL-455: fix crash caused by rewind of unopened redistribute plan file during display when no partitions have been planned to be moved. 2017-01-20 10:10:24 -06:00
Andrew Hutchings
4163f94976 MCOL-353 Fix lag at end of cpimport
The end of a cpimport adds a delay which is 1 second multiplied by the
number of PMs. This in-turn is multipled up with the number of
connections/threads causing a long delay when you have several PMs.

The delay is not required as we already have a 20ms delay and we will
re-enter the recv() if there is no data and we are still connected.
2017-01-17 10:25:59 +00:00
Andrew Hutchings
ffcfc41563 MCOL-507 Further ExeMgr performance improvements
This does the following:

* Switch resource manager to a singleton which reduces the amount of
times the XML data is scanned and objects allocated.
* Make the I_S tables use the FE implementation of the system catalog
* Make the I_S.columnstore_columns table use the RID list cache
* Make the extentmap pre-allocate a vector instead of many small allocs
2017-01-16 12:33:27 +00:00
Andrew Hutchings
ae630b3375 Merge pull request #89 from mariadb-corporation/MCOL-455
MCOL-455 Change resistribute database logic to move all segment files…
2017-01-09 19:57:04 +00:00