List of usage examples for org.apache.spark.unsafe.memory MemoryBlock size
public long size()
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMap.java
License:Apache License
/** * Returns the total amount of memory, in bytes, consumed by this map's managed structures. *//*from w w w .j av a 2 s .c o m*/ public long getTotalMemoryConsumption() { long totalDataPagesSize = 0L; for (MemoryBlock dataPage : dataPages) { totalDataPagesSize += dataPage.size(); } return totalDataPagesSize + ((longArray != null) ? longArray.memoryBlock().size() : 0L); }
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMap.java
License:Apache License
/** * Allocates a LongArray of `size`.//from ww w . j ava 2 s. c om */ public LongArray allocateArray(long size) { long required = size * 8L; MemoryBlock page = memoryManager.allocatePage(required); if (page == null || page.size() < required) { long got = 0; if (page != null) { got = page.size(); memoryManager.freePage(page); } //memoryManager.showMemoryUsage(); throw new OutOfMemoryError("Unable to acquire " + required + " bytes of memory, got " + got); } used += required; return new LongArray(page); }
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMap.java
License:Apache License
/** * Allocate a memory block with at least `required` bytes. * * Throws IOException if there is not enough memory. * * @throws OutOfMemoryError//ww w. ja v a2 s .c om */ protected MemoryBlock allocatePage(long required) { MemoryBlock page = memoryManager.allocatePage(Math.max(pageSizeBytes, required)); if (page == null || page.size() < required) { long got = 0; if (page != null) { got = page.size(); memoryManager.freePage(page); } //memoryManager.showMemoryUsage(); throw new OutOfMemoryError("Unable to acquire " + required + " bytes of memory, got " + got); } used += page.size(); return page; }
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMap.java
License:Apache License
/** * Free a memory block. */ protected void freePage(MemoryBlock page) { used -= page.size(); memoryManager.freePage(page); }
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMapMemoryManager.java
License:Apache License
/** * Free a block of memory allocated via {@link org.apache.spark.memory.TaskMemoryManager#allocatePage}. *//*from w w w. j av a 2 s . c o m*/ public void freePage(MemoryBlock page) { assert (page.pageNumber != -1) : "Called freePage() on memory that wasn't allocated with allocatePage()"; assert (allocatedPages.get(page.pageNumber)); pageTable[page.pageNumber] = null; synchronized (this) { allocatedPages.clear(page.pageNumber); } if (logger.isTraceEnabled()) { logger.trace("Freed page number {} ({} bytes)", page.pageNumber, page.size()); } long pageSize = page.size(); memoryAllocator.free(page); }
From source file:edu.ucla.cs.wis.bigdatalog.spark.storage.map.BytesToBytesMapMemoryManager.java
License:Apache License
/** * Returns the memory consumption, in bytes, for the current task. */// w ww . j ava 2 s . c o m public long getMemoryConsumption() { long size = 0L; for (MemoryBlock page : pageTable) size += page.size(); return size; }