Skip to content
Snippets Groups Projects
Commit 01bacdea authored by Kirill Vlasov's avatar Kirill Vlasov
Browse files

[mongodb s3 tarantool] Fixing common-java:DuplicatedBlocks - Source files...

[mongodb s3 tarantool] Fixing common-java:DuplicatedBlocks - Source files should not have any duplicated blocks
parent 946b834f
No related branches found
No related tags found
No related merge requests found
......@@ -16,53 +16,15 @@
*/
package com.yahoo.ycsb.db;
import static org.junit.Assume.assumeNoException;
import java.util.Properties;
import org.junit.After;
import com.yahoo.ycsb.DB;
/**
* AsyncMongoDbClientTest provides runs the basic workload operations.
*/
public class AsyncMongoDbClientTest extends AbstractDBTestCases {
/** The client to use. */
private AsyncMongoDbClient myClient = null;
/**
* Stops the test client.
*/
@After
public void tearDown() {
try {
myClient.cleanup();
} catch (Exception error) {
// Ignore.
} finally {
myClient = null;
}
}
public class AsyncMongoDbClientTest extends MongoDbClientTest {
/**
* {@inheritDoc}
* <p>
* Overridden to return the {@link AsyncMongoDbClient}.
* </p>
*/
@Override
protected DB getDB(Properties props) {
if( myClient == null ) {
myClient = new AsyncMongoDbClient();
myClient.setProperties(props);
try {
myClient.init();
} catch (Exception error) {
assumeNoException(error);
}
}
return myClient;
protected DB instantiateClient() {
return new AsyncMongoDbClient();
}
}
......@@ -30,7 +30,11 @@ import com.yahoo.ycsb.DB;
public class MongoDbClientTest extends AbstractDBTestCases {
/** The client to use. */
private MongoDbClient myClient = null;
private DB myClient = null;
protected DB instantiateClient() {
return new MongoDbClient();
}
/**
* Stops the test client.
......@@ -55,7 +59,7 @@ public class MongoDbClientTest extends AbstractDBTestCases {
@Override
protected DB getDB(Properties props) {
if( myClient == null ) {
myClient = new MongoDbClient();
myClient = instantiateClient();
myClient.setProperties(props);
try {
myClient.init();
......
......@@ -349,22 +349,8 @@ public class S3Client extends DB {
totalSize = sizeArray*fieldCount;
} else {
try {
GetObjectRequest getObjectRequest = null;
GetObjectMetadataRequest getObjectMetadataRequest = null;
if (ssecLocal != null) {
getObjectRequest = new GetObjectRequest(bucket,
key).withSSECustomerKey(ssecLocal);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key).withSSECustomerKey(ssecLocal);
} else {
getObjectRequest = new GetObjectRequest(bucket, key);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key);
}
s3Client.getObject(getObjectRequest);
ObjectMetadata objectMetadata =
s3Client.getObjectMetadata(getObjectMetadataRequest);
int sizeOfFile = (int)objectMetadata.getContentLength();
Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal);
int sizeOfFile = (int)objectAndMetadata.getValue().getContentLength();
fieldCount = sizeOfFile/sizeArray;
totalSize = sizeOfFile;
} catch (Exception e){
......@@ -437,25 +423,10 @@ public class S3Client extends DB {
protected Status readFromStorage(String bucket, String key,
HashMap<String, ByteIterator> result, SSECustomerKey ssecLocal) {
try {
GetObjectRequest getObjectRequest = null;
GetObjectMetadataRequest getObjectMetadataRequest = null;
if (ssecLocal != null) {
getObjectRequest = new GetObjectRequest(bucket,
key).withSSECustomerKey(ssecLocal);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key).withSSECustomerKey(ssecLocal);
} else {
getObjectRequest = new GetObjectRequest(bucket, key);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key);
}
S3Object object =
s3Client.getObject(getObjectRequest);
ObjectMetadata objectMetadata =
s3Client.getObjectMetadata(getObjectMetadataRequest);
InputStream objectData = object.getObjectContent(); //consuming the stream
Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal);
InputStream objectData = objectAndMetadata.getKey().getObjectContent(); //consuming the stream
// writing the stream to bytes and to results
int sizeOfFile = (int)objectMetadata.getContentLength();
int sizeOfFile = (int)objectAndMetadata.getValue().getContentLength();
byte[] inputStreamToByte = new byte[sizeOfFile];
objectData.read(inputStreamToByte, 0, sizeOfFile);
result.put(key, new ByteArrayByteIterator(inputStreamToByte));
......@@ -469,6 +440,25 @@ public class S3Client extends DB {
return Status.OK;
}
private Map.Entry<S3Object, ObjectMetadata> getS3ObjectAndMetadata(String bucket,
String key, SSECustomerKey ssecLocal) {
GetObjectRequest getObjectRequest;
GetObjectMetadataRequest getObjectMetadataRequest;
if (ssecLocal != null) {
getObjectRequest = new GetObjectRequest(bucket,
key).withSSECustomerKey(ssecLocal);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key).withSSECustomerKey(ssecLocal);
} else {
getObjectRequest = new GetObjectRequest(bucket, key);
getObjectMetadataRequest = new GetObjectMetadataRequest(bucket,
key);
}
return new AbstractMap.SimpleEntry<>(s3Client.getObject(getObjectRequest),
s3Client.getObjectMetadata(getObjectMetadataRequest));
}
/**
* Perform an emulation of a database scan operation on a S3 bucket.
*
......
......@@ -84,21 +84,7 @@ public class TarantoolClient extends DB {
@Override
public Status insert(String table, String key, HashMap<String, ByteIterator> values) {
int j = 0;
String[] tuple = new String[1 + 2 * values.size()];
tuple[0] = key;
for (Map.Entry<String, ByteIterator> i: values.entrySet()) {
tuple[j + 1] = i.getKey();
tuple[j + 2] = i.getValue().toString();
j += 2;
}
try {
this.connection.replace(this.spaceNo, tuple);
} catch (TarantoolException exc) {
logger.log(Level.SEVERE,"Can't insert element", exc);
return Status.ERROR;
}
return Status.OK;
return replace(key, values, "Can't insert element");
}
private HashMap<String, ByteIterator> tuple_convert_filter (List<String> input,
......@@ -164,6 +150,13 @@ public class TarantoolClient extends DB {
@Override
public Status update(String table, String key,
HashMap<String, ByteIterator> values) {
return replace(key, values, "Can't replace element");
}
private Status replace(String key,
HashMap<String, ByteIterator> values,
String exceptionDescription) {
int j = 0;
String[] tuple = new String[1 + 2 * values.size()];
tuple[0] = key;
......@@ -175,7 +168,7 @@ public class TarantoolClient extends DB {
try {
this.connection.replace(this.spaceNo, tuple);
} catch (TarantoolException exc) {
logger.log(Level.SEVERE,"Can't replace element", exc);
logger.log(Level.SEVERE,exceptionDescription, exc);
return Status.ERROR;
}
return Status.OK;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment