Skip to content

Commit

Permalink
chore: rename package (#364)
Browse files Browse the repository at this point in the history
  • Loading branch information
caojiajun committed Jan 9, 2025
1 parent 0cb6328 commit a782167
Show file tree
Hide file tree
Showing 68 changed files with 252 additions and 242 deletions.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage;

import com.netease.nim.camellia.core.model.Resource;
import com.netease.nim.camellia.redis.proxy.command.Command;
Expand All @@ -12,7 +12,7 @@
/**
* Created by caojiajun on 2025/1/3
*/
public class EmbeddedClient implements IUpstreamClient {
public class LocalStorageClient implements IUpstreamClient {

@Override
public void sendCommand(int db, List<Command> commands, List<CompletableFuture<Reply>> futureList) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

/**
* Created by caojiajun on 2025/1/8
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

import com.netease.nim.camellia.redis.proxy.conf.ProxyDynamicConf;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

import com.netease.nim.camellia.redis.proxy.upstream.kv.cache.EstimateSizeValue;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

import com.netease.nim.camellia.redis.proxy.upstream.kv.cache.EstimateSizeValue;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
import com.netease.nim.camellia.redis.proxy.util.Utils;
Expand Down Expand Up @@ -30,22 +30,23 @@ public class LRUCache<K, V> {
private final ConcurrentLinkedHashMap<K, V> cache;
private long capacity;

private int cacheSize;
private int maxKeyCount;

private int loop = 0;

public LRUCache(String name, String configKey, String defaultConfig, int estimateSizePerKV, SizeCalculator<K> keySizeCalculator, SizeCalculator<V> valueSizeCalculator) {
public LRUCache(String name, String configKey, String defaultConfig, int estimateSizePerKV,
SizeCalculator<K> keySizeCalculator, SizeCalculator<V> valueSizeCalculator) {
this.name = name;
this.configKey = configKey;
this.config = defaultConfig;
this.keySizeCalculator = keySizeCalculator;
this.valueSizeCalculator = valueSizeCalculator;
this.capacity = CacheCapacityConfigParser.parse(configKey, defaultConfig);
this.config = CacheCapacityConfigParser.toString(capacity);
this.cacheSize = (int) (capacity / estimateSizePerKV);
this.maxKeyCount = (int) (capacity / estimateSizePerKV);
this.cache = new ConcurrentLinkedHashMap.Builder<K, V>()
.initialCapacity(cacheSize)
.maximumWeightedCapacity(cacheSize)
.initialCapacity(maxKeyCount)
.maximumWeightedCapacity(maxKeyCount)
.build();
scheduler.scheduleAtFixedRate(this::schedule, 10, 10, TimeUnit.SECONDS);
}
Expand All @@ -63,31 +64,35 @@ public V get(K key) {
}

private void schedule() {
this.capacity = CacheCapacityConfigParser.parse(configKey, config);
this.config = CacheCapacityConfigParser.toString(capacity);
long size = 0;
long count = cache.size();
for (Map.Entry<K, V> entry : cache.entrySet()) {
size += keySizeCalculator.size(entry.getKey());
size += valueSizeCalculator.size(entry.getValue());
}
size += count * 8;
if (size > capacity) {
double ratio = size * 1.0 / capacity;
cacheSize = (int) (count / ratio);
this.cache.setCapacity(cacheSize);
} else {
if (count >= cacheSize) {
double ratio = size * 1.0 / capacity;
cacheSize = (int) (count / ratio);
this.cache.setCapacity(cacheSize);
try {
this.capacity = CacheCapacityConfigParser.parse(configKey, config);
this.config = CacheCapacityConfigParser.toString(capacity);
long estimateSize = 0;
long keyCount = cache.size();
for (Map.Entry<K, V> entry : cache.entrySet()) {
estimateSize += keySizeCalculator.size(entry.getKey());
estimateSize += valueSizeCalculator.size(entry.getValue());
}
}
loop ++;
if (loop == 6) {//print log every 60s
logger.info("lru-cache, name = {}, target.capacity = {}, current.estimate.size = {}, current.key.count = {}, current.key.max.count = {}",
name, config, Utils.humanReadableByteCountBin(size), count, cacheSize);
loop = 0;
estimateSize += keyCount * 8;
if (estimateSize > capacity) {
double ratio = estimateSize * 1.0 / capacity;
maxKeyCount = (int) (keyCount / ratio);
this.cache.setCapacity(maxKeyCount);
} else {
if (keyCount >= maxKeyCount) {
double ratio = estimateSize * 1.0 / capacity;
maxKeyCount = (int) (keyCount / ratio);
this.cache.setCapacity(maxKeyCount);
}
}
loop ++;
if (loop == 6) {//print log every 60s
logger.info("lru-cache, name = {}, target.capacity = {}, current.estimate.size = {}, current.key.count = {}, current.key.max.count = {}",
name, config, Utils.humanReadableByteCountBin(estimateSize), keyCount, maxKeyCount);
loop = 0;
}
} catch (Exception e) {
logger.error("lru cache schedule error, name = {}", name, e);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

/**
* Created by caojiajun on 2025/1/8
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache;

/**
* Created by caojiajun on 2025/1/8
*/
public class StringSizeCalculator implements SizeCalculator<String> {

public static final BytesSizeCalculator INSTANCE = new BytesSizeCalculator();

@Override
public long size(String element) {
return element.length();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.codec;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.codec;

import com.netease.nim.camellia.codec.Pack;
import com.netease.nim.camellia.codec.Unpack;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress.CompressType;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress.CompressUtils;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress.ICompressor;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.constants.EmbeddedStorageConstants;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress.CompressType;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress.CompressUtils;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress.ICompressor;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.constants.EmbeddedStorageConstants;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.kv.utils.BytesUtils;
import com.netease.nim.camellia.redis.proxy.util.RedisClusterCRC16Utils;

import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;

import static com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.constants.EmbeddedStorageConstants.*;
import static com.netease.nim.camellia.redis.proxy.upstream.local.storage.constants.EmbeddedStorageConstants.*;

/**
* Created by caojiajun on 2025/1/3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.codec;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.codec;

import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress.CompressType;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress.CompressUtils;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.value.block.*;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress.CompressType;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress.CompressUtils;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.value.block.*;
import com.netease.nim.camellia.redis.proxy.util.RedisClusterCRC16Utils;
import com.netease.nim.camellia.tools.utils.Pair;

Expand All @@ -12,7 +12,7 @@
import java.util.ArrayList;
import java.util.List;

import static com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.constants.EmbeddedStorageConstants.block_header_len;
import static com.netease.nim.camellia.redis.proxy.upstream.local.storage.constants.EmbeddedStorageConstants.block_header_len;

/**
* Created by caojiajun on 2025/1/6
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.command;

import com.netease.nim.camellia.redis.proxy.command.Command;
import com.netease.nim.camellia.redis.proxy.enums.RedisCommand;
import com.netease.nim.camellia.redis.proxy.reply.Reply;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums.FlushResult;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.key.KeyReadWrite;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.value.string.StringReadWrite;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.wal.WalGroup;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums.FlushResult;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.key.KeyReadWrite;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.value.string.StringReadWrite;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.wal.WalGroup;

import java.io.IOException;
import java.util.concurrent.CompletableFuture;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.command;


import com.netease.nim.camellia.redis.proxy.conf.ProxyDynamicConf;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command.string;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.command.string;

import com.netease.nim.camellia.redis.proxy.command.Command;
import com.netease.nim.camellia.redis.proxy.enums.RedisCommand;
import com.netease.nim.camellia.redis.proxy.reply.BulkReply;
import com.netease.nim.camellia.redis.proxy.reply.ErrorReply;
import com.netease.nim.camellia.redis.proxy.reply.Reply;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command.CommandOnEmbeddedStorage;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums.DataType;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.command.CommandOnEmbeddedStorage;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums.DataType;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.key.KeyInfo;

/**
* GET key
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command.string;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.command.string;

import com.netease.nim.camellia.redis.proxy.command.Command;
import com.netease.nim.camellia.redis.proxy.enums.RedisCommand;
import com.netease.nim.camellia.redis.proxy.reply.BulkReply;
import com.netease.nim.camellia.redis.proxy.reply.ErrorReply;
import com.netease.nim.camellia.redis.proxy.reply.Reply;
import com.netease.nim.camellia.redis.proxy.reply.StatusReply;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.command.CommandOnEmbeddedStorage;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums.DataType;
import com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.cache.CacheKey;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.command.CommandOnEmbeddedStorage;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums.DataType;
import com.netease.nim.camellia.redis.proxy.upstream.local.storage.key.KeyInfo;
import com.netease.nim.camellia.redis.proxy.upstream.kv.command.string.SetCommander;
import com.netease.nim.camellia.redis.proxy.util.ErrorLogCollector;
import com.netease.nim.camellia.redis.proxy.util.Utils;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress;

/**
* Created by caojiajun on 2025/1/2
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress;

/**
* Created by caojiajun on 2025/1/3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress;

/**
* Created by caojiajun on 2025/1/3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress;

/**
* Created by caojiajun on 2025/1/3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.compress;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.compress;


import com.github.luben.zstd.Zstd;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.constants;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.constants;

/**
* Created by caojiajun on 2025/1/2
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums;


/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums;

/**
* Created by caojiajun on 2025/1/3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.enums;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.enums;

/**
* Created by caojiajun on 2025/1/6
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.file;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.file;

import java.nio.ByteBuffer;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netease.nim.camellia.redis.proxy.upstream.embedded.storage.file;
package com.netease.nim.camellia.redis.proxy.upstream.local.storage.file;

/**
* Created by caojiajun on 2025/1/2
Expand Down
Loading

0 comments on commit a782167

Please sign in to comment.