This commit is contained in:
Andrea Cavalli 2022-06-01 17:36:21 +02:00
parent 6dfc10859f
commit a1a509a6cf
3 changed files with 35 additions and 2 deletions

View File

@ -23,6 +23,10 @@ interfacesData:
blockSize: -int
persistentCacheId: -String
writeBufferSize: -long
blobFiles: boolean
minBlobSize: -long
blobFileSize: -long
blobCompressionType: -Compression
# versions must have only numbers, lowercase letters, dots, dashes. Maximum: 99.999.9999
versions:
0.0.0:
@ -268,6 +272,10 @@ versions:
blockSize: -int
persistentCacheId: -String
writeBufferSize: -long
blobFiles: boolean
minBlobSize: -long
blobFileSize: -long
blobCompressionType: -Compression
# Remember to update ColumnOptions common getters
NamedColumnOptions:
data:
@ -280,6 +288,10 @@ versions:
blockSize: -int
persistentCacheId: -String
writeBufferSize: -long
blobFiles: boolean
minBlobSize: -long
blobFileSize: -long
blobCompressionType: -Compression
BloomFilter:
data:
bitsPerKey: int

View File

@ -10,6 +10,7 @@ import it.cavallium.dbengine.rpc.current.data.DefaultColumnOptions;
import it.cavallium.dbengine.rpc.current.data.DefaultColumnOptionsBuilder;
import it.cavallium.dbengine.rpc.current.data.NamedColumnOptions;
import it.cavallium.dbengine.rpc.current.data.NamedColumnOptionsBuilder;
import it.cavallium.dbengine.rpc.current.data.nullables.NullableCompression;
import it.cavallium.dbengine.rpc.current.data.nullables.NullableFilter;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
@ -27,7 +28,11 @@ public class DefaultDatabaseOptions {
NullableFilter.empty(),
Nullableint.empty(),
NullableString.empty(),
Nullablelong.empty()
Nullablelong.empty(),
false,
Nullablelong.empty(),
Nullablelong.empty(),
NullableCompression.empty()
);
public static NamedColumnOptions DEFAULT_NAMED_COLUMN_OPTIONS = new NamedColumnOptions(
@ -39,7 +44,11 @@ public class DefaultDatabaseOptions {
NullableFilter.empty(),
Nullableint.empty(),
NullableString.empty(),
Nullablelong.empty()
Nullablelong.empty(),
false,
Nullablelong.empty(),
Nullablelong.empty(),
NullableCompression.empty()
);
public static DatabaseOptions DEFAULT_DATABASE_OPTIONS = new DatabaseOptions(List.of(),

View File

@ -215,6 +215,18 @@ public class LLLocalKeyValueDatabase implements LLKeyValueDatabase {
if (isDisableAutoCompactions()) {
columnFamilyOptions.setDisableAutoCompactions(true);
}
columnFamilyOptions.setEnableBlobFiles(columnOptions.blobFiles());
if (columnOptions.blobFileSize().isPresent()) {
columnFamilyOptions.setBlobFileSize(columnOptions.blobFileSize().get());
}
if (columnOptions.minBlobSize().isPresent()) {
columnFamilyOptions.setMinBlobSize(columnOptions.minBlobSize().get());
}
if (columnOptions.blobCompressionType().isPresent()) {
columnFamilyOptions.setCompressionType(columnOptions.blobCompressionType().get().getType());
}
columnFamilyOptions.setBlobCompactionReadaheadSize(4 * SizeUnit.MB);
columnFamilyOptions.setEnableBlobGarbageCollection(true);
// This option is not supported with multiple db paths
// https://www.arangodb.com/docs/stable/programs-arangod-rocksdb.html