public async Task <long> GetLastDocId() { if (_file.Length == 0) { return(0); } var initialPos = _file.Position; try { var compression = new CompressionUtils(); var segment = await compression.ReadWithDecompressionFromRightToLeft(_file); using (var ms = new MemoryStream(segment.Array, segment.Offset, segment.Count)) { var batch = await DocumentSerializer.DeserializeBatch(ms).ConfigureAwait(false); return(batch.Last().Id); } } finally { _file.Position = initialPos; } }