Optimize the publish logic of streaming load (#350)

1. Only collect all error replicas if publish task is timeout.
2. Add 2 metrics to monitor the success of failure of txn.
3. Change publish timeout to Config.load_straggler_wait_second
This commit is contained in:
Mingyu Chen
2018-11-26 19:01:50 +08:00
committed by GitHub
parent 7ac011571f
commit dedfccfaf5
12 changed files with 160 additions and 108 deletions

View File

@ -17,32 +17,26 @@
package org.apache.doris.load.routineload;
import com.google.common.collect.Lists;
import mockit.Deencapsulation;
import mockit.Expectations;
import mockit.Injectable;
import mockit.Mock;
import mockit.MockUp;
import mockit.Mocked;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.common.LoadException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.persist.EditLog;
import org.apache.doris.system.SystemInfoService;
import org.apache.doris.thrift.TResourceInfo;
import org.easymock.EasyMock;
import com.google.common.collect.Lists;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mockit.Deencapsulation;
import mockit.Expectations;
import mockit.Injectable;
import mockit.Mocked;
public class RoutineLoadSchedulerTest {
@Test
@ -72,18 +66,6 @@ public class RoutineLoadSchedulerTest {
Deencapsulation.setField(routineLoadJob, "kafkaPartitions", partitions);
Deencapsulation.setField(routineLoadJob, "desireTaskConcurrentNum", 3);
new MockUp<Catalog>() {
@Mock
public SystemInfoService getCurrentSystemInfo() {
return systemInfoService;
}
@Mock
public Catalog getCurrentCatalog() {
return catalog;
}
};
new Expectations() {
{
catalog.getRoutineLoadInstance();