@ParametersAreNonnullByDefault @Override public LevelDBPayloadTable load(TopicMetadata key) throws Exception { File dbPath = getDataDBPath(payloadTableName, key.getTopicId(), key.getGeneration()); LevelDBPayloadTable payloadTable = new LevelDBPayloadTable(LEVEL_DB_FACTORY.open(dbPath, dbOptions), key); LOG.debug("Messaging payload table created at {}", dbPath); return payloadTable; } });
@Override public void run() { if (metadataTable == null || payloadTable == null || messageTable == null) { return; } long timeStamp = System.currentTimeMillis(); try (CloseableIterator<TopicMetadata> metadataIterator = metadataTable.scanTopics()) { while (metadataIterator.hasNext()) { TopicMetadata metadata = metadataIterator.next(); messageTable.pruneMessages(metadata, timeStamp); payloadTable.pruneMessages(metadata, timeStamp); } } catch (IOException ex) { LOG.debug("Unable to perform data cleanup in TMS LevelDB tables", ex); } } }
checkTopic(topicMetadata.getTopicId(), topicMetadata.getGeneration()); if (MessagingUtils.isOlderGeneration(dataGeneration, currGeneration)) { writeBatch.delete(entry.getKey());
payloadTableEntry.getValue().pruneMessages(payloadTableEntry.getKey(), timeStamp);
@Override public synchronized PayloadTable createPayloadTable(String tableName) throws IOException { if (payloadTable != null) { return payloadTable; } File dbPath = ensureDirExists(new File(baseDir, NamespaceId.SYSTEM.getNamespace() + "." + tableName)); payloadTable = new LevelDBPayloadTable(LEVEL_DB_FACTORY.open(dbPath, dbOptions)); LOG.info("Messaging payload table created at {}", dbPath); return payloadTable; }