Commit Graph

1233 Commits

Author SHA1 Message Date
4f39d405ee Fix some load bugs (#2384)
For #2383 
1. Limit the concurrent transactions of routine load job
2. Create new routine load task when txn is VISIBLE, not after COMMITTED.

For #2267 
1. All non-master daemon thread should also be started after catalog is ready.

For #2354 
1. `fixLoadJobMetaError()` should be called after all meta data is read, including image and edit logs.
2. Mini load job should set to CANCELLED when corresponding transaction is not found, instead
of UNKNOWN.
2019-12-05 13:41:04 +08:00
102a845131 Support convert date to datetime through alter table (#2385) 2019-12-05 07:37:45 +08:00
1532282942 Support push down is null predicate for Doris-On-ES (#2378) 2019-12-04 22:56:22 +08:00
fbee3c7722 Remove VersionHash used to comparison in BE (#2358) 2019-12-04 20:09:03 +08:00
92536272d3 Fixed bdbje heartbeat timeout config format bug (#2369)
The heartbeat config format should be like "30 s", not "30"
This CL is related to commit 261072ecdda7e8eb3ce685c557c6dab15488d1f3
2019-12-04 13:28:08 +08:00
0f00febd21 Optimize Doris On Elasticsearch performance (#2237)
Pure DocValue optimization for doris-on-es

Future todo:
Today, for every tuple scan we check if pure_docvalue is enabled, this is not reasonable,  should check pure_docvalue enabled for one whole scan outside,  I will add this todo in future
2019-12-04 12:57:45 +08:00
f0c0a715d1 Add bdbje heartbeat timeout as a configuration of FE (#2366)
The timeline for this question is as follows:

1. For some reason, the master have lost contact with the other two followers.
Judging from the logs of the master, for almost 40 seconds, the master did not print any logs.
It is suspected that it is stuck due to full gc or other reasons, causing the
other two followers to think that the master has been disconnected.

2. After the other two followers re-elected, they continued to provide services.

3. The master node is manually restarted afterwards. When restarting it for the first time,
it needs to rollback some committed logs, so it needs to be closed and restarted again.
After restarting again, it returns to normal.

The main reason is that the master got stuck for 40 seconds for some reason.
This issue requires further observation.

At the same time, in order to alleviate this problem, we decided to set bdbje's heartbeat timeout
as a configurable value. The default is 30 seconds. Can be configured to 1 minute,
try to avoid this problem first.
2019-12-04 08:56:37 +08:00
f828670245 Add Bitmap index reader (#2319)
[STORAGE] [INDEX]

For #2061 and #2062

Add bitmap index reader
SegmentIterator support bitmap index
Add some metrics
2019-12-03 23:01:40 +08:00
c8cff85c94 Fixed a bug that HttpServer in unit test does not start correctly. (#2361)
Because the http client in unit test try to connect to the server when
server is not ready yet.
2019-12-03 20:34:16 +08:00
086bb82fd2 Fixed a bug that Load job's state is incorrect when upgrading from 0.10.x to 0.11.x (#2356)
There is bug in Doris version 0.10.x. When a load job in PENDING or LOADING
state was replayed from image (not through the edit log), we forgot to add
the corresponding callback id in the CallbackFactory. As a result, the
subsequent finish txn edit logs cannot properly finish the job during the
replay process. This results in that when the FE restarts, these load jobs
that should have been completed are re-entered into the pending state,
resulting in repeated submission load tasks.

Those wrong images are unrecoverable, so that we have to reset all load jobs
in PENDING or LOADING state when restarting FE, depends on its corresponding
txn's status, to avoid submit jobs repeatedly.

If corresponding txn exist, set load job' state depends on txn's status.
If txn does not exist, may be the txn has been removed due to label expiration.
So that we don't know the txn is aborted or visible. So we have to set the job's state
as UNKNOWN, which need handle it manually.
2019-12-03 16:02:50 +08:00
875790eb13 Remove VersionHash used to comparation in Fe (#2335) 2019-12-02 19:59:13 +08:00
d90995c410 Make node info metrics available on all FE node (#2353)
Previously, only Master FE has node info metrics to indicate which node is alive.
But this info should be available on every FE, so that the monitor system
can get all metrics from any FE.
2019-12-02 17:31:32 +08:00
698d93a077 Suport convert float to double, datetime to date by "alter table modify column type" (#2310) 2019-12-02 15:55:14 +08:00
5ab6739429 Add rowset convert (#2212) 2019-12-02 10:00:19 +08:00
725468f8a2 Fix bug of getting ES host error (#2342) 2019-12-01 13:06:32 +08:00
6fbb5b31fa Need to check the return status of push_memtable (#2328)
When `BlockingQueue` is shutdown, the `blocking_put()` will return false,
we could not ignore it.
2019-11-30 17:17:46 +08:00
a3ccf2a607 Make BE CMakeLists.txt apply mac dev (#2337) 2019-11-29 22:14:48 +08:00
c5f7f7e0f4 Check the return status of _flush_memtable_async() (#2332)
This commit also contains some adjustments of the forward declaration
2019-11-29 21:05:17 +08:00
5ac4f3468e Remove old decommission job (#2326)
DecommissionJob is also a type of AlterJob.
When AlterJobV2 was introduced before, DecommissionJob was not modified accordingly.

In fact, the Decommission operation does not need to generate a Job, but only need to mark the corresponding Backend state as Decommission. After that, the tablet repair logic will try to migrate the tablet on that Backend. And SystemHandler only needs to check all nodes marked as decommission, and then drop the emptied nodes.
2019-11-29 21:02:53 +08:00
8787a59cb4 Make FE compile support Mac (#2334) 2019-11-29 20:50:35 +08:00
d937f7b51e Fix the error of stream load doc (#2340) 2019-11-29 16:33:08 +08:00
ba76504fdc Fixed a bug that FE config 'async_load_task_pool_size' missing @ConfField annotation (#2339)
This will cause 'async_load_task_pool_size' not configurable.
2019-11-29 14:11:51 +08:00
8bf00afa25 Create table with nullable column for default (#2256)
Change the default column null property to nullable
2019-11-29 11:11:31 +08:00
ba3d16f4c7 Add BinaryPrefixPage (#2308) 2019-11-29 07:39:11 +08:00
6e33308472 Show tablet lists in EXPLAIN OlapScanNode (#2316) 2019-11-29 07:38:47 +08:00
814e486113 Support ifnull fe builtin function (#2292) (#2327) 2019-11-28 22:10:08 +08:00
324f1b8f51 Unify the type of path_hash to size_t (#2324)
The type of path hash should be `size_t`(i.e. `uint32_t`),
but the current code mixes `int64_t`, ` int32_t` and `size_t`
2019-11-28 18:48:52 +08:00
e7b05f7eb3 Date format support java date style "yyyy-MM-dd HH:mm:ss" (#2309) 2019-11-28 14:34:31 +08:00
c33789ee49 Update insert-into-manual_EN.md (#2323)
Modify the description error for the enable_insert_strict parameter
2019-11-28 14:00:33 +08:00
02d7c486e1 Update insert-into-manual.md (#2322)
Modify the description error for the enable_insert_strict parameter
2019-11-28 13:59:54 +08:00
a2d7c42042 Add a variable to specifically limit the memory usage of the load part in the insert operation (#2305)
This variable is mainly for INSERT operation, because INSERT operation has both query and load part.
Using only the exec_mem_limit variable does not make a good distinction of memory limit between the two parts.
2019-11-28 13:03:11 +08:00
036ef5bcb9 Add a tool to show segment status (#2260)
In order to be aware of the convert process from AlphaRowset to BetaRowset, we need a mechanism to know the process of convert.
2019-11-27 11:35:16 +08:00
ccbd65daeb Ensure ES endpoint without http prefix can work (#2303) 2019-11-26 22:52:10 +08:00
569d0bb3af Replace all remaining boost::split() with strings::split() (#2302) 2019-11-26 22:22:14 +08:00
f716fd2b0b Ignore non-existent tablet in clear_transaction_task() (#2296)
This commit also remove some duplicated logs, which are duplicated
printed inside and outside the function
2019-11-26 08:17:56 -06:00
a465b38874 Enhance doris on es error message (#2297)
Enhance doris on es error message and modify some field data transform error.
For varchar/char type, sometimes elasticsearch user post some not-string value to Elasticsearch Index. because of reading value from _source, we can not process all json type and then just transfer the value to original string representation this may be a tricky, but we can workaround this issue
2019-11-26 18:32:25 +08:00
78cee0050d Fix IFNULL constants compute error (#2290) (#2291) 2019-11-25 18:47:36 +08:00
1a97bacc32 Replace boost::split() with strings::Split() in storage options (#2277) 2019-11-25 09:32:41 +08:00
d5aeb9a6b7 Add document for session variables. (#2284)
Also make the variable effective in current session when setting it globally.
2019-11-24 22:47:05 +08:00
e98bbb5bc5 Refactor clone task (#2285)
In the previous implementation, clone task will continue download files
even if some error happened. This may cause unexpected problem. This
Change List refactor it to that when error happends, clone task will
fail total and try to clone from another remote source.

Besides above change, I call FileUtils::remove_all and create_dir
instead of boost one, which may cause exception. What's more
AgentMasterClient is replaced with ThriftRpcHelper, by this change
conncection can be reused.
2019-11-24 22:36:10 +08:00
9247da9bcc Fix deregister_recvr no cancel_stream bug (#2286) 2019-11-24 20:13:08 +08:00
885019a75b Make DataStreamRecvr cancel_stream out of lock (#2281) 2019-11-23 16:52:49 +08:00
764fa70aa3 Fix is not null bug #2278 (#2279) 2019-11-23 00:29:38 +08:00
46181c0880 Fix some bugs about load label (#2241) 2019-11-23 00:04:45 +08:00
7bf89793fd Move dtor of BetaRowset to cpp file (#2276)
There are many jobs in its dtor, so should not be inline
2019-11-23 00:04:25 +08:00
fda46654a2 Support setting properties for storage_root_path (#2235)
We can specify the properties of storage_root_path by setting ':', seperate by ','
e.g.
storage_root_path = /home/disk1/palo,medium:ssd,capacity:50
2019-11-22 18:12:26 +08:00
0e84a88c1a Fix document bugs in spark-doris-connector (#2275) 2019-11-22 18:05:36 +08:00
732c473043 Add spark-doris-connector extension (#2228) 2019-11-22 15:38:05 +08:00
79ff0ad2a4 Add pipes_as_concat_mode (#2252)
This commit will add a new sql mode named MODE_PIPES_AS_CONCAT:
Description:
1、If this mode is active, '||' will be handled different from the original way ('||' and 'or' are seen as the same symbols in Doris) that it can be used to concat two exps and returns a new string. For example, 'a' || 'b' = 'ab' and 1 || 0 = '10'.
2. User can active this mode by "SET sql_mode = PIPES_AS_CONCAT", and deactive it by "SET sql_mode = '' ".
2019-11-22 15:01:53 +08:00
297542bd3f Delay start master only daemon threads (#2268)
These daemon thread should be started after catalog is ready,
otherwise it may cause some undefined behavior.
2019-11-22 14:39:37 +08:00