Safe Lazy Software Upgrades in Object-Oriented Databases

msra(2002)

引用 28|浏览22
暂无评分
摘要
Object-oriented databases allow objects that are ma- nipulated by programs to be stored reliably so that they can be used again later and shared with other programs. Since objects in the OODB may live a long time, there may be a need to upgrade them: to change their code and storage representation. This paper describes a tech- nique for upgrading objects in an OODB. The approach preserves the database state by transforming objects to their new classes while retaining their state and their identity. The approach is ecient: we do not interrupt application execution to run an upgrade, but instead run the upgrade incrementally, one transform at a time. Objects are transformed lazily, but just in time; applica- tions never observe non-upgraded objects. Laziness can sometimes lead to problems for the code that transforms objects, however; e.g., a transform might observe broken invariants or interfaces unknown at the time it was writ- ten. We define precisely when these problems arise, and we also provide mechanisms for avoiding them. Ours is the first work to provide a full analysis of these prob- lems and to allow safe lazy upgrades even when prob- lems arise. We have implemented our approach on the Thor OODB and we present performance results that show that the overhead of our infrastructure is low.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要