| 854 | } |
| 855 | |
| 856 | void updatePersistentPopped(TLogData* self, Reference<LogData> logData, Reference<LogData::TagData> data) { |
| 857 | if (!data->poppedRecently) |
| 858 | return; |
| 859 | self->persistentData->set( |
| 860 | KeyValueRef(persistTagPoppedKey(logData->logId, data->tag), persistTagPoppedValue(data->popped))); |
| 861 | data->poppedRecently = false; |
| 862 | data->persistentPopped = data->popped; |
| 863 | |
| 864 | if (data->nothingPersistent) |
| 865 | return; |
| 866 | |
| 867 | if (logData->shouldSpillByValue(data->tag)) { |
| 868 | self->persistentData->clear(KeyRangeRef(persistTagMessagesKey(logData->logId, data->tag, Version(0)), |
| 869 | persistTagMessagesKey(logData->logId, data->tag, data->popped))); |
| 870 | } else { |
| 871 | self->persistentData->clear(KeyRangeRef(persistTagMessageRefsKey(logData->logId, data->tag, Version(0)), |
| 872 | persistTagMessageRefsKey(logData->logId, data->tag, data->popped))); |
| 873 | } |
| 874 | |
| 875 | if (data->popped > logData->persistentDataVersion) { |
| 876 | data->nothingPersistent = true; |
| 877 | } |
| 878 | } |
| 879 | |
| 880 | ACTOR Future<Void> updatePoppedLocation(TLogData* self, Reference<LogData> logData, Reference<LogData::TagData> data) { |
| 881 | // For anything spilled by value, we do not need to track its popped location. |
no test coverage detected