A system and method for providing transaction management for writing
operations on a data storage space, such as a cache, persistently tracks a
"transient zone" that covers an active area in which write operations are
being performed. The data storage space may be a linear space in which the
operations of reclaiming space for writing new objects proceed as a wave.
The "head" of the transient zone is set to stay ahead of the front of the
wave, while the "tail" of the transient zone is set to stay behind or up
to the active block at the rear edge of the active area. As the wave of
space reclaiming travels along the data storage space, the head of the
transient zone is moved from time to time to maintain a lead. The tail of
the transient zone is also moved from time to time as writing operations
are completed. When there is a non-graceful shutdown, the data blocks
within the transient zone are viewed as corrupted and are discarded, but
the data outside the transient zone are stable (not corrupted) and thus
still usable for recovery.
Um sistema e um método para fornecer a gerência da transação para operações da escrita em um espaço do armazenamento de dados de, tal como um esconderijo, seguem persistente "uma zona transiente" essa as tampas uma área ativa em que escreve operações está sendo executada. O espaço do armazenamento de dados de pode ser um espaço linear em que as operações de recuperar o espaço para objetos novos da escrita proseguem como uma onda. A "cabeça" da zona transiente está ajustada para permanecer antes de a parte dianteira da onda, quando a "cauda" da zona transiente for ajustada para permanecer atrás ou até o bloco ativo na borda traseira da área ativa. Como a onda de cursos recuperando do espaço ao longo do espaço do armazenamento de dados de, a cabeça da zona transiente é movida do tempo para a hora de manter uma ligação. A cauda da zona transiente é movida também do tempo para o tempo como escrevendo operações é terminada. Quando há uma parada programada non-graciosa, os blocos dos dados dentro da zona transiente estão vistos como corrupted e rejeitados, mas os dados fora da zona transiente são estáveis (corrupted) e assim ainda usable para a recuperação.