void resurrect(final long clusterPosition, final OClusterPositionMapBucket.PositionEntry entry, final OAtomicOperation atomicOperation) throws IOException { final long pageIndex = clusterPosition / OClusterPositionMapBucket.MAX_ENTRIES + 1; final int index = (int) (clusterPosition % OClusterPositionMapBucket.MAX_ENTRIES); final long lastPage = getLastPage(atomicOperation); if (pageIndex > lastPage) { throw new OClusterPositionMapException( "Passed in cluster position " + clusterPosition + " is outside of range of cluster-position map", this); } final OCacheEntry cacheEntry = loadPageForWrite(atomicOperation, fileId, pageIndex, false); try { final OClusterPositionMapBucket bucket = new OClusterPositionMapBucket(cacheEntry, false); bucket.resurrect(index, entry); } finally { releasePageFromWrite(atomicOperation, cacheEntry); } }
public void update(final long clusterPosition, final OClusterPositionMapBucket.PositionEntry entry, final OAtomicOperation atomicOperation) throws IOException { final long pageIndex = clusterPosition / OClusterPositionMapBucket.MAX_ENTRIES + 1; final int index = (int) (clusterPosition % OClusterPositionMapBucket.MAX_ENTRIES); final long lastPage = getLastPage(atomicOperation); if (pageIndex > lastPage) { throw new OClusterPositionMapException( "Passed in cluster position " + clusterPosition + " is outside of range of cluster-position map", this); } final OCacheEntry cacheEntry = loadPageForWrite(atomicOperation, fileId, pageIndex, false); try { final OClusterPositionMapBucket bucket = new OClusterPositionMapBucket(cacheEntry, false); bucket.set(index, entry); } finally { releasePageFromWrite(atomicOperation, cacheEntry); } }
public void update(final long clusterPosition, final OClusterPositionMapBucket.PositionEntry entry, final OAtomicOperation atomicOperation) throws IOException { final long pageIndex = clusterPosition / OClusterPositionMapBucket.MAX_ENTRIES; final int index = (int) (clusterPosition % OClusterPositionMapBucket.MAX_ENTRIES); if (pageIndex >= getFilledUpTo(atomicOperation, fileId)) { throw new OClusterPositionMapException( "Passed in cluster position " + clusterPosition + " is outside of range of cluster-position map", this); } final OCacheEntry cacheEntry = loadPageForWrite(atomicOperation, fileId, pageIndex, false); try { final OClusterPositionMapBucket bucket = new OClusterPositionMapBucket(cacheEntry, false); bucket.set(index, entry); } finally { releasePageFromWrite(atomicOperation, cacheEntry); } }
void resurrect(final long clusterPosition, final OClusterPositionMapBucket.PositionEntry entry, final OAtomicOperation atomicOperation) throws IOException { final long pageIndex = clusterPosition / OClusterPositionMapBucket.MAX_ENTRIES; final int index = (int) (clusterPosition % OClusterPositionMapBucket.MAX_ENTRIES); if (pageIndex >= getFilledUpTo(atomicOperation, fileId)) { throw new OClusterPositionMapException( "Passed in cluster position " + clusterPosition + " is outside of range of cluster-position map", this); } final OCacheEntry cacheEntry = loadPageForWrite(atomicOperation, fileId, pageIndex, false); try { final OClusterPositionMapBucket bucket = new OClusterPositionMapBucket(cacheEntry, false); bucket.resurrect(index, entry); } finally { releasePageFromWrite(atomicOperation, cacheEntry); } }