Loading src/cluster.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -569,7 +569,7 @@ namespace authdb { std::vector<uint8_t> data; if (pclient_) { try { std::unique_lock<std::timed_mutex> lock(client_mutex_, std::chrono::seconds(5)); if (!lock.owns_lock()) throw std::runtime_error("cluster client lock timeout"); std::unique_lock<std::timed_mutex> lock(client_mutex_, std::chrono::seconds(2)); if (!lock.owns_lock()) throw std::runtime_error("cluster client lock timeout"); data = pclient_->retrieve(sgid); if (!data.empty()) { uuid::uuid d_uid, d_did; Loading src/cluster.h +13 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include <string> #include <vector> #include <deque> #include <memory> #include <mutex> #include <condition_variable> Loading Loading @@ -212,8 +213,19 @@ namespace authdb { std::atomic<bool> degraded_{false}; std::thread server_thread_; std::thread health_monitor_thread_; std::thread push_worker_thread_; std::mutex monitor_mutex_; std::condition_variable monitor_cv_; std::mutex push_mutex_; std::condition_variable push_cv_; struct PendingPush { std::vector<uint8_t> data; uint64_t sgid; uint64_t sid_gid; int retries{0}; }; std::deque<PendingPush> push_queue_; std::shared_ptr<paritypp::block_store> store_; std::shared_ptr<paritypp::memory_block_store> session_store_; // sessions only Loading @@ -225,6 +237,7 @@ namespace authdb { void server_loop(); void health_monitor_loop(); void push_worker_loop(); }; // Global cluster instance Loading src/session.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -446,8 +446,8 @@ const authdb::SessionData *authdb::ClusterSession::addSession(AuthBackend &backe } } // Check cluster for existing session if (g_Cluster && g_Cluster->isRunning()) { // Check cluster for existing session (skip when degraded to avoid blocking) if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isDegraded()) { uuid::uuid cluster_sid; std::vector<uuid::uuid> cluster_members; std::string cluster_username; Loading Loading
src/cluster.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -569,7 +569,7 @@ namespace authdb { std::vector<uint8_t> data; if (pclient_) { try { std::unique_lock<std::timed_mutex> lock(client_mutex_, std::chrono::seconds(5)); if (!lock.owns_lock()) throw std::runtime_error("cluster client lock timeout"); std::unique_lock<std::timed_mutex> lock(client_mutex_, std::chrono::seconds(2)); if (!lock.owns_lock()) throw std::runtime_error("cluster client lock timeout"); data = pclient_->retrieve(sgid); if (!data.empty()) { uuid::uuid d_uid, d_did; Loading
src/cluster.h +13 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include <string> #include <vector> #include <deque> #include <memory> #include <mutex> #include <condition_variable> Loading Loading @@ -212,8 +213,19 @@ namespace authdb { std::atomic<bool> degraded_{false}; std::thread server_thread_; std::thread health_monitor_thread_; std::thread push_worker_thread_; std::mutex monitor_mutex_; std::condition_variable monitor_cv_; std::mutex push_mutex_; std::condition_variable push_cv_; struct PendingPush { std::vector<uint8_t> data; uint64_t sgid; uint64_t sid_gid; int retries{0}; }; std::deque<PendingPush> push_queue_; std::shared_ptr<paritypp::block_store> store_; std::shared_ptr<paritypp::memory_block_store> session_store_; // sessions only Loading @@ -225,6 +237,7 @@ namespace authdb { void server_loop(); void health_monitor_loop(); void push_worker_loop(); }; // Global cluster instance Loading
src/session.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -446,8 +446,8 @@ const authdb::SessionData *authdb::ClusterSession::addSession(AuthBackend &backe } } // Check cluster for existing session if (g_Cluster && g_Cluster->isRunning()) { // Check cluster for existing session (skip when degraded to avoid blocking) if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isDegraded()) { uuid::uuid cluster_sid; std::vector<uuid::uuid> cluster_members; std::string cluster_username; Loading