Commit Graph

21 Commits

Author SHA1 Message Date
Alexander Kuzmenkov
e1898ca89a Make the quadratic Arena::allocContinue less bad.
Scenarios that use Arena::allocContinue may waste quadratically many
memory and perform quadratically many copying, when the memory range
size reaches Arena's linear allocation threshold. To alleviate this,
make sure that the next memory chunk allocated by allocContinue is at
least linear_growth_threshold bytes bigger than the previous one, so
that we don't reallocate and copy that often.
2019-09-18 15:04:56 +03:00
Alexander Kuzmenkov
cacf6d3282 Key memory management for compound hash tables.
Some aggregation methods initially emplace a temporary StringRef key
into a hash table. Then, if the key was not seen before, they make a
persistent copy of the key and update the hash table with it. This
approach is not suitable for compound hash tables, because the logic of
when the persistent key is needed is more complex, and is contained
within the hash table itself.

In this commit, we switch to managing key memory with callbacks passed
to the hash table, that allow it to request a persistent copy of the key
if it is needed. This should be more appropriate for compound hash
tables.

This commit prepares for StringHashMap PR #5417.
2019-09-06 18:05:28 +03:00
proller
77bd2624ea Build fixes (#6016)
* Fix building without submodules

* Fix more gcc9 warnings

* was wrong!
../dbms/src/IO/WriteBufferAIO.cpp:277:54: error: result of comparison 'ssize_t' (aka 'long') > 9223372036854775807 is always false [-Werror,-Wtautological-type-limit-compare]
    if ((static_cast<ssize_t>(flush_buffer.offset()) > std::numeric_limits<off_t>::max()) ||
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* mimalloc off MI_OVERRIDE

* Fix freebsd build

* Fix shared build

* Fix build in gcc9

* Fix split build

* fix

* fix

* fix

* fix

* clean

* zstd

* Update CMakeLists.txt

* Update Defines.h

* Try fix -Wsign-compare

* Freebsd fix

* Add missing libs

* Fix double-conversion include for copy-headers

* Fix zlib link

* Fix includes for arcadia

* Fix includes for arcadia

* Fix includes for arcadia

* Freebsd fix

* Arcadia fixes

* Update QueryProfiler.cpp

* Freebsd fix

* clean

* 19.11: Fixes for arcadia porting (#6223)

* fix glibc-compatibility

* M_LIBRARY fix

* wip

* Fix

* Fix arm build

* unwind fix

* Update CMakeLists.txt
2019-08-04 03:19:03 +03:00
Alexander Kuzmenkov
f6ee2ea4e4 Add asan integration to arenas. 2019-07-02 20:48:00 +03:00
Danila Kutenin
37d70ac558 MarkCache and UncompressedCache use different allocator to catch segfaults more reliable 2019-04-06 18:27:39 +03:00
Alexey Milovidov
c858c144ef Fixed UB #3926 2018-12-26 02:39:40 +03:00
Alexey Milovidov
cfc1e207ab Fixed UB #3926 2018-12-26 02:27:52 +03:00
Alexey Milovidov
b82d532db0 Removed incorrect code [#CLICKHOUSE-3939] 2018-09-06 05:30:58 +03:00
Alexey Milovidov
1de3f144f6 Padding chunks in Arena in attempt to improve performance [#CLICKHOUSE-2] 2018-09-03 00:28:25 +03:00
Alexey Milovidov
26587dd2bb Addition to prev. revision [#CLICKHOUSE-2] 2018-09-02 08:23:20 +03:00
Alexey Milovidov
03038c75c4 Addition to prev. revision [#CLICKHOUSE-2] 2018-09-02 08:07:49 +03:00
Alexey Milovidov
77ccc8c65c Addition to prev. revision [#CLICKHOUSE-2] 2018-09-02 07:58:55 +03:00
Alexey Milovidov
7d77d001f5 Full support for alignment of aggregate states #2808 2018-09-01 07:25:03 +03:00
Alexey Milovidov
8f54125884 Minor modifications #2808 2018-09-01 06:17:43 +03:00
chenxing.xc
4acc441179 fix aligned states review comments 2018-08-05 18:12:06 +08:00
chenxing.xc
90d8290d28 aligned aggregate state 2018-08-05 16:45:15 +08:00
Alexey Milovidov
9996e15458 Allow to use values of AggregateFunction data type in groupArray aggregate function [#CLICKHOUSE-3485]. 2017-12-06 06:10:32 +03:00
Alexey Milovidov
5bb326de61 Allow to use values of AggregateFunction data type in groupArray aggregate function (incomplete) [#CLICKHOUSE-3485]. 2017-12-06 00:25:01 +03:00
Vitaliy Lyudvichenko
c2cc8d6147 Add several groupArray implementations. [#CLICKHOUSE-3084] 2017-07-25 20:04:10 +03:00
Alexey Milovidov
83ed2a794b Fixed -ForEach combinator of aggregate functions [#CLICKHOUSE-2952]. 2017-04-16 06:38:37 +03:00
Alexey Milovidov
310736cd7e Moved headers and sources to same place [#CLICKHOUSE-3]. 2017-04-01 12:22:42 +03:00