ABSTRACT
Most real-world Big Data systems are written in managed languages. These systems suffer from severe memory problems due to the massive volumes of objects created to process input data. Allocating and deallocating a sea of objects puts a severe strain on the garbage collector, leading to excessive GC efforts and/or out-of-memory crashes. Region-based memory management has been recently shown to be effective to reduce GC costs for Big Data systems. However, all existing region-based techniques require significant user annotations, resulting in limited usefulness and practicality. This paper reports an ongoing project, aiming to design and implement a novel speculative region-based technique that requires only minimum user involvement. In our system, objects are allocated speculatively into their respective regions and promoted into the heap if needed. We develop an object promotion algorithm that scans regions for only a small number of times, which will hopefully lead to significantly improved memory management efficiency. We also present an OpenJDK-based implementation plan and an evaluation plan.
- Hadoop: Open-source implementation of MapReduce. http://hadoop.apache.org.Google Scholar
- B. Blanchet. Escape analysis for object-oriented languages. Applications to Java. In OOPSLA, pages 20--34, 1999. Google ScholarDigital Library
- V. R. Borkar, M. J. Carey, R. Grover, N. Onose, and R. Vernica. Hyracks: A flexible and extensible foundation for data-intensive computing. In ICDE, pages 1151--1162, 2011. Google ScholarDigital Library
- Y. Bu, V. Borkar, G. Xu, and M. J. Carey. A bloat-aware design for big data applications. In ISMM, pages 119--130, 2013. Google ScholarDigital Library
- J. Choi, M. Gupta, M. Serrano, V. Sreedhar, and S. Midkiff. Escape analysis for Java. In OOPSLA, pages 1--19, 1999. Google ScholarDigital Library
- J. Dolby and A. Chien. An automatic object inlining optimization and its evaluation. In PLDI, pages 345--357, 2000. Google ScholarDigital Library
- L. Fang, K. Nguyen, G. Xu, B. Demsky, and S. Lu. Interruptible tasks: Treating memory pressure as interrupts for highly scalable data-parallel programs. In SOSP, 2015. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- D. Gay and A. Aiken. Memory management with explicit regions. In PLDI, pages 313--323, 1998. Google ScholarDigital Library
- D. Gay and A. Aiken. Language support for regions. In PLDI, pages 70--80, 2001. Google ScholarDigital Library
- I. Gog, J. Giceva, M. Schwarzkopf, K. Vaswani, D. Vytiniotis, G. Ramalingam, M. Costa, D. G. Murray, S. Hand, and M. Isard. Broom: Sweeping out garbage collection from big data systems. In HotOS, 2015. Google ScholarDigital Library
- A. Kyrola, G. Blelloch, and C. Guestrin. GraphChi: Large-Scale Graph Computation on Just a PC. In OSDI, pages 31--46, 2012. Google ScholarDigital Library
- O. Lhotak and L. Hendren. Run-time evaluation of opportunities for object inlining in Java. Concurrency and Computation: Practice and Experience, 17(5-6):515--537, 2005. Google ScholarDigital Library
- D. G. Murray, F. McSherry, R. Isaacs, M. Isard, P. Barham, and M. Abadi. Naiad: A timely dataflow system. In SOSP, 2013. Google ScholarDigital Library
- K. Nguyen, K. Wang, Y. Bu, L. Fang, J. Hu, and G. Xu. Facade: A compiler and runtime for (almost) object-bounded big data applications. In ASPLOS, pages 675--690, 2015. Google ScholarDigital Library
- Y. Shuf, M. Gupta, R. Bordawekar, and J. P. Singh. Exploiting prolific types for memory management and optimizations. In POPL, pages 295--306, 2002. Google ScholarDigital Library
- G. Xu. Resurrector: A tunable object lifetime profiling technique for optimizing real-world programs. In OOPSLA, pages 111--130, 2013. Google ScholarDigital Library
- M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica. Spark: Cluster computing with working sets. HotCloud, page 10, Berkeley, CA, USA, 2010. Google ScholarDigital Library
Index Terms
- Speculative region-based memory management for big data systems
Recommendations
Panthera: holistic memory management for big data processing over hybrid memories
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationModern data-parallel systems such as Spark rely increasingly on in-memory computing that can significantly improve the efficiency of iterative algorithms. To process real-world datasets, modern data-parallel systems often require extremely large amounts ...
Safe and efficient hybrid memory management for Java
ISMM '15: Proceedings of the 2015 International Symposium on Memory ManagementJava uses automatic memory management, usually implemented as a garbage-collected heap. That lifts the burden of manually allocating and deallocating memory, but it can incur significant runtime overhead and increase the memory footprint of ...
Safe and efficient hybrid memory management for Java
ISMM '15Java uses automatic memory management, usually implemented as a garbage-collected heap. That lifts the burden of manually allocating and deallocating memory, but it can incur significant runtime overhead and increase the memory footprint of ...
Comments