This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch 681-handle-the-out-of-memory-errors in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit 6ff6d638bdc388f99d18f405ee8c1c0f243aafd7 Author: Bertil Chapuis <[email protected]> AuthorDate: Thu Jul 13 01:36:31 2023 +0200 Add some javadoc and fix code smells --- .../collection/Long2LongOpenHashDataMap.java | 38 +++++++++++++--------- .../collection/Long2LongPackedOpenHashDataMap.java | 31 ++++++++++-------- .../collection/Long2ObjectOpenHashDataMap.java | 38 +++++++++++++--------- 3 files changed, 61 insertions(+), 46 deletions(-) diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongOpenHashDataMap.java b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongOpenHashDataMap.java index 2b80a156..117fea28 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongOpenHashDataMap.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongOpenHashDataMap.java @@ -33,59 +33,65 @@ import java.util.function.Supplier; public class Long2LongOpenHashDataMap extends AbstractLong2LongMap implements DataMap<Long>, Hash { - protected Supplier<AbstractDataList<Long>> keySupplier; + /** + * The array of keys supplier. + */ + private transient final Supplier<AbstractDataList<Long>> keySupplier; - protected Supplier<AbstractDataList<Long>> valueSupplier; + /** + * The array of values supplier. + */ + private transient final Supplier<AbstractDataList<Long>> valueSupplier; /** * The array of keys. */ - protected AbstractDataList<Long> key; + private transient AbstractDataList<Long> key; /** * The array of values. */ - protected AbstractDataList<Long> value; + private transient AbstractDataList<Long> value; /** * The mask for wrapping a position counter. */ - protected long mask; + private transient long mask; /** * Whether this map contains the key zero. */ - protected boolean containsNullKey; + private transient boolean containsNullKey; /** * The current table size. */ - protected long n; + private transient long n; /** * Threshold after which we rehash. It must be the table size times {@link #f}. */ - protected long maxFill; + private transient long maxFill; /** * We never resize below this threshold, which is the construction-time {#n}. */ - protected final long minN; + private transient final long minN; /** * Number of entries in the set (including the key zero, if present). */ - protected AtomicLong size = new AtomicLong(); + private transient AtomicLong size = new AtomicLong(); /** * The acceptable load factor. */ - protected final float f; + private transient final float f; /** * Cached set of entries. */ - protected FastEntrySet entries; + private transient FastEntrySet entries; /** * Cached set of keys. */ - protected LongSet keys; + private transient LongSet keys; /** * Cached collection of values. */ - protected LongCollection values; + private transient LongCollection values; /** * Creates a new hash map. @@ -267,7 +273,7 @@ public class Long2LongOpenHashDataMap extends AbstractLong2LongMap * * @param pos a starting position. */ - protected final void shiftKeys(long pos) { + private final void shiftKeys(long pos) { // Shift entries with the same hash. long last, slot; long curr; @@ -1530,7 +1536,7 @@ public class Long2LongOpenHashDataMap extends AbstractLong2LongMap * * @param newN the new size */ - protected void rehash(final long newN) { + private void rehash(final long newN) { final long mask = newN - 1; // Note that this is used by the hashing macro final AbstractDataList<Long> newKey = keySupplier.get(); final AbstractDataList<Long> newValue = valueSupplier.get(); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongPackedOpenHashDataMap.java b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongPackedOpenHashDataMap.java index 2b655863..679f1a0f 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongPackedOpenHashDataMap.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2LongPackedOpenHashDataMap.java @@ -35,52 +35,55 @@ import org.apache.baremaps.database.type.PairDataType.Pair; public class Long2LongPackedOpenHashDataMap extends AbstractLong2LongMap implements DataMap<Long>, Hash { - private final Supplier<DataMap<Pair<Long, Long>>> indexSupplier; + /** + * The index supplier. + */ + private transient final Supplier<DataMap<Pair<Long, Long>>> indexSupplier; /** * The hash index. */ - protected DataMap<Pair<Long, Long>> index; + private transient DataMap<Pair<Long, Long>> index; /** * The mask for wrapping a position counter. */ - protected long mask; + private transient long mask; /** * Whether this map contains the key zero. */ - protected boolean containsNullKey; + private transient boolean containsNullKey; /** * The current table size. */ - protected long n; + private transient long n; /** * Threshold after which we rehash. It must be the table size times {@link #f}. */ - protected long maxFill; + private transient long maxFill; /** * We never resize below this threshold, which is the construction-time {#n}. */ - protected final long minN; + private transient final long minN; /** * Number of entries in the set (including the key zero, if present). */ - protected AtomicLong size = new AtomicLong(); + private transient AtomicLong size = new AtomicLong(); /** * The acceptable load factor. */ - protected final float f; + private transient final float f; /** * Cached set of entries. */ - protected FastEntrySet entries; + private transient FastEntrySet entries; /** * Cached set of keys. */ - protected LongSet keys; + private transient LongSet keys; /** * Cached collection of values. */ - protected LongCollection values; + private transient LongCollection values; /** * Creates a new hash map. @@ -254,7 +257,7 @@ public class Long2LongPackedOpenHashDataMap extends AbstractLong2LongMap * * @param pos a starting position. */ - protected final void shiftKeys(long pos) { + private final void shiftKeys(long pos) { // Shift entries with the same hash. long last, slot; long curr; @@ -1533,7 +1536,7 @@ public class Long2LongPackedOpenHashDataMap extends AbstractLong2LongMap * * @param newN the new size */ - protected void rehash(final long newN) { + private void rehash(final long newN) { final long mask = newN - 1; // Note that this is used by the hashing macro final DataMap<Pair<Long, Long>> newIndex = indexSupplier.get(); long i = n, pos; diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2ObjectOpenHashDataMap.java b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2ObjectOpenHashDataMap.java index 9330f18e..48426625 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2ObjectOpenHashDataMap.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/database/collection/Long2ObjectOpenHashDataMap.java @@ -37,58 +37,64 @@ import java.util.function.Supplier; public class Long2ObjectOpenHashDataMap<V> extends AbstractLong2ObjectMap<V> implements DataMap<V>, Hash { - private final Supplier<DataMap<Long>> keySupplier; + /** + * The array of keys supplier. + */ + private transient final Supplier<DataMap<Long>> keySupplier; - private final Supplier<DataMap<V>> valueSupplier; + /** + * The array of values supplier. + */ + private transient final Supplier<DataMap<V>> valueSupplier; /** * The array of keys. */ - protected DataMap<Long> key; + private transient DataMap<Long> key; /** * The array of values. */ - protected DataMap<V> value; + private transient DataMap<V> value; /** * The mask for wrapping a position counter. */ - protected long mask; + private transient long mask; /** * Whether this map contains the key zero. */ - protected boolean containsNullKey; + private transient boolean containsNullKey; /** * The current table size. */ - protected long n; + private transient long n; /** * Threshold after which we rehash. It must be the table size times {@link #f}. */ - protected long maxFill; + private transient long maxFill; /** * We never resize below this threshold, which is the construction-time {#n}. */ - protected final long minN; + private transient final long minN; /** * Number of entries in the set (including the key zero, if present). */ - protected AtomicLong size = new AtomicLong();; + private transient AtomicLong size = new AtomicLong();; /** * The acceptable load factor. */ - protected final float f; + private transient final float f; /** * Cached set of entries. */ - protected FastEntrySet<V> entries; + private transient FastEntrySet<V> entries; /** * Cached set of keys. */ - protected LongSet keys; + private transient LongSet keys; /** * Cached collection of values. */ - protected ObjectCollection<V> values; + private transient ObjectCollection<V> values; /** * Creates a new hash map. @@ -226,7 +232,7 @@ public class Long2ObjectOpenHashDataMap<V> extends AbstractLong2ObjectMap<V> * * @param pos a starting position. */ - protected final void shiftKeys(long pos) { + private void shiftKeys(long pos) { // Shift entries with the same hash. long last, slot; long curr; @@ -1445,7 +1451,7 @@ public class Long2ObjectOpenHashDataMap<V> extends AbstractLong2ObjectMap<V> * * @param newN the new size */ - protected void rehash(final long newN) { + private void rehash(final long newN) { final long mask = newN - 1; // Note that this is used by the hashing macro final DataMap<Long> newKey = keySupplier.get(); final DataMap<V> newValue = valueSupplier.get();
