Example usage for org.apache.spark.unsafe.memory MemoryBlock size

List of usage examples for org.apache.spark.unsafe.memory MemoryBlock size

Introduction

In this page you can find the example usage for org.apache.spark.unsafe.memory MemoryBlock size.

Prototype

public long size() 

Source Link

Document

Returns the size of the memory block.

Usage

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;
}