src/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
0 / 1
0.0%
Branches:
-
-%
Functions:
0 / 1
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 SparseGradientCommit(google::protobuf::RpcController*,
27 const recstoreps_brpc::SparseGradientCommitRequest*,
28 recstoreps_brpc::SparseGradientCommitResponse*,
29 google::protobuf::Closure*) override;
30
31 void GetParameter(google::protobuf::RpcController* controller,
32 const recstoreps_brpc::GetParameterRequest* request,
33 recstoreps_brpc::GetParameterResponse* response,
34 google::protobuf::Closure* done) override;
35
36 void Command(google::protobuf::RpcController* controller,
37 const recstoreps_brpc::CommandRequest* request,
38 recstoreps_brpc::CommandResponse* response,
39 google::protobuf::Closure* done) override;
40
41 void PutParameter(google::protobuf::RpcController* controller,
42 const recstoreps_brpc::PutParameterRequest* request,
43 recstoreps_brpc::PutParameterResponse* response,
44 google::protobuf::Closure* done) override;
45
46 void UpdateParameter(google::protobuf::RpcController* controller,
47 const recstoreps_brpc::UpdateParameterRequest* request,
48 recstoreps_brpc::UpdateParameterResponse* response,
49 google::protobuf::Closure* done) override;
50
51 void InitEmbeddingTable(
52 google::protobuf::RpcController* controller,
53 const recstoreps_brpc::InitEmbeddingTableRequest* request,
54 recstoreps_brpc::InitEmbeddingTableResponse* response,
55 google::protobuf::Closure* done) override;
56
57 void ResetMetrics();
58 void PrintMetrics(const std::string& table_name = "brpc_ps_server_metrics",
59 const std::string& unique_id = "default_server");
60
61 private:
62 CachePS* cache_ps_;
63 std::atomic<uint64_t> total_get_requests_{0};
64 std::atomic<uint64_t> total_put_requests_{0};
65 std::atomic<uint64_t> total_get_keys_{0};
66 std::atomic<uint64_t> total_put_keys_{0};
67 std::atomic<uint64_t> total_get_bytes_{0};
68 std::atomic<uint64_t> total_put_bytes_{0};
69 std::chrono::steady_clock::time_point start_time_;
70 };
71
72 std::vector<nlohmann::json>
73 SelectBRPCShardConfigs(const nlohmann::json& cache_ps_config,
74 const std::optional<int>& local_shard_id);
75
76 } // namespace recstore
77