This is an automated email from the ASF dual-hosted git repository.
saipranav pushed a commit to branch QueccBranch
in repository https://gitbox.apache.org/repos/asf/incubator-resilientdb.git
The following commit(s) were added to refs/heads/QueccBranch by this push:
new 6cc283e0 "Fixed build error"
6cc283e0 is described below
commit 6cc283e0faf3efadd39c85769c0a8342cffaf129
Author: Saipranav Kotamreddy <[email protected]>
AuthorDate: Wed Apr 17 22:18:00 2024 -0700
"Fixed build error"
---
benchmark/protocols/quecc/BUILD | 1 -
benchmark/protocols/quecc/quecc_benchmark.cpp | 157 ++++++++++----------------
2 files changed, 58 insertions(+), 100 deletions(-)
diff --git a/benchmark/protocols/quecc/BUILD b/benchmark/protocols/quecc/BUILD
index 9135a6da..b268760e 100644
--- a/benchmark/protocols/quecc/BUILD
+++ b/benchmark/protocols/quecc/BUILD
@@ -6,7 +6,6 @@ cc_binary(
name = "quecc_benchmark",
srcs = ["quecc_benchmark.cpp"],
deps = [
- "@benchmark//:benchmark",
"//chain/state:chain_state",
"//executor/kv:kv_executor",
"//executor/kv:quecc_executor",
diff --git a/benchmark/protocols/quecc/quecc_benchmark.cpp
b/benchmark/protocols/quecc/quecc_benchmark.cpp
index 94545b9a..ebe7e696 100644
--- a/benchmark/protocols/quecc/quecc_benchmark.cpp
+++ b/benchmark/protocols/quecc/quecc_benchmark.cpp
@@ -28,8 +28,8 @@
#include <chrono>
#include <cstdint>
#include <ctime>
+
#include "chain/storage/memory_db.h"
-#include <benchmark/benchmark.h>
#include "executor/kv/kv_executor.h"
#include "executor/kv/quecc_executor.h"
#include "platform/config/resdb_config_utils.h"
@@ -40,44 +40,43 @@ using resdb::BatchUserRequest;
using resdb::BatchUserResponse;
using resdb::GenerateResDBConfig;
using resdb::KVExecutor;
-using resdb::Operation;
+using resdb::KVOperation;
using resdb::KVRequest;
+using resdb::storage::MemoryDB;
using resdb::QueccExecutor;
using resdb::ResConfigData;
using resdb::ResDBConfig;
using resdb::Storage;
-
-using namespace resdb::storage;
-
void ShowUsage() {
printf(
"<config> <private_key> <cert_file> <durability_option>
[logging_dir]\n");
}
BatchUserRequest EqualDistribution() {
- BatchUserRequest batch_request;
-
- vector<string> keys = {"test1", "test2", "test3", "test4", "test5"};
- for (int i = 0; i < 10000; i++) {
- // add transaction
- KVRequest request;
-
- for (int j = 0; j < 100; j++) {
- // add operation
- resdb::Operation* op = request.add_ops();
- op->set_cmd(resdb::Operation::SET);
- op->set_key(keys[i % 5]);
- op->set_value(to_string(j));
- }
-
- std::string req_str;
- if (!request.SerializeToString(&req_str)) {
- exit(0);
- }
-
batch_request.add_user_requests()->mutable_request()->set_data(req_str);
- }
-
- return batch_request;
+ BatchUserRequest batch_request;
+
+ vector<string> keys = {"test1", "test2", "test3", "test4", "test5"};
+
+ for (int i = 0; i < 10000; i++) {
+ // add transaction
+ KVRequest request;
+
+ for (int j = 0; j < 100; j++) {
+ // add operation
+ resdb::Operation* op = request.add_ops();
+ op->set_cmd(resdb::Operation::SET);
+ op->set_key(keys[i % 5]);
+ op->set_value(to_string(j));
+ }
+
+ std::string req_str;
+ if (!request.SerializeToString(&req_str)) {
+ exit(0);
+ }
+ batch_request.add_user_requests()->mutable_request()->set_data(req_str);
+ }
+
+ return batch_request;
}
BatchUserRequest NoDistribution() {
@@ -86,7 +85,7 @@ BatchUserRequest NoDistribution() {
for (int i = 0; i < 10000; i++) {
KVRequest request;
- for (int j = 0; j < 10; j++) {
+ for (int j = 0; j < 100; j++) {
// add operation
resdb::Operation* op = request.add_ops();
op->set_cmd(resdb::Operation::SET);
@@ -128,79 +127,39 @@ BatchUserRequest RandomDistribution() {
return batch_request;
}
-static void BM_EqualDistribution(benchmark::State& state) {
- std::unique_ptr<Storage> storage1 = nullptr;
- storage1 = NewMemoryDB();
- std::unique_ptr<BatchUserResponse> response;
- vector<BatchUserRequest> equal_split_array;
- QueccExecutor quecc_executor(std::move(storage1));
-
- for (int i = 0; i < 10; i++) {
- equal_split_array.push_back(EqualDistribution());
- }
-
- for (auto _ : state) {
- for (BatchUserRequest equal_split : equal_split_array) {
- // response = quecc_executor.ExecuteBatch(equal_split);
- // ::benchmark::DoNotOptimize(response);
- }
- }
-
- if (state.thread_index() == 0) {
- double mean = state.counters["mean"];
- benchmark::DoNotOptimize(mean);
- }
-}
-
-static void BM_NoDistribution(benchmark::State& state) {
- std::unique_ptr<Storage> storage1 = nullptr;
- storage1 = NewMemoryDB();
- std::unique_ptr<BatchUserResponse> response;
- vector<BatchUserRequest> no_split_array;
- QueccExecutor quecc_executor(std::move(storage1));
-
- for (int i = 0; i < 10; i++) {
- no_split_array.push_back(NoDistribution());
- }
-
- for (auto _ : state) {
- for (BatchUserRequest no_split : no_split_array) {
- response = quecc_executor.ExecuteBatch(no_split);
- ::benchmark::DoNotOptimize(response);
- }
- }
-}
+int main(int argc, char** argv) {
+ vector<BatchUserRequest> equal_split_array;
+ vector<BatchUserRequest> no_split_array;
+ vector<BatchUserRequest> random_split_array;
+ for (int i = 0; i < 1; i++) {
+ equal_split_array.push_back(EqualDistribution());
+ // no_split_array.push_back(NoDistribution());
+ // random_split_array.push_back(RandomDistribution());
+ }
+ KVExecutor kv_executor=KVExecutor(std::make_unique<MemoryDB>());
-static void BM_RandomDistribution(benchmark::State& state) {
- std::unique_ptr<Storage> storage1 = nullptr;
- storage1 = NewMemoryDB();
- std::unique_ptr<BatchUserResponse> response;
- vector<BatchUserRequest> random_split_array;
- QueccExecutor quecc_executor(std::move(storage1));
-
- for (int i = 0; i < 10; i++) {
- random_split_array.push_back(RandomDistribution());
- }
-
- for (auto _ : state) {
- for (BatchUserRequest rand_split : random_split_array) {
- response = quecc_executor.ExecuteBatch(rand_split);
- ::benchmark::DoNotOptimize(response);
- }
- }
-}
+ QueccExecutor quecc_executor=QueccExecutor(std::make_unique<MemoryDB>());
-BENCHMARK(BM_EqualDistribution)->Name("Equal Split - Quecc")
- ->Unit(benchmark::kSecond)->Iterations(10);
+ std::unique_ptr<BatchUserResponse> response;
+ // Equal Split Comparison
+ printf("Equal Split Times\n");
-// BENCHMARK(BM_NoDistribution)->Name("No Split - Quecc")
-// ->Unit(benchmark::kSecond);
+ auto start_time = std::chrono::high_resolution_clock::now();
+ for (BatchUserRequest equal_split : equal_split_array) {
+ response = quecc_executor.ExecuteBatch(equal_split);
+ }
-// BENCHMARK(BM_RandomDistribution)->Name("Random Split - Quecc")
-// ->Unit(benchmark::kSecond);
+ auto end_time = std::chrono::high_resolution_clock::now();
+ auto duration = std::chrono::duration_cast<std::chrono::microseconds>(
+ end_time - start_time);
+ printf("Quecc Time Taken: %d\n", (int)duration.count());
+ start_time = std::chrono::high_resolution_clock::now();
-int main(int argc, char** argv) {
- ::benchmark::Initialize(&argc, argv);
- ::benchmark::RunSpecifiedBenchmarks();
- ::benchmark::Shutdown();
+ for (BatchUserRequest equal_split : equal_split_array) {
+ response = kv_executor.ExecuteBatch(equal_split);
+ }
+ end_time = std::chrono::high_resolution_clock::now();
+ duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time -
+ start_time);
+ printf("KV Time Taken: %d\n", (int)duration.count());
}
\ No newline at end of file