in runtime/common/src/main/java/org/apache/nemo/runtime/common/metric/MetricUtils.java [150:190]
private static void updateMetaData() {
if (!metaDataLoaded()
|| (MUST_UPDATE_EP_METADATA.getCount() + MUST_UPDATE_EP_KEY_METADATA.getCount() == 2)) {
// no need to update
LOG.info("Not saving Metadata: metadata loaded: {}, Index-EP data: {}, Index-EP Key data: {}",
metaDataLoaded(), MUST_UPDATE_EP_METADATA.getCount() == 0, MUST_UPDATE_EP_KEY_METADATA.getCount() == 0);
return;
}
LOG.info("Saving Metadata..");
try (Connection c = DriverManager.getConnection(MetricUtils.POSTGRESQL_METADATA_DB_NAME,
"postgres", getCreds())) {
try (Statement statement = c.createStatement()) {
statement.setQueryTimeout(30); // set timeout to 30 sec.
if (MUST_UPDATE_EP_KEY_METADATA.getCount() == 0) {
EP_KEY_METADATA.forEach((l, r) -> {
try {
insertOrUpdateMetadata(c, "EP_KEY_METADATA", l, r);
} catch (SQLException e) {
LOG.warn(SAVING_METADATA_FAIL_MSG, e);
}
});
LOG.info("EP Key Metadata saved to DB.");
}
if (MUST_UPDATE_EP_METADATA.getCount() == 0) {
EP_METADATA.forEach((l, r) -> {
try {
insertOrUpdateMetadata(c, "EP_METADATA", l.left() * 10000 + l.right(), r);
} catch (SQLException e) {
LOG.warn(SAVING_METADATA_FAIL_MSG, e);
}
});
LOG.info("EP Metadata saved to DB.");
}
}
} catch (SQLException e) {
LOG.warn(SAVING_METADATA_FAIL_MSG, e);
}
}