Skip to content

Glosario

Freeblock de SQLite

Un bloque de espacio libre dentro de una página b-tree de SQLite, encadenado en una lista. Los registros borrados suelen sobrevivir en él.

Dentro de una página b-tree de SQLite, el espacio que libera una celda borrada se convierte en un freeblock. Los freeblocks forman una lista enlazada dentro de la página: los 2 primeros bytes de cada uno indican la posición del siguiente y los 2 bytes siguientes su tamaño. Esos 4 bytes sobrescriben el inicio de la celda antigua, pero el resto del registro, incluidos los tipos serie de su cabecera, a menudo sobrevive.

Por eso se pueden tallar filas borradas de QuarantineEventsV2: se toma como ancla la secuencia de tipos serie de un registro LSQuarantineEvent y se leen los valores que siguen. Nada garantiza esa supervivencia. El ajuste secure_delete de SQLite sobrescribe el contenido liberado y las escrituras posteriores reutilizan el espacio, así que la ausencia de filas recuperadas no demuestra nada. Consulte cómo recuperar eventos de cuarentena borrados.