This is an automated email from the ASF dual-hosted git repository.
alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new 3580069c21 [NO ISSUE][OTH] Expose IRequestProfiler from ICloudClient
3580069c21 is described below
commit 3580069c212d8cac8483fe2ae40d5e5cf04dc6e6
Author: Ali Alsuliman <[email protected]>
AuthorDate: Wed Jun 12 03:55:52 2024 +0300
[NO ISSUE][OTH] Expose IRequestProfiler from ICloudClient
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
- Expose the object requests counts from IRequestProfiler.
Change-Id: I6964af27bf66717661cb450de793ca7d06bb9eaf
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18364
Reviewed-by: Hussain Towaileb <[email protected]>
Tested-by: Ali Alsuliman <[email protected]>
---
.../apache/asterix/cloud/clients/ICloudClient.java | 6 ++++
.../cloud/clients/aws/s3/S3CloudClient.java | 5 ++++
.../cloud/clients/google/gcs/GCSCloudClient.java | 5 ++++
.../clients/profiler/CountRequestProfiler.java | 35 ++++++++++++++++++++++
.../cloud/clients/profiler/IRequestProfiler.java | 15 ++++++++++
.../clients/profiler/NoOpRequestProfiler.java | 35 ++++++++++++++++++++++
6 files changed, 101 insertions(+)
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
index 89f3c81312..209245b61e 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
@@ -25,6 +25,7 @@ import java.util.Collection;
import java.util.Set;
import org.apache.asterix.cloud.IWriteBufferProvider;
+import org.apache.asterix.cloud.clients.profiler.IRequestProfiler;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.control.nc.io.IOManager;
@@ -41,6 +42,11 @@ public interface ICloudClient {
*/
int getWriteBufferSize();
+ /**
+ * @return the requests profiler
+ */
+ IRequestProfiler getProfiler();
+
/**
* Creates a cloud buffered writer
*
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
index 2eae455ba6..5ce1f4393a 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
@@ -104,6 +104,11 @@ public final class S3CloudClient implements ICloudClient {
return writeBufferSize;
}
+ @Override
+ public IRequestProfiler getProfiler() {
+ return profiler;
+ }
+
@Override
public ICloudWriter createWriter(String bucket, String path,
IWriteBufferProvider bufferProvider) {
ICloudBufferedWriter bufferedWriter = new S3BufferedWriter(s3Client,
profiler, guardian, bucket, path);
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
index accf3c9774..2874b4e61a 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
@@ -90,6 +90,11 @@ public class GCSCloudClient implements ICloudClient {
return GCSClientConfig.WRITE_BUFFER_SIZE;
}
+ @Override
+ public IRequestProfiler getProfiler() {
+ return profiler;
+ }
+
@Override
public ICloudWriter createWriter(String bucket, String path,
IWriteBufferProvider bufferProvider) {
return new GCSWriter(bucket, path, gcsClient, profiler);
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
index 624395bb3f..3fc378cc17 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
@@ -95,6 +95,41 @@ public class CountRequestProfiler implements
IRequestProfiler {
log();
}
+ @Override
+ public long objectsListCount() {
+ return listObjectsCounter.get();
+ }
+
+ @Override
+ public long objectGetCount() {
+ return getObjectCounter.get();
+ }
+
+ @Override
+ public long objectWriteCount() {
+ return writeObjectCounter.get();
+ }
+
+ @Override
+ public long objectDeleteCount() {
+ return deleteObjectCounter.get();
+ }
+
+ @Override
+ public long objectCopyCount() {
+ return copyObjectCounter.get();
+ }
+
+ @Override
+ public long objectMultipartUploadCount() {
+ return multipartUploadCounter.get();
+ }
+
+ @Override
+ public long objectMultipartDownloadCount() {
+ return multipartDownloadCounter.get();
+ }
+
private void log() {
if (LOGGER.isEnabled(LOG_LEVEL)) {
long currentTime = System.nanoTime();
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
index 9d1d86e3ab..a23a78f41f 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
@@ -32,4 +32,19 @@ public interface IRequestProfiler {
void objectMultipartUpload();
void objectMultipartDownload();
+
+ long objectsListCount();
+
+ long objectGetCount();
+
+ long objectWriteCount();
+
+ long objectDeleteCount();
+
+ long objectCopyCount();
+
+ long objectMultipartUploadCount();
+
+ long objectMultipartDownloadCount();
+
}
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
index 2ef27698c3..f7e89c3643 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
@@ -58,4 +58,39 @@ public class NoOpRequestProfiler implements IRequestProfiler
{
public void objectMultipartDownload() {
// NoOp
}
+
+ @Override
+ public long objectsListCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectGetCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectWriteCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectDeleteCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectCopyCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectMultipartUploadCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectMultipartDownloadCount() {
+ return 0;
+ }
}