A common database need is to obtain a global-read, which Is a consiste
nt read of an entire database. To avoid terminating normal system acti
vity, and thus improve availability, we propose an on the-fly algorith
m that reads database entities incrementally and allows normal transac
tions to proceed concurrently. The algorithm assigns each entity a col
or based on whether the entity has been globally read, and a shade bas
ed on how normal transactions have accessed the entity. Serializabilit
y of execution histories is ensured by requiring normal transactions t
o pass both a color test and a shade test before being allowed to comm
it. Our algorithm improves on a color only-based scheme from the liter
ature; the color-only scheme does not guarantee serializability.