
org.infinispan.persistence.sifs.TemporaryTable Maven / Gradle / Ivy
package org.infinispan.persistence.sifs;
import java.util.AbstractMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicReferenceArray;
import java.util.function.IntConsumer;
import org.infinispan.commons.util.IntSet;
import org.infinispan.util.logging.LogFactory;
import io.reactivex.rxjava3.core.Flowable;
/**
* Table holding the entry positions in log before these are persisted to the index.
*
* @author Radim Vansa <[email protected]>
*/
public class TemporaryTable {
private static final Log log = LogFactory.getLog(TemporaryTable.class, Log.class);
private final AtomicReferenceArray> table;
public TemporaryTable(int segments) {
table = new AtomicReferenceArray<>(segments);
}
public int getSegmentMax() {
return table.length();
}
public void addSegments(IntSet segments) {
segments.forEach((IntConsumer) segment -> table.set(segment, new ConcurrentHashMap<>()));
}
public void removeSegments(IntSet segments) {
segments.forEach((IntConsumer) segment -> table.set(segment, null));
}
public boolean set(int segment, Object key, int file, int offset) {
ConcurrentMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy