apply comments

Signed-off-by: birdstorm <samuelwyf@hotmail.com>
This commit is contained in:
birdstorm 2018-12-19 21:19:43 +08:00
parent 6aea6bbf2b
commit f964343f13
2 changed files with 21 additions and 26 deletions

View File

@ -89,20 +89,21 @@ public class RawKVClient implements AutoCloseable {
}
/**
* Put a list of raw key-value pair to TiKV
* Put a set of raw key-value pair to TiKV
*
* @param keys keys
* @param values values
* @param kvPairs kvPairs
*/
public void batchPut(List<ByteString> keys, List<ByteString> values) {
batchPut(ConcreteBackOffer.newRawKVBackOff(), keys, values);
public void batchPut(Map<ByteString, ByteString> kvPairs) {
batchPut(ConcreteBackOffer.newRawKVBackOff(), kvPairs);
}
private void batchPut(BackOffer backOffer, List<ByteString> keys, List<ByteString> values) {
assert keys.size() == values.size();
Map<ByteString, ByteString> keysToValues = mapKeysToValues(keys, values);
Map<Long, List<ByteString>> groupKeys = groupKeysByRegion(keys);
keys.clear();
batchPut(backOffer, keysToValues);
}
private void batchPut(BackOffer backOffer, Map<ByteString, ByteString> kvPairs) {
Map<Long, List<ByteString>> groupKeys = groupKeysByRegion(kvPairs.keySet());
List<Batch> batches = new ArrayList<>();
for (Map.Entry<Long, List<ByteString>> entry : groupKeys.entrySet()) {
@ -110,7 +111,7 @@ public class RawKVClient implements AutoCloseable {
batches,
entry.getKey(),
entry.getValue(),
entry.getValue().stream().map(keysToValues::get).collect(Collectors.toList()),
entry.getValue().stream().map(kvPairs::get).collect(Collectors.toList()),
RAW_BATCH_PUT_SIZE);
}
sendBatchPut(backOffer, batches);
@ -238,7 +239,7 @@ public class RawKVClient implements AutoCloseable {
* @param keys keys
* @return a mapping of keys and their regionId
*/
private Map<Long, List<ByteString>> groupKeysByRegion(List<ByteString> keys) {
private Map<Long, List<ByteString>> groupKeysByRegion(Set<ByteString> keys) {
Map<Long, List<ByteString>> groups = new HashMap<>();
TiRegion lastRegion = null;
for (ByteString key : keys) {

View File

@ -1,6 +1,5 @@
package org.tikv.raw;
import static org.tikv.raw.RawKVClient.mapKeysToValues;
import com.google.protobuf.ByteString;
import java.util.*;
@ -259,15 +258,13 @@ public class RawKVClientTest {
int i = cnt;
completionService.submit(
() -> {
List<ByteString> keyList = new ArrayList<>();
List<ByteString> valueList = new ArrayList<>();
Map<ByteString, ByteString> kvPairs = new HashMap<>();
for (int j = 0; j < base; j++) {
int num = i * base + j;
ByteString key = orderedKeys.get(num), value = values.get(num);
keyList.add(key);
valueList.add(value);
kvPairs.put(key, value);
}
client.batchPut(keyList, valueList);
client.batchPut(kvPairs);
return null;
});
}
@ -282,15 +279,13 @@ public class RawKVClientTest {
+ " put="
+ rawKeys().size());
} else {
List<ByteString> keyList = new ArrayList<>();
List<ByteString> valueList = new ArrayList<>();
Map<ByteString, ByteString> kvPairs = new HashMap<>();
for (int i = 0; i < putCases; i++) {
ByteString key = randomKeys.get(i), value = values.get(r.nextInt(KEY_POOL_SIZE));
data.put(key, value);
keyList.add(key);
valueList.add(value);
kvPairs.put(key, value);
}
checkBatchPut(keyList, valueList);
checkBatchPut(kvPairs);
}
}
@ -402,11 +397,10 @@ public class RawKVClientTest {
assert client.get(key).equals(value);
}
private void checkBatchPut(List<ByteString> keyList, List<ByteString> valueList) {
client.batchPut(keyList, valueList);
Map<ByteString, ByteString> keysToValues = mapKeysToValues(keyList, valueList);
for (ByteString key : keyList) {
assert client.get(key).equals(keysToValues.get(key));
private void checkBatchPut(Map<ByteString, ByteString> kvPairs) {
client.batchPut(kvPairs);
for (Map.Entry<ByteString, ByteString> kvPair : kvPairs.entrySet()) {
assert client.get(kvPair.getKey()).equals(kvPair.getValue());
}
}