MCPcopy Create free account
hub / github.com/e2wugui/zeze / start

Method start

ZezeJava/ZezeJava/src/main/java/Zeze/Dbh2/Dbh2Manager.java:152–195  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

150 }
151
152 public void start() throws Exception {
153 ShutdownHook.add(this, this::stop);
154 var raftXmlFiles = new ArrayList<File>();
155 listRaftXmlFiles(new File(home), raftXmlFiles);
156 logger.info("loading {} raftXmlFiles from '{}'", raftXmlFiles.size(), home);
157 raftXmlFiles.parallelStream().forEach((raftXml) -> {
158 try {
159 var bytes = java.nio.file.Files.readAllBytes(raftXml.toPath());
160 var raftStr = new String(bytes, StandardCharsets.UTF_8);
161 var raftConfig = RaftConfig.loadFromString(raftStr);
162 raftConfig.setDbHome(raftXml.getParent());
163 dbh2s.computeIfAbsent(raftConfig.getSortedNames(), __ -> {
164 var dbh2 = new Dbh2(this, raftConfig.getName(),
165 database, raftConfig,
166 null, false, taskOneByOne);
167 proxyServer.addRaft(dbh2.getRaft());
168 logger.info("start: add raftName = '{}'", dbh2.getRaft().getName());
169 return dbh2;
170 });
171 } catch (IOException ex) {
172 throw new RuntimeException(ex);
173 }
174 });
175 masterAgent.startAndWaitConnectionReady();
176 var acceptorAddress = masterService.getAcceptorAddress();
177 var dbh2sAtMaster = masterAgent.register(acceptorAddress.getKey(), acceptorAddress.getValue(), dbh2s.size());
178 logger.info("{}, {} - rafts=\n{}\n{}", acceptorAddress.getKey(), acceptorAddress.getValue(), dbh2sAtMaster, dbh2s.keySet());
179 // build map
180 var dbh2sAtMasterMiss = new HashMap<String, BDbh2Config.Data>();
181 for (var dbh2 : dbh2sAtMaster.getDbh2Configs()) {
182 if (!dbh2s.containsKey(dbh2.getRaftConfig()))
183 dbh2sAtMasterMiss.put(dbh2.getRaftConfig(), dbh2);
184 }
185 // 保存并启动丢失的dbh2(一般是系统完全毁坏,重新找的新机器) ...
186 logger.info("miss rafts={}", dbh2sAtMasterMiss.values());
187 for (var dbh2 : dbh2sAtMasterMiss.values()) {
188 createBucket(dbh2.getDatabase(), dbh2.getTable(), dbh2.getRaftConfig());
189 }
190 // set ready
191 masterAgent.setDbh2Ready();
192 proxyServer.start();
193
194 loadMonitorTimer = Task.scheduleUnsafe(120_000, 120_000, this::loadMonitor);
195 }
196
197 private void loadMonitor() throws Exception {
198 var loadManager = 0.0;

Callers 1

mainMethod · 0.95

Calls 15

addMethod · 0.95
listRaftXmlFilesMethod · 0.95
loadFromStringMethod · 0.95
getRaftMethod · 0.95
createBucketMethod · 0.95
scheduleUnsafeMethod · 0.95
getSortedNamesMethod · 0.80
addRaftMethod · 0.80
setDbh2ReadyMethod · 0.80
sizeMethod · 0.65
computeIfAbsentMethod · 0.65
getNameMethod · 0.65

Tested by

no test coverage detected