Abstract
There is an inexorable trend toward storing and sending immutable data. We need immutability to coordinate at a distance, and we can afford immutability as storage gets cheaper. This article is an amuse-bouche sampling the repeated patterns of computing that leverage immutability. Climbing up and down the compute stack really does yield a sense of déjà vu all over again.
- Apache Hadoop; http://en.wikipedia.org/wiki/Apache_ Hadoop.Google Scholar
- Bernstein, P., Hadzilacos, V., Goodman, N. 1987. Concurrency Control and Recovery in Database Systems. Addison Wesley. Google ScholarDigital Library
- Dean, J., Ghemawat, S. 2004. MapReduce: simplified data processing on large clusters. Sixth Annual Symposium on Operating System Design and Implementation. Google ScholarDigital Library
- DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W. 2007. Dynamo: Amazon's highly available key-value store. Proceedings of the 21st Annual ACM Symposium on Operating Systems Principles. Google ScholarDigital Library
- Ghemawat, S., Gobioff, H., Leung, S. 2003. The Google File System. Proceedings of the 19th Annual ACM Symposium on Operating Systems Principles. Google ScholarDigital Library
- Gibson, G., Ganger, G. 2011. Principles of operation for shingled disk devices. Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-11-107.Google Scholar
- Helland, P. 2005. Data on the outside versus data on the inside. Proceedings of the Conference on Innovative Database Research.Google Scholar
- Helland, P. 2014. Heisenberg was on the write track. Abstract: Proceedings of the Conference on Innovative Database Research.Google Scholar
- Isard, M., Budiu, M., Yu, Y., Birrell, A., Fetterly, D. 2007. Dryad: distributed data-parallel programs from sequential building blocks. Proceedings of the European Conference on Computer Systems. Google ScholarDigital Library
- Karger, D., Lehman, E., Leighton, T., Panigraphy, R., Levine, M., Lewin, D. 1997. Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web. Proceedings of the 29th Annual ACM Symposium on Theory of Computing. Google ScholarDigital Library
- Lamport, L. 1998. The part-time parliament. ACM Transactions on Computer Systems 16(2): 133-169. Google ScholarDigital Library
- Lofgren, K., Normal, R., Thelin, G., Gupta, A. 2003. Wearleveling techniques for flash EEPROM systems. US Patent #6850443 (SanDisk, Western Digital).Google Scholar
- McKusick, M. Quinlan, S. 2009. GFS: evolution on fast forward. ACM Queue 7(7). Google ScholarDigital Library
- New, R., Williams, M. 2003. Log-structured file system for disk drives with shingled writing. US Patent #7996645 (Hitachi).Google Scholar
- O'Neil, P., Cheng, E., Gawlick, D., O'Neil, E. 1996. The logstructured merge-tree (LSM-tree). Acta Informatica 33(4). Google ScholarDigital Library
- Rosenblum, M., Ousterhout, J. 1992. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems 10(1): 26-52. Google ScholarDigital Library
- Wikipedia. Turtles all the way down; http://en.wikipedia.org/wiki/Turtles_all_the_way_down.Google Scholar
- Wikipedia. Write amplification; http://en.wikipedia.org/wiki/Write_amplification.Google Scholar
Recommendations
Object and reference immutability using Java generics
ESEC-FSE '07: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineeringA compiler-checked immutability guarantee provides useful documentation, facilitates reasoning, and enables optimizations. This paper presents Immutability Generic Java (IGJ), a novel language extension that expresses immutability without changing Java'...
Ownership and immutability in generic Java
OOPSLA '10The Java language lacks the important notions of ownership (an object owns its representation to prevent unwanted aliasing) and immutability (the division into mutable, immutable, and readonly data and references). Programmers are prone to design errors,...
Ownership and immutability in generic Java
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThe Java language lacks the important notions of ownership (an object owns its representation to prevent unwanted aliasing) and immutability (the division into mutable, immutable, and readonly data and references). Programmers are prone to design errors,...
Comments