Skip to content

Commit b5cde84

Browse files
author
Sourav Maji
committed
addressed comments
1 parent bdb6dd6 commit b5cde84

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

clients/da-vinci-client/src/main/java/com/linkedin/davinci/store/rocksdb/RocksDBServerConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,9 +338,9 @@ public RocksDBServerConfig(VeniceProperties props) {
338338
}
339339

340340
this.rocksDBBlockCacheSizeInBytes =
341-
props.getSizeInBytes(ROCKSDB_BLOCK_CACHE_SIZE_IN_BYTES, 2 * 1024 * 1024 * 1024L); // 2GB
341+
props.getSizeInBytes(ROCKSDB_BLOCK_CACHE_SIZE_IN_BYTES, 16 * 1024 * 1024 * 1024L); // 16GB
342342
this.rocksDBRMDBlockCacheSizeInBytes =
343-
props.getSizeInBytes(ROCKSDB_RMD_BLOCK_CACHE_SIZE_IN_BYTES, 1 * 1024 * 1024 * 1024L); // 1GB
343+
props.getSizeInBytes(ROCKSDB_RMD_BLOCK_CACHE_SIZE_IN_BYTES, 2 * 1024 * 1024 * 1024L); // 2GB
344344

345345
this.rocksDBBlockCacheImplementation = RocksDBBlockCacheImplementations
346346
.valueOf(props.getString(ROCKSDB_BLOCK_CACHE_IMPLEMENTATION, RocksDBBlockCacheImplementations.LRU.toString()));

clients/da-vinci-client/src/main/java/com/linkedin/davinci/store/rocksdb/RocksDBStorageEngineFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.linkedin.davinci.store.rocksdb;
22

33
import static com.linkedin.venice.utils.ByteUtils.generateHumanReadableByteCountString;
4+
import static com.linkedin.venice.utils.Utils.getOSMemorySize;
45
import static org.rocksdb.RateLimiter.DEFAULT_FAIRNESS;
56
import static org.rocksdb.RateLimiter.DEFAULT_MODE;
67
import static org.rocksdb.RateLimiter.DEFAULT_REFILL_PERIOD_MICROS;
@@ -144,7 +145,9 @@ public RocksDBStorageEngineFactory(
144145
rocksDBServerConfig.getRocksDBBlockCacheSizeInBytes() + (rocksDBServerConfig.isUseSeparateRMDCacheEnabled()
145146
? rocksDBServerConfig.getRocksDBRMDBlockCacheSizeInBytes()
146147
: 0);
147-
if (Runtime.getRuntime().maxMemory() * 0.8 < cacheBytesNeeded) {
148+
149+
long systemMemorySize = getOSMemorySize();
150+
if (systemMemorySize > 0 && (systemMemorySize * 0.8 < cacheBytesNeeded)) {
148151
throw new RuntimeException(
149152
"Cannot setup rocksdb instance with block-cache size "
150153
+ generateHumanReadableByteCountString(cacheBytesNeeded));

internal/venice-common/src/main/java/com/linkedin/venice/utils/Utils.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.IOException;
3636
import java.io.InputStream;
3737
import java.lang.management.ManagementFactory;
38+
import java.lang.management.OperatingSystemMXBean;
3839
import java.net.InetAddress;
3940
import java.net.UnknownHostException;
4041
import java.nio.file.Files;
@@ -1141,4 +1142,16 @@ public static long parseDateTimeToEpoch(String dateTime, String dateTimeFormat,
11411142
dateFormat.setTimeZone(TimeZone.getTimeZone(timeZone));
11421143
return dateFormat.parse(dateTime).getTime();
11431144
}
1145+
1146+
public static long getOSMemorySize() {
1147+
OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean();
1148+
1149+
if (osBean instanceof com.sun.management.OperatingSystemMXBean) {
1150+
com.sun.management.OperatingSystemMXBean extendedOsBean = (com.sun.management.OperatingSystemMXBean) osBean;
1151+
return extendedOsBean.getTotalPhysicalMemorySize();
1152+
} else {
1153+
System.out.println("OS Bean not available.");
1154+
}
1155+
return -1;
1156+
}
11441157
}

internal/venice-test-common/src/integrationTest/java/com/linkedin/venice/integration/utils/VeniceServerWrapper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.linkedin.venice.integration.utils;
22

3+
import static com.linkedin.davinci.store.rocksdb.RocksDBServerConfig.ROCKSDB_BLOCK_CACHE_SIZE_IN_BYTES;
34
import static com.linkedin.davinci.store.rocksdb.RocksDBServerConfig.ROCKSDB_OPTIONS_USE_DIRECT_READS;
45
import static com.linkedin.davinci.store.rocksdb.RocksDBServerConfig.ROCKSDB_PLAIN_TABLE_FORMAT_ENABLED;
6+
import static com.linkedin.davinci.store.rocksdb.RocksDBServerConfig.ROCKSDB_RMD_BLOCK_CACHE_SIZE_IN_BYTES;
57
import static com.linkedin.venice.ConfigKeys.ADMIN_PORT;
68
import static com.linkedin.venice.ConfigKeys.CLUSTER_DISCOVERY_D2_SERVICE;
79
import static com.linkedin.venice.ConfigKeys.DATA_BASE_PATH;
@@ -261,6 +263,8 @@ static StatefulServiceProvider<VeniceServerWrapper> generateService(
261263
.put(SERVER_INGESTION_HEARTBEAT_INTERVAL_MS, 5000)
262264
.put(SERVER_LEADER_COMPLETE_STATE_CHECK_IN_FOLLOWER_VALID_INTERVAL_MS, 5000)
263265
.put(SERVER_RESUBSCRIPTION_TRIGGERED_BY_VERSION_INGESTION_CONTEXT_CHANGE_ENABLED, true)
266+
.put(ROCKSDB_BLOCK_CACHE_SIZE_IN_BYTES, 8 * 1024 * 1024 * 1024L)
267+
.put(ROCKSDB_RMD_BLOCK_CACHE_SIZE_IN_BYTES, 1024 * 1024 * 1024L)
264268
.put(SERVER_DELETE_UNASSIGNED_PARTITIONS_ON_STARTUP, serverDeleteUnassignedPartitionsOnStartup);
265269
if (sslToKafka) {
266270
serverPropsBuilder.put(KAFKA_SECURITY_PROTOCOL, PubSubSecurityProtocol.SSL.name());

0 commit comments

Comments
 (0)