refactor(actor): implement Raft consensus algorithm for cluster leader election
- Add voting mechanism with term tracking and vote persistence - Implement election triggering logic with majority vote counting - Add primary/replica role transition handling with state management - Integrate health check failure detection for automatic elections - Refactor actor messaging system for distributed coordination - Update repository registration to query cluster for existing primary - Add broadcast mechanism for role change notifications - Implement proper term comparison and duplicate request filtering - Upgrade dependency versions including tokio-util for async utilities - Optimize code formatting and line wrapping for improved readability - Remove redundant blank lines and improve code structure consistency - Enhance error logging and trace information for debugging purposes
This commit is contained in:
+13
-3
@@ -5,7 +5,11 @@ use crate::pb::*;
|
||||
impl GitBare {
|
||||
/// Count commits in a revision range or path.
|
||||
pub fn count_commits(&self, request: CountCommitsRequest) -> GitResult<CountCommitsResponse> {
|
||||
let revision = if request.revision.is_empty() { "HEAD" } else { &request.revision };
|
||||
let revision = if request.revision.is_empty() {
|
||||
"HEAD"
|
||||
} else {
|
||||
&request.revision
|
||||
};
|
||||
crate::sanitize::validate_revision(revision)?;
|
||||
|
||||
let mut args = vec![
|
||||
@@ -48,7 +52,10 @@ impl GitBare {
|
||||
}
|
||||
|
||||
/// Count diverging commits between two branches (left vs right).
|
||||
pub fn count_diverging_commits(&self, request: CountDivergingCommitsRequest) -> GitResult<CountDivergingCommitsResponse> {
|
||||
pub fn count_diverging_commits(
|
||||
&self,
|
||||
request: CountDivergingCommitsRequest,
|
||||
) -> GitResult<CountDivergingCommitsResponse> {
|
||||
crate::sanitize::validate_revision(&request.left)?;
|
||||
crate::sanitize::validate_revision(&request.right)?;
|
||||
|
||||
@@ -75,6 +82,9 @@ impl GitBare {
|
||||
let left_count = parts.first().and_then(|s| s.parse().ok()).unwrap_or(0);
|
||||
let right_count = parts.get(1).and_then(|s| s.parse().ok()).unwrap_or(0);
|
||||
|
||||
Ok(CountDivergingCommitsResponse { left_count, right_count })
|
||||
Ok(CountDivergingCommitsResponse {
|
||||
left_count,
|
||||
right_count,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user