GCC Code Coverage Report


Directory: src/
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 0.0% 0 / 0 / 1
Functions: 0.0% 0 / 0 / 1
Branches: -% 0 / 0 / 0

ps/brpc/brpc_ps_server.h
Line Branch Exec Source
1 #pragma once
2
3 #include <brpc/server.h>
4
5 #include <atomic>
6 #include <chrono>
7 #include <cstdint>
8 #include <memory>
9 #include <optional>
10 #include <string>
11 #include <vector>
12
13 #include "base/json.h"
14 #include "ps/base/cache_ps_impl.h"
15 #include "ps_brpc.pb.h"
16
17 namespace recstore {
18
19 // bRPC parameter service implementation
20 class BRPCParameterServiceImpl : public recstoreps_brpc::ParameterService {
21 public:
22 explicit BRPCParameterServiceImpl(CachePS* cache_ps);
23
24 virtual ~BRPCParameterServiceImpl() = default;
25
26 void GetParameter(google::protobuf::RpcController* controller,
27 const recstoreps_brpc::GetParameterRequest* request,
28 recstoreps_brpc::GetParameterResponse* response,
29 google::protobuf::Closure* done) override;
30
31 void Command(google::protobuf::RpcController* controller,
32 const recstoreps_brpc::CommandRequest* request,
33 recstoreps_brpc::CommandResponse* response,
34 google::protobuf::Closure* done) override;
35
36 void PutParameter(google::protobuf::RpcController* controller,
37 const recstoreps_brpc::PutParameterRequest* request,
38 recstoreps_brpc::PutParameterResponse* response,
39 google::protobuf::Closure* done) override;
40
41 void UpdateParameter(google::protobuf::RpcController* controller,
42 const recstoreps_brpc::UpdateParameterRequest* request,
43 recstoreps_brpc::UpdateParameterResponse* response,
44 google::protobuf::Closure* done) override;
45
46 void InitEmbeddingTable(
47 google::protobuf::RpcController* controller,
48 const recstoreps_brpc::InitEmbeddingTableRequest* request,
49 recstoreps_brpc::InitEmbeddingTableResponse* response,
50 google::protobuf::Closure* done) override;
51
52 void ResetMetrics();
53 void PrintMetrics(const std::string& table_name = "brpc_ps_server_metrics",
54 const std::string& unique_id = "default_server");
55
56 private:
57 CachePS* cache_ps_;
58 std::atomic<uint64_t> total_get_requests_{0};
59 std::atomic<uint64_t> total_put_requests_{0};
60 std::atomic<uint64_t> total_get_keys_{0};
61 std::atomic<uint64_t> total_put_keys_{0};
62 std::atomic<uint64_t> total_get_bytes_{0};
63 std::atomic<uint64_t> total_put_bytes_{0};
64 std::chrono::steady_clock::time_point start_time_;
65 };
66
67 std::vector<nlohmann::json>
68 SelectBRPCShardConfigs(const nlohmann::json& cache_ps_config,
69 const std::optional<int>& local_shard_id);
70
71 } // namespace recstore
72