Abstract
The differing requirements for concurrency models in programming languages and databases are widely diverse and often seemingly incompatible. The rigid provision of a particular concurrency control scheme in a persistent object system limits its usefulness to a particular class of application, in contrast to the generality intended by the provision of persistence. One solution is to provide a flexible system in which concurrency control schemes may be specified according to the particular task in hand, allowing the same data to be used in conjunction with different concurrency control schemes according to the needs of the application.
A major difficulty in the engineering of such a system lies in the building of generic mechanisms to provide the facilities of data visibility restriction, stability, and atomicity, independently of the combination of these employed by a particular concurrency control scheme. Flask is a architecture which is designed to achieve this goal by defining a layering whereby the memory management is not tied to any one concurrency control scheme operating above. This paper outlines the Flask architecture and focuses on an implementation based on concurrent shadow paging. The architecture described is currently being used as the basis for experimentation in generic concurrency specification.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Acceta, M., Baron, R., Bolosky, W., Golub, D., Rashid, R., Tevanian, A. & Young, M. “Mach: A New Kernel Foundation for Unix Development”. USENIX (1986) pp 93–112.
Agrawal, R. & DeWitt, D. “Recovery Architectures for Multiprocessor Database Machines”. In SIGMOD International Conference on Management of Data, (1985) pp 131–147.
Agrawal, R. & DeWitt, D. “Integrated Concurrency Control and Recovery Mechanisms: Design and Performance Evaluation”. ACM Transactions on Database Systems, 10,4 (1985) pp 529–564.
Brown, A.L. & Rosenberg, J. “Persistent Object Stores: An Implementation Technique”. In Dearie, Shaw, Zdonik (eds.), Implementing Persistent Object Bases, Principles and Practice, Morgan Kaufmann, 1991 pp 199–212.
Chamberlin, D.D., Astrahan, M.M., Blasgen, M.W., Gray, J.N., King, W.F., Lindsay, B.G., Lorie, R.A., Mehl, J.W., Price, T.G., Selinger, P.G., Schkolnick, M., Slutz, D.R., Traiger, I.L., Wade, B.W. & Yost, R.A. “A History and Evaluation of System R”. CACM 24, 10 (1981) pp 632–646.
Challis, M.P. “Data Consistency and Integrity in a Multi-User Environment”. Databases: Improving Usability and Responsiveness, Academic Press, 1978.
Davies, C.T. “Recovery semantics for a DB/DC System”. In Proc. ACM Annual Conference, (1973) pp 136–141.
Davies, C.T. “Data Processing Spheres of Control”. IBM Systems Journal 17,2 (1978) pp 179–198.
Deux, O. “The Story of 02”. IEEE Transactions on data and knowledge engineering. March 1990.
Ellis, C.A. & Gibbs, S.J. “Concurrency Control in Groupware Systems”. In Proc. SIGMOD International Conference on Management of Data. (1990) pp 399–407.
Eswaran, K.P., Gray, J.N., Lorie, R.A. & Traiger, I.L. “The Notions of Consistency and Predicate Locks in a Database System”. CACM 19,11 (1976) pp 624–633.
Garcia-Molina, H. “Using Semantic Knowledge for Transaction Processing in a Distributed Database”. ACM Transactions on Database Systems, 8,2 (1983) pp 186–213.
Gray, J., McJones, P., Blasgen, M., Lindsay, B., Lorie, R., Price, T., Putzolu, F. & Traiger, I. “The Recovery Manager of the System R Database Manager”. ACM Computing Surveys, vol. 13, no. 2, June 1981 pp 223–242.
Gingell, R.A., Moran, J.P. & Shannon, W.A. “Virtual Memory Architecture in SunOS”. USENIX Summer Conference Proceedings, Phoenix 1987.
Garcia-Molina, H. & Salem, K. “Sagas”. In Proc. SIGMOD International Conference on Management of Data. (1987) pp 249–259.
Kent, J., Garcia-Molina, H. & Chung, J. “An experimental evaluation of crash recovery mechanisms”. In Proc. 4th ACM Symposium on Principles of Database Systems (1985) pp 113–122.
Kolodner, E.K. “Recovery Using Virtual Memory”. M.Sc. Thesis, MIT (1987).
Krablin, G.L. “Building Flexible Multilevel Transactions in a Distributed Persistent Environment”. 2nd International Workshop on Persistent Object Systems, Appin, (August 1987) pp 213–234.
Lorie, A.L. Physical Integrity in a Large Segmented Database, ACM Transactions on Database Systems, 2,1 (1977) pp 91–104.
Moss, J.E.B. “Nested Transactions: An Approach to Reliable Distributed Computing”. Ph.D. Thesis, MIT (1981).
Munro, D.S. “On the Integration of Concurrency, Distribution and Persistence”. Ph.D. Thesis, University of St Andrews (1993).
Nodine, M.H. & Zdonik, S. B. “Co-operative Transaction Hierarchies: Transaction Support for Design Applications”. VLDB Journal 1,1 (1992) pp 41–80.
Oki, B., Liskov, B. & Scheifler, R. “Reliable Object Storage to Support Atomic Actions”. In Proc 10th Symposium on Operating Systems Principles, 1985 pp 147–159.
O’Toole, J. & Shrira, L. “Opportunistic Log: Efficient Installation Reads in a Reliable Object Server”. Technical Report MIT/LCS-TM-506, March 1994. To appear in 1st International Symposium on Operating Systems Design and Implementation, Monterey, CA (1994).
“The PS-algol Reference Manual fourth edition”. Technical Report PPRR-12 (1987), Universities of Glasgow and St Andrews.
Reed, D.P. “Naming and Synchronisation in a Decentralised Computer”. Ph.D. Thesis, M.I.T. (1978).
Stemple, D. & Morrison, R. “Specifying Flexible Concurrency Control Schemes: An Abstract Operational Approach”. Australian Computer Science Conference 15, Tasmania (1992) pp 873–891.
Stonebraker, M. (Editor) “The Ingres Papers”. Addison-Wesley, Reading, MA (1986).
Sutton, S. “A Flexible Consistency Model for Persistent Data in Software-Process Programming”. In Dearie, Shaw, Zdonik (eds.), Implementing Persistent Object Bases, Principles and Practice, Morgan Kaufmann, 1991 pp 305–319.
Velez, F., Darnis, V., DeWitt, D., Futtersack, P., Harms, G., Maier, D., and Raoux, M. “Implementing the O2 object manager: some lessons”. In Dearie Shaw Zdonik (eds.), Implementing Persistent Object Bases, Principles and Practice, Morgan Kaufmann, 1991 pp 131–138.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 British Computer Society
About this paper
Cite this paper
Munro, D.S., Connor, R.C.H., Morrison, R., Scheuerl, S., Stemple, D.W. (1995). Concurrent Shadow Paging in the Flask Architecture. In: Atkinson, M., Maier, D., Benzaken, V. (eds) Persistent Object Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-2122-0_3
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2122-0_3
Publisher Name: Springer, London
Print ISBN: 978-3-540-19912-0
Online ISBN: 978-1-4471-2122-0
eBook Packages: Springer Book Archive