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_PAGECACHE, CACHING_BUFFER_POLICY, CACHING_COUNTER_GROUP_NAME, CACHING_EVICTION_FILEEXTENSION, CACHING_THRESHOLD, CACHING_WRITE_CACHE_ON_READ`

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`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, getUniqueID, hasBroadcastHandle, hasRDDHandle, hasValidLineage, initCaching, initCaching, isBelowCachingThreshold, isCached, isCachingActive, isCleanupEnabled, isDeviceToHostCopy, isDirty, isFederated, isFederated, isFederatedExcept, isHDFSFileExists, isPendingRDDOps, moveData, release, removeGPUObject, removeMetaData, setBroadcastHandle, setCacheLineage, setCompressedSize, setDirty, setEmptyStatus, setFedMapping, setFileFormatProperties, setFileName, setGPUObject, setHDFSFileExists, setMetaData, setRDDHandle`

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

`getDataType, getPrivacyConstraint, getValueType, setPrivacyConstraints`

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

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

### Constructor Detail

#### MatrixObjectFuture

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

#### MatrixObjectFuture

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

### Method Detail

#### 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