Skip to content

Commit

Permalink
Simplify naming around native schema number index
Browse files Browse the repository at this point in the history
  • Loading branch information
burqen authored and tinwelint committed Jun 26, 2017
1 parent 5726570 commit 3c5f0f5
Show file tree
Hide file tree
Showing 19 changed files with 101 additions and 105 deletions.
Expand Up @@ -30,7 +30,7 @@
*
* @param <VALUE> type of values being merged.
*/
class ConflictDetectingValueMerger<VALUE extends SchemaNumberValue> implements ValueMerger<VALUE>
class ConflictDetectingValueMerger<VALUE extends NumberValue> implements ValueMerger<VALUE>
{
private boolean conflict;
private long existingNodeId;
Expand Down
Expand Up @@ -41,7 +41,7 @@ class FailureHeaderWriter implements Consumer<PageCursor>
public void accept( PageCursor cursor )
{
byte[] bytesToWrite = failureBytes;
cursor.putByte( NativeSchemaIndexPopulator.BYTE_FAILED );
cursor.putByte( NativeSchemaNumberIndexPopulator.BYTE_FAILED );
int availableSpace = cursor.getCurrentPageSize() - cursor.getOffset();
if ( bytesToWrite.length + 2 > availableSpace )
{
Expand Down
Expand Up @@ -36,7 +36,7 @@
* @param <KEY> type of keys in tree.
* @param <VALUE> type of values in tree.
*/
class FullScanNonUniqueIndexSampler<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue>
class FullScanNonUniqueIndexSampler<KEY extends NumberKey, VALUE extends NumberValue>
extends NonUniqueIndexSampler.Adapter
{
private final GBPTree<KEY,VALUE> gbpTree;
Expand Down
Expand Up @@ -32,16 +32,16 @@
import org.neo4j.storageengine.api.schema.IndexSample;

/**
* {@link NativeSchemaIndexPopulator} which can accept duplicate values (for different entity ids).
* {@link NativeSchemaNumberIndexPopulator} which can accept duplicate values (for different entity ids).
*/
class NonUniqueNativeSchemaIndexPopulator<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue>
extends NativeSchemaIndexPopulator<KEY,VALUE>
class NativeNonUniqueSchemaNumberIndexPopulator<KEY extends NumberKey, VALUE extends NumberValue>
extends NativeSchemaNumberIndexPopulator<KEY,VALUE>
{
private final IndexSamplingConfig samplingConfig;
private boolean updateSampling;
private NonUniqueIndexSampler sampler;

NonUniqueNativeSchemaIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
NativeNonUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexSamplingConfig samplingConfig )
{
super( pageCache, storeFile, layout, recoveryCleanupWorkCollector );
Expand Down
Expand Up @@ -47,10 +47,10 @@
/**
* {@link IndexPopulator} backed by a {@link GBPTree}.
*
* @param <KEY> type of {@link SchemaNumberKey}.
* @param <VALUE> type of {@link SchemaNumberValue}.
* @param <KEY> type of {@link NumberKey}.
* @param <VALUE> type of {@link NumberValue}.
*/
public abstract class NativeSchemaIndexPopulator<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue>
public abstract class NativeSchemaNumberIndexPopulator<KEY extends NumberKey, VALUE extends NumberValue>
implements IndexPopulator
{
static final byte BYTE_ONLINE = 1;
Expand All @@ -70,7 +70,7 @@ public abstract class NativeSchemaIndexPopulator<KEY extends SchemaNumberKey, VA

GBPTree<KEY,VALUE> tree;

NativeSchemaIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
NativeSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
this.pageCache = pageCache;
Expand Down
Expand Up @@ -29,14 +29,14 @@
import org.neo4j.storageengine.api.schema.IndexSample;

/**
* {@link NativeSchemaIndexPopulator} which can enforces unique values.
* {@link NativeSchemaNumberIndexPopulator} which can enforces unique values.
*/
class UniqueNativeSchemaIndexPopulator<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue>
extends NativeSchemaIndexPopulator<KEY,VALUE>
class NativeUniqueSchemaNumberIndexPopulator<KEY extends NumberKey, VALUE extends NumberValue>
extends NativeSchemaNumberIndexPopulator<KEY,VALUE>
{
private final UniqueIndexSampler sampler;

UniqueNativeSchemaIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
NativeUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
super( pageCache, storeFile, layout, recoveryCleanupWorkCollector );
Expand Down
Expand Up @@ -21,15 +21,13 @@

import org.neo4j.values.Value;

import static org.neo4j.kernel.impl.index.schema.SchemaNumberValueConversion.assertValidSingleNumber;

/**
* Includes comparison value and entity id (to be able to handle non-unique values).
* Comparison value is basically any number as a double, a conversion which is lossy by nature,
* especially for higher decimal values. Actual value is stored in {@link SchemaNumberValue}
* especially for higher decimal values. Actual value is stored in {@link NumberValue}
* for ability to filter accidental coersions directly internally.
*/
class NonUniqueSchemaNumberKey implements SchemaNumberKey
class NonUniqueNumberKey implements NumberKey
{
static final int SIZE =
Long.SIZE + /* compare value (double represented by long) */
Expand All @@ -41,7 +39,7 @@ class NonUniqueSchemaNumberKey implements SchemaNumberKey
@Override
public void from( long entityId, Value[] values )
{
this.value = assertValidSingleNumber( values ).doubleValue();
this.value = NumberValueConversion.assertValidSingleNumber( values ).doubleValue();
this.entityId = entityId;
}

Expand Down
Expand Up @@ -25,66 +25,66 @@
/**
* {@link Layout} for numbers where numbers doesn't need to be unique.
*/
public class NonUniqueSchemaNumberIndexLayout implements Layout<NonUniqueSchemaNumberKey,NonUniqueSchemaNumberValue>
public class NonUniqueNumberLayout implements Layout<NonUniqueNumberKey,NonUniqueNumberValue>
{
private static final String IDENTIFIER_NAME = "NUNI";

@Override
public NonUniqueSchemaNumberKey newKey()
public NonUniqueNumberKey newKey()
{
return new NonUniqueSchemaNumberKey();
return new NonUniqueNumberKey();
}

@Override
public NonUniqueSchemaNumberKey copyKey( NonUniqueSchemaNumberKey key,
NonUniqueSchemaNumberKey into )
public NonUniqueNumberKey copyKey( NonUniqueNumberKey key,
NonUniqueNumberKey into )
{
into.value = key.value;
into.entityId = key.entityId;
return into;
}

@Override
public NonUniqueSchemaNumberValue newValue()
public NonUniqueNumberValue newValue()
{
return new NonUniqueSchemaNumberValue();
return new NonUniqueNumberValue();
}

@Override
public int keySize()
{
return NonUniqueSchemaNumberKey.SIZE;
return NonUniqueNumberKey.SIZE;
}

@Override
public int valueSize()
{
return NonUniqueSchemaNumberValue.SIZE;
return NonUniqueNumberValue.SIZE;
}

@Override
public void writeKey( PageCursor cursor, NonUniqueSchemaNumberKey key )
public void writeKey( PageCursor cursor, NonUniqueNumberKey key )
{
cursor.putLong( Double.doubleToRawLongBits( key.value ) );
cursor.putLong( key.entityId );
}

@Override
public void writeValue( PageCursor cursor, NonUniqueSchemaNumberValue key )
public void writeValue( PageCursor cursor, NonUniqueNumberValue key )
{
cursor.putByte( key.type );
cursor.putLong( key.rawValueBits );
}

@Override
public void readKey( PageCursor cursor, NonUniqueSchemaNumberKey into )
public void readKey( PageCursor cursor, NonUniqueNumberKey into )
{
into.value = Double.longBitsToDouble( cursor.getLong() );
into.entityId = cursor.getLong();
}

@Override
public void readValue( PageCursor cursor, NonUniqueSchemaNumberValue into )
public void readValue( PageCursor cursor, NonUniqueNumberValue into )
{
into.type = cursor.getByte();
into.rawValueBits = cursor.getLong();
Expand All @@ -93,7 +93,7 @@ public void readValue( PageCursor cursor, NonUniqueSchemaNumberValue into )
@Override
public long identifier()
{
return Layout.namedIdentifier( IDENTIFIER_NAME, NonUniqueSchemaNumberValue.SIZE );
return Layout.namedIdentifier( IDENTIFIER_NAME, NonUniqueNumberValue.SIZE );
}

@Override
Expand All @@ -109,7 +109,7 @@ public int minorVersion()
}

@Override
public int compare( NonUniqueSchemaNumberKey o1, NonUniqueSchemaNumberKey o2 )
public int compare( NonUniqueNumberKey o1, NonUniqueNumberKey o2 )
{
int compare = Double.compare( o1.value, o2.value );
return compare != 0 ? compare : Long.compare( o1.entityId, o2.entityId );
Expand Down
Expand Up @@ -22,14 +22,13 @@
import org.neo4j.values.Value;

import static java.lang.String.format;

import static org.neo4j.kernel.impl.index.schema.SchemaNumberValueConversion.assertValidSingleNumber;
import static org.neo4j.kernel.impl.index.schema.SchemaNumberValueConversion.toValue;
import static org.neo4j.kernel.impl.index.schema.NumberValueConversion.assertValidSingleNumber;
import static org.neo4j.kernel.impl.index.schema.NumberValueConversion.toValue;

/**
* Relies on its key counterpart to supply entity id, since the key needs entity id anyway.
*/
class NonUniqueSchemaNumberValue extends SchemaNumberValue
class NonUniqueNumberValue extends NumberValue
{
static final int SIZE =
Byte.SIZE + /* type */
Expand Down
Expand Up @@ -24,7 +24,7 @@
/**
* Key in a native schema index for numbers.
*/
interface SchemaNumberKey
interface NumberKey
{
void from( long entityId, Value[] values );

Expand Down
Expand Up @@ -26,7 +26,7 @@
* Value in a {@link GBPTree} handling numbers suitable for schema indexing.
* Contains actual number for internal filtering after accidental query hits due to double value coersion.
*/
abstract class SchemaNumberValue
abstract class NumberValue
{
static final byte LONG = 0;
static final byte FLOAT = 1;
Expand Down
Expand Up @@ -22,14 +22,14 @@
import org.neo4j.values.Value;
import org.neo4j.values.Values;

import static org.neo4j.kernel.impl.index.schema.SchemaNumberValue.DOUBLE;
import static org.neo4j.kernel.impl.index.schema.SchemaNumberValue.FLOAT;
import static org.neo4j.kernel.impl.index.schema.SchemaNumberValue.LONG;
import static org.neo4j.kernel.impl.index.schema.NumberValue.DOUBLE;
import static org.neo4j.kernel.impl.index.schema.NumberValue.FLOAT;
import static org.neo4j.kernel.impl.index.schema.NumberValue.LONG;

/**
* Utilities for converting number values to and from different representations.
*/
class SchemaNumberValueConversion
class NumberValueConversion
{
static Number assertValidSingleNumber( Value[] values )
{
Expand Down
Expand Up @@ -21,15 +21,15 @@

import org.neo4j.values.Value;

import static org.neo4j.kernel.impl.index.schema.SchemaNumberValueConversion.assertValidSingleNumber;
import static org.neo4j.kernel.impl.index.schema.NumberValueConversion.assertValidSingleNumber;

/**
* Contains only comparison value, which means that all values needs to be unique.
* Comparison value is basically any number as a double, a conversion which is lossy by nature,
* especially for higher decimal values. Actual value is stored in {@link SchemaNumberValue}
* especially for higher decimal values. Actual value is stored in {@link NumberValue}
* for ability to filter accidental coersions directly internally.
*/
class UniqueSchemaNumberKey implements SchemaNumberKey
class UniqueNumberKey implements NumberKey
{
static final int SIZE = Long.SIZE;

Expand Down
Expand Up @@ -25,64 +25,64 @@
/**
* {@link Layout} for numbers where numbers need to be unique.
*/
class UniqueSchemaNumberIndexLayout implements Layout<UniqueSchemaNumberKey,UniqueSchemaNumberValue>
class UniqueNumberLayout implements Layout<UniqueNumberKey,UniqueNumberValue>
{
private static final String IDENTIFIER_NAME = "UNI";

@Override
public UniqueSchemaNumberKey newKey()
public UniqueNumberKey newKey()
{
return new UniqueSchemaNumberKey();
return new UniqueNumberKey();
}

@Override
public UniqueSchemaNumberKey copyKey( UniqueSchemaNumberKey key, UniqueSchemaNumberKey into )
public UniqueNumberKey copyKey( UniqueNumberKey key, UniqueNumberKey into )
{
into.value = key.value;
into.isHighest = key.isHighest;
return into;
}

@Override
public UniqueSchemaNumberValue newValue()
public UniqueNumberValue newValue()
{
return new UniqueSchemaNumberValue();
return new UniqueNumberValue();
}

@Override
public int keySize()
{
return UniqueSchemaNumberKey.SIZE;
return UniqueNumberKey.SIZE;
}

@Override
public int valueSize()
{
return UniqueSchemaNumberValue.SIZE;
return UniqueNumberValue.SIZE;
}

@Override
public void writeKey( PageCursor cursor, UniqueSchemaNumberKey key )
public void writeKey( PageCursor cursor, UniqueNumberKey key )
{
cursor.putLong( Double.doubleToRawLongBits( key.value ) );
}

@Override
public void readKey( PageCursor cursor, UniqueSchemaNumberKey into )
public void readKey( PageCursor cursor, UniqueNumberKey into )
{
into.value = Double.longBitsToDouble( cursor.getLong() );
}

@Override
public void writeValue( PageCursor cursor, UniqueSchemaNumberValue value )
public void writeValue( PageCursor cursor, UniqueNumberValue value )
{
cursor.putByte( value.type );
cursor.putLong( value.rawValueBits );
cursor.putLong( value.entityId );
}

@Override
public void readValue( PageCursor cursor, UniqueSchemaNumberValue into )
public void readValue( PageCursor cursor, UniqueNumberValue into )
{
into.type = cursor.getByte();
into.rawValueBits = cursor.getLong();
Expand All @@ -92,7 +92,7 @@ public void readValue( PageCursor cursor, UniqueSchemaNumberValue into )
@Override
public long identifier()
{
return Layout.namedIdentifier( IDENTIFIER_NAME, UniqueSchemaNumberValue.SIZE );
return Layout.namedIdentifier( IDENTIFIER_NAME, UniqueNumberValue.SIZE );
}

@Override
Expand All @@ -108,7 +108,7 @@ public int minorVersion()
}

@Override
public int compare( UniqueSchemaNumberKey o1, UniqueSchemaNumberKey o2 )
public int compare( UniqueNumberKey o1, UniqueNumberKey o2 )
{
int comparison = Double.compare( o1.value, o2.value );
if ( comparison == 0 )
Expand Down

0 comments on commit 3c5f0f5

Please sign in to comment.