MCPcopy Create free account
hub / github.com/apache/kvrocks / StreamEstimateDistanceFromFirstEverEntry

Function StreamEstimateDistanceFromFirstEverEntry

src/types/redis_stream.cc:1283–1303  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1281}
1282
1283static int64_t StreamEstimateDistanceFromFirstEverEntry(const StreamMetadata &metadata, StreamEntryID id) {
1284 if (metadata.entries_added == 0) {
1285 return 0;
1286 }
1287 if (metadata.size == 0 && id < metadata.last_entry_id) {
1288 return static_cast<int64_t>(metadata.entries_added);
1289 }
1290 if (id == metadata.last_entry_id) {
1291 return static_cast<int64_t>(metadata.entries_added);
1292 } else if (id > metadata.last_entry_id) {
1293 return -1;
1294 }
1295 if (metadata.max_deleted_entry_id == StreamEntryID{0, 0} || metadata.max_deleted_entry_id < metadata.first_entry_id) {
1296 if (id < metadata.first_entry_id) {
1297 return static_cast<int64_t>(metadata.entries_added - metadata.size);
1298 } else if (id == metadata.first_entry_id) {
1299 return static_cast<int64_t>(metadata.entries_added - metadata.size + 1);
1300 }
1301 }
1302 return -1;
1303}
1304
1305static void CheckLagValid(const StreamMetadata &stream_metadata, StreamConsumerGroupMetadata &group_metadata) {
1306 bool valid = false;

Callers 1

CheckLagValidFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected