Package org.apache.sysds.runtime.controlprogram.context

# Class MatrixObjectFuture

java.lang.Object
org.apache.sysds.runtime.instructions.cp.Data
org.apache.sysds.runtime.controlprogram.caching.CacheableData<MatrixBlock>
org.apache.sysds.runtime.controlprogram.caching.MatrixObject
org.apache.sysds.runtime.controlprogram.context.MatrixObjectFuture

All Implemented Interfaces:
  `Serializable`

public class MatrixObjectFuture extends MatrixObject

See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.sysds.runtime.controlprogram.caching.MatrixObject

`MatrixObject.UpdateType`

## Nested classes/interfaces inherited from class org.apache.sysds.runtime.controlprogram.caching.CacheableData

`CacheableData.CacheStatus`

## Field Summary

### Fields inherited from class org.apache.sysds.runtime.controlprogram.caching.CacheableData

`cacheEvictionLocalFilePath, cacheEvictionLocalFilePrefix, CACHING_ASYNC_FILECLEANUP, CACHING_ASYNC_SERIALIZE, CACHING_BUFFER_POLICY, CACHING_COUNTER_GROUP_NAME, CACHING_EVICTION_FILEEXTENSION, CACHING_THRESHOLD`

## Constructor Summary

Constructors
Constructor
Description
`MatrixObjectFuture(Types.ValueType vt, String file, Future<MatrixBlock> fmb)`
`MatrixObjectFuture(MatrixObject mo, Future<MatrixBlock> fmb)`

## Method Summary

Modifier and Type
Method
Description
`MatrixBlock`
`acquireRead()`
Acquires a shared "read-only" lock, produces the reference to the cache block, restores the cache block to main memory, reads from HDFS if needed.
`void`
`clearData(long tid)`
Sets the cache block reference to `null`, abandons the old block.

### Methods inherited from class org.apache.sysds.runtime.controlprogram.caching.MatrixObject

`getBlocksize, getNnz, getPartitionFileName, getPartitionFormat, getPartitionSize, getSparsity, getUpdateType, isCompressed, isDiag, isMarked, isPartitioned, readMatrixPartition, refreshMetaData, setDiag, setInMemoryPartition, setMarkForLinCache, setPartitioned, setUpdateType, toString, unsetPartitioned, updateDataCharacteristics`

### Methods inherited from class org.apache.sysds.runtime.controlprogram.caching.CacheableData

`acquireModify, acquireReadAndRelease, addBroadcastSize, cleanupCacheDir, cleanupCacheDir, clearData, disableCaching, enableCaching, enableCleanup, exportData, exportData, exportData, exportData, exportData, freeEvictedBlob, getBroadcastHandle, getBroadcastSize, getCacheLineage, getCompressedSize, getDataCharacteristics, getDataSize, getDebugName, getDim, getFedMapping, getFileFormatProperties, getFileName, getGPUObject, getMetaData, getNumColumns, getNumRows, getRDDHandle, getStatus, getStreamable, getStreamHandle, getUniqueID, hasBroadcastHandle, hasRDDHandle, hasStreamHandle, hasValidLineage, initCaching, initCaching, isBelowCachingThreshold, isCached, isCachingActive, isCleanupEnabled, isDeviceToHostCopy, isDirty, isFederated, isFederated, isFederatedExcept, isHDFSFileExists, isPendingRDDOps, isPersistentRead, moveData, release, removeGPUObject, removeMetaData, setBroadcastHandle, setCacheLineage, setCompressedSize, setDirty, setEmptyStatus, setFedMapping, setFileFormatProperties, setFileName, setGPUObject, setHDFSFileExists, setMetaData, setPersistentRead, setRDDHandle, setStreamHandle, toString`

### Methods inherited from class org.apache.sysds.runtime.instructions.cp.Data

`getDataType, getValueType`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### MatrixObjectFuture

public MatrixObjectFuture(Types.ValueType vt, String file, Future<MatrixBlock> fmb)

### MatrixObjectFuture

public MatrixObjectFuture(MatrixObject mo, Future<MatrixBlock> fmb)

## Method Details

### acquireRead

public MatrixBlock acquireRead()
Description copied from class: `CacheableData`
Acquires a shared "read-only" lock, produces the reference to the cache block, restores the cache block to main memory, reads from HDFS if needed. Synchronized because there might be parallel threads (parfor local) that access the same object (in case it was created before the loop). In-Status: EMPTY, EVICTABLE, EVICTED, READ; Out-Status: READ(+1).

Overrides:
  `acquireRead` in class `CacheableData<MatrixBlock>`
Returns:
  cacheable data

### clearData

public void clearData(long tid)
Description copied from class: `CacheableData`
Sets the cache block reference to `null`, abandons the old block. Makes the "envelope" empty. Run it to finalize the object (otherwise the evicted cache block file may remain undeleted). In-Status: EMPTY, EVICTABLE, EVICTED; Out-Status: EMPTY.

Overrides:
  `clearData` in class `CacheableData<MatrixBlock>`
Parameters:
  `tid` - thread ID