The rise of cloud computing has enabled governments and companies to store huge data sets. Today, one of the major performance bottlenecks processing these data sets is the garbage collector of managed runtime environments such as the Java virtual machine. The garbage collector must now scan heaps of tens of gigabytes of memory, which causes intolerable pauses to the user. A recent study that was conducted jointly with the University of Neuchatel showed that database NoSQL Cassandra could introduce pauses of up to 6 minutes with a heap of a hundred gigabytes. The aim of this internship is to propose and study a new garbage collection algorithm that can support large memory loads. The algorithm starts from the principle that the garbage collector can scan objects concurrently with the application if these objects are not accessed by the application at the same time. The aim of the internship will be to find an algorithm to separate the heap into two parts, one with the objects accessed by the application , the other with non-accessed objects. Developments will be made in the HotSpot Java Virtual Machine (JVM) in C++. It is therefore requested the applicant to have an excellent level of programming and knowledge in memory collection.