/** * Return a more accurate batch estimate or 0 if a new estimate is not available */ public int getRowSizeEstimate() { return this.manager.getRowSizeEstimate(); }
public String[] getTypes() { return manager.getTypes(); }
public boolean isPreferMemory() { return this.leafManager.prefersMemory(); }
public void setPrefersMemory(boolean prefersMemory) { this.manager.setPrefersMemory(prefersMemory); }
void saveBatch(boolean force) throws TeiidComponentException { Assertion.assertTrue(!this.isRemoved()); if (batchBuffer == null || batchBuffer.isEmpty() || (!force && batchBuffer.size() < Math.max(1, batchSize / 32))) { return; } Long mbatch = manager.createManagedBatch(batchBuffer, null, false); this.batches.put(rowCount - batchBuffer.size() + 1, mbatch); batchBuffer = null; }
protected List<List<?>> getValues() throws TeiidComponentException { if (values != null) { return values; } if (managedBatch == null) { throw new AssertionError("Batch removed"); //$NON-NLS-1$ } for (int i = 0; i < 10; i++) { CleanupReference ref = (CleanupReference)QUEUE.poll(); if (ref == null) { break; } if (REFERENCES.remove(ref.batch) != null) { ref.cleanup(); } } List<List<?>> result = stree.getBatchManager(children == null).getBatch(managedBatch, true); if (trackingObject != null) { return new LightWeightCopyOnWriteList<List<?>>(result); } return result; }
public SPage clone(STree tree) { try { if (this.managedBatch != null && trackingObject == null) { this.trackingObject = new Object(); CleanupReference managedBatchReference = new CleanupReference(trackingObject, managedBatch, stree.getBatchManager(children == null).getBatchManagerReference()); REFERENCES.put(managedBatch, managedBatchReference); } SPage clone = (SPage) super.clone(); clone.stree = tree; if (children != null) { clone.children = new ResizingArrayList<SPage>(children); } if (values != null) { clone.values = new ResizingArrayList<List<?>>(values); } return clone; } catch (CloneNotSupportedException e) { throw new TeiidRuntimeException(QueryPlugin.Event.TEIID30038, e); } }
public void cleanup() { try { BatchManager batchManager = ref.get(); if (batchManager != null) { batchManager.remove(batch); } } finally { this.clear(); } } }
public void setPrefersMemory(boolean prefersMemory) { this.manager.setPrefersMemory(prefersMemory); }
void saveBatch(boolean force) throws TeiidComponentException { Assertion.assertTrue(!this.isRemoved()); if (batchBuffer == null || batchBuffer.isEmpty() || (!force && batchBuffer.size() < Math.max(1, batchSize / 32))) { return; } Long mbatch = manager.createManagedBatch(batchBuffer, null, false); this.batches.put(rowCount - batchBuffer.size() + 1, mbatch); batchBuffer = null; }
protected List<List<?>> getValues() throws TeiidComponentException { if (values != null) { return values; } if (managedBatch == null) { //we need this to be a check exception as the batch can be removed //by the size check at the buffermanager level throw new TeiidComponentException("Batch removed"); //$NON-NLS-1$ } for (int i = 0; i < 10; i++) { CleanupReference ref = (CleanupReference)QUEUE.poll(); if (ref == null) { break; } if (REFERENCES.remove(ref.batch) != null) { ref.cleanup(); } } List<List<?>> result = stree.getBatchManager(children == null).getBatch(managedBatch, true); if (trackingObject != null) { return new LightWeightCopyOnWriteList<List<?>>(result); } return result; }
public SPage clone(STree tree) { try { if (this.managedBatch != null && trackingObject == null) { this.trackingObject = new Object(); CleanupReference managedBatchReference = new CleanupReference(trackingObject, managedBatch, stree.getBatchManager(children == null).getBatchManagerReference()); REFERENCES.put(managedBatch, managedBatchReference); } SPage clone = (SPage) super.clone(); clone.stree = tree; if (children != null) { clone.children = new ResizingArrayList<SPage>(children); } if (values != null) { clone.values = new ResizingArrayList<List<?>>(values); } return clone; } catch (CloneNotSupportedException e) { throw new TeiidRuntimeException(QueryPlugin.Event.TEIID30038, e); } }
public void purge() { if (this.batchBuffer != null) { this.batchBuffer.clear(); } for (Long batch : this.batches.values()) { this.manager.remove(batch); } if (this.lobManager != null) { this.lobManager.remove(); } this.batches.clear(); }
public String[] getTypes() { return manager.getTypes(); }
public void setPreferMemory(boolean preferMemory) { this.leafManager.setPrefersMemory(preferMemory); }
void saveBatch(boolean force) throws TeiidComponentException { Assertion.assertTrue(!this.isRemoved()); if (batchBuffer == null || batchBuffer.isEmpty() || (!force && batchBuffer.size() < Math.max(1, batchSize / 32))) { return; } Long mbatch = manager.createManagedBatch(batchBuffer, null, false); this.batches.put(rowCount - batchBuffer.size() + 1, mbatch); batchBuffer = null; }
protected List<List<?>> getValues() throws TeiidComponentException { if (values != null) { return values; } if (managedBatch == null) { //we need this to be a check exception as the batch can be removed //by the size check at the buffermanager level throw new TeiidComponentException("Batch removed"); //$NON-NLS-1$ } for (int i = 0; i < 10; i++) { CleanupReference ref = (CleanupReference)QUEUE.poll(); if (ref == null) { break; } if (REFERENCES.remove(ref.batch) != null) { ref.cleanup(); } } List<List<?>> result = stree.getBatchManager(children == null).getBatch(managedBatch, true); if (trackingObject != null) { return new LightWeightCopyOnWriteList<List<?>>(result); } return result; }
/** * Return a more accurate batch estimate or 0 if a new estimate is not available */ public int getRowSizeEstimate() { return this.manager.getRowSizeEstimate(); }
public boolean isPreferMemory() { return this.leafManager.prefersMemory(); }