Commit Graph

548 Commits

Author SHA1 Message Date
alesapin
4c5d150d7a Review fixes 2019-10-22 13:47:43 +03:00
alesapin
83dbfe9634 New tests and fixes for them 2019-10-21 20:09:41 +03:00
alesapin
10f69eef03 Add tests for non standart dictionaries and fix bugs 2019-10-21 19:05:45 +03:00
alesapin
f7043c38bd Less diff 2019-10-21 17:20:42 +03:00
alesapin
17c2f301e2 Remove accident cerr 2019-10-21 17:00:18 +03:00
alesapin
3987a45ea2 Fix build and style 2019-10-17 12:05:48 +03:00
alesapin
b4e0ded048 Almost working 2019-10-16 17:59:52 +03:00
alesapin
e690a3ca32 Half working code 2019-10-15 21:04:17 +03:00
alesapin
3e068b81de Add loading of external dictionaries 2019-10-15 17:09:57 +03:00
alesapin
f850408ae4 Convert AST to Abstract configuration 2019-10-15 15:16:19 +03:00
alesapin
1ce0eb6e63 Appropriate error codes numbers 2019-10-14 13:04:10 +03:00
alesapin
2a5713e6e4 Compilable code 2019-10-10 23:47:47 +03:00
alesapin
67fc3347c2 Preparing databases for dictionaries 2019-10-10 20:33:01 +03:00
alexey-milovidov
e3861e0e88
Merge pull request #7242 from azat/sparse_hashed-name
Return SparseHashed name (system.dictionaries:type) for the sparse_hashed layout
2019-10-09 20:12:24 +03:00
Azat Khuzhin
0ff823b574 Return SparseHashed name (system.dictionaries:type) for the sparse_hashed layout
Due to tons of rebasing this bit had been forgotten.

Refs: 420089c301 ("Add new dictionary layout (sparse_hashed) that is more memory efficient")
2019-10-09 11:11:41 +03:00
Alexander Kuzmenkov
2b30f2696c Include Field.h in less files. 2019-10-08 16:23:24 +03:00
alesapin
cf094cd62b
Merge pull request #7155 from ClickHouse/dictionaries_ddl
Preparation of ExternalLoader for Dictionaries DDL
2019-10-03 20:12:19 +03:00
Alexander Kuzmenkov
8e245d4e8c
Merge pull request #7135 from ClickHouse/aku/msan-field
Fix some MemorySanitizer warnings for Fields.
2019-10-03 10:33:44 +03:00
alesapin
08681ac210 Preparation for AST configurations for external dictionaries 2019-09-30 19:12:08 +03:00
Alexander Kuzmenkov
ec2d9a083c Remove excessive includes. 2019-09-30 15:31:14 +03:00
alexey-milovidov
42c9ea9aa3
Merge pull request #7092 from PerformanceVision/acl_file_storage
Let the choice to write credential for HTTP source on external dictionaries
2019-09-30 13:20:33 +03:00
alesapin
0e28dc4e51 Remove redundant classes 2019-09-26 19:12:15 +03:00
alesapin
903f826640 Remove runtime factory and remove one redundant object 2019-09-26 13:08:38 +03:00
Guillaume Tassery
647568a6f6 cosmetic 2019-09-26 05:34:22 +02:00
Guillaume Tassery
367a0dcdb4 cosmetic 2019-09-25 11:46:48 +02:00
Guillaume Tassery
8b4e789847 Rename key to name 2019-09-25 11:42:08 +02:00
Guillaume Tassery
77f2dfee6a Add the positibility to add an header on an HTTP source 2019-09-25 10:08:46 +02:00
Guillaume Tassery
2435e9a12c Add simple HTTP right credentials 2019-09-25 06:33:54 +02:00
Alexey Milovidov
ff07ffbbae Merge branch 'merging_redis' of https://github.com/CurtizJ/ClickHouse into CurtizJ-merging_redis 2019-09-25 02:27:05 +03:00
Alexander Kuzmenkov
f3bde19b74 Do not use iterators in find() and emplace() methods of hash tables.
Instead, these methods return a pointer to the required data as they are
stored inside the hash table. The caller uses overloaded functions to
get the key and "mapped" values from this pointer. Such an interface
avoids the need for constructing iterator-like wrapper objects, which is
especially important for compound hash tables such as the future
StringHashMap.
2019-09-24 17:44:35 +03:00
Azat Khuzhin
52f14c1ead
Update HashedDictionary.cpp (fixed rename in return type for SFINAE) 2019-09-22 10:39:50 +03:00
alexey-milovidov
a12cffee91
Update HashedDictionary.h 2019-09-22 05:11:08 +03:00
alexey-milovidov
ab9a7be45a
Comments are the must. 2019-09-22 05:09:40 +03:00
alexey-milovidov
9afea6f0b3
Update HashedDictionary.cpp 2019-09-22 05:04:49 +03:00
Azat Khuzhin
420089c301
Add new dictionary layout (sparse_hashed) that is more memory efficient
With this new layout, sparsehash will be used over default HashMap,
sparsehash is more memory efficient but it is also slower.

So in a nutshell:
- HashMap uses ~2x more memory then sparse_hash_map
- HashMap ~2-2.5x faster then sparse_hash_map
(tested on lots of input, and the most close to production was
dictionary with 600KK hashes and UInt16 as value)

TODO:
- fix allocated memory calculation
- getBufferSizeInBytes/getBufferSizeInCells interface
- benchmarks

v0: replace HashMap with google::sparse_hash_map
v2: use google::sparse_hash_map only when <sparse> isset to true
v3: replace attributes with different layout
v4: use ch hash over std::hash
2019-09-21 02:22:40 +03:00
CurtizJ
79a08ef8ea Merge remote-tracking branch 'upstream/master' into merging_redis 2019-09-18 12:58:22 +03:00
CurtizJ
7ccf04440a better code in Redis external dictionary 2019-09-17 20:57:48 +03:00
CurtizJ
df82e4bde8 fix build 2019-09-17 17:55:09 +03:00
CurtizJ
4480e97f9f fix build 2019-09-17 17:16:07 +03:00
CurtizJ
4df1f1bb9a better integration test for redis dictionary (but still bad) 2019-09-17 16:35:19 +03:00
CurtizJ
e9336c9166 improvements of redis external dictionary 2019-09-16 19:17:56 +03:00
CurtizJ
ad986f285e fix redis with mixed keys 2019-09-13 20:38:56 +03:00
CurtizJ
fa416dc941 fix Redis dictionary 2019-09-12 17:48:28 +03:00
Amos Bird
a1310ffbe6 Split libdbms.so using object library
Now the linking time of incremental builds are around 1-2 seconds
2019-09-11 01:56:01 +08:00
CurtizJ
3b3657ff1e Merge branch 'add-ext-dict-redis' of https://github.com/comunodi/ClickHouse into merging_redis 2019-09-09 13:51:50 +03:00
Vitaly Baranov
da8f67123f Improve error handling in cache dictionaries:
allow using expired values while the source of a cache dictionary doesn't respond;
clone the source after an error to reset connections;
don't ask the source for a little time after error;
show the last exception in system.dictionaries for a cache dictionary too.
2019-08-30 12:50:38 +03:00
Ivan
b4339f266d
Make a better build scheme (#6500)
* Fix shared build
* Major default libs refactor
* Fix build with gcc_eh
* Link all libraries as a big group.
* Use global interface library as a group
* Build capnproto using our cmake
* Use only internal libunwind
2019-08-28 23:49:37 +03:00
Alexey Milovidov
8966520801 Added "assert_cast" function as a replacement for static_cast for columns 2019-08-21 05:28:04 +03:00
Alexey Milovidov
09ecd865fc Allow to use library dictionary source with ASan. May impose troubles. 2019-08-14 03:26:38 +03:00
alesapin
2ca6c0b1bf Fix bug with memory allocation for string fields in complex key cache dictionary 2019-08-12 12:37:48 +03:00