Update internal/cluster/raft_coordinator.go
This commit is contained in:
1 parent
f191e5b328
commit
2541233e40
1 file changed
+26
-4
@@ -58,6 +58,11 @@
|
|||||||
// Все публичные методы *cluster.SagaManager (GetOrchestrator,
|
// Все публичные методы *cluster.SagaManager (GetOrchestrator,
|
||||||
// GetMetrics, GetActiveSagas, Stop) сохранены — они используются
|
// GetMetrics, GetActiveSagas, Stop) сохранены — они используются
|
||||||
// в repl.go и main.go.
|
// в repl.go и main.go.
|
||||||
|
//
|
||||||
|
// ДОБАВЛЕНО (2026-10, кластерный SagaManager):
|
||||||
|
// - Метод GetAllSagas() у *SagaManager — возвращает все SAGA
|
||||||
|
// транзакции (активные и завершённые). Используется REPL-командой
|
||||||
|
// "saga list --all". Возвращает локальный тип cluster.SagaTransaction.
|
||||||
|
|
||||||
package cluster
|
package cluster
|
||||||
|
|
||||||
@@ -828,7 +833,6 @@ func (rsm *RangeShardManager) Rebalance() error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// INMEM STORE ДЛЯ RAFT (реализует raft.LogStore и raft.StableStore)
|
// INMEM STORE ДЛЯ RAFT (реализует raft.LogStore и raft.StableStore)
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
@@ -1551,6 +1555,26 @@ func (sm *SagaManager) GetActiveSagas() []*SagaTransaction {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllSagas возвращает все SAGA транзакции — и активные, и завершённые.
|
||||||
|
//
|
||||||
|
// ДОБАВЛЕНО (2026-10): используется REPL-командой "saga list --all".
|
||||||
|
// В кластерной версии SAGA-менеджер хранит все транзакции в sync.Map
|
||||||
|
// (sm.sagas). Реплики и завершённые SAGA не удаляются — sync.Map
|
||||||
|
// накапливает их в течение жизни процесса. Это позволяет отдавать
|
||||||
|
// полный список без обращения к диску.
|
||||||
|
func (sm *SagaManager) GetAllSagas() []*SagaTransaction {
|
||||||
|
result := make([]*SagaTransaction, 0)
|
||||||
|
sm.sagas.Range(func(key, value interface{}) bool {
|
||||||
|
saga, ok := value.(*SagaTransaction)
|
||||||
|
if !ok || saga == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
result = append(result, saga)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
// Stop останавливает Saga-менеджер.
|
// Stop останавливает Saga-менеджер.
|
||||||
// Реализован, чтобы main.go мог вызвать sagaManager.Stop() единообразно
|
// Реализован, чтобы main.go мог вызвать sagaManager.Stop() единообразно
|
||||||
// как для storage.SagaOrchestrator, так и для cluster.SagaManager.
|
// как для storage.SagaOrchestrator, так и для cluster.SagaManager.
|
||||||
@@ -1963,7 +1987,6 @@ func (sbd *SplitBrainDetector) IsQuarantined(nodeID string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// RECOVERY MANAGER - ПЕРЕИМЕНОВАН В ClusterNodeState ДЛЯ ИЗБЕЖАНИЯ КОНФЛИКТА
|
// RECOVERY MANAGER - ПЕРЕИМЕНОВАН В ClusterNodeState ДЛЯ ИЗБЕЖАНИЯ КОНФЛИКТА
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
@@ -3134,7 +3157,6 @@ func (lfm *LeaderFallbackManager) Stop() {
|
|||||||
close(lfm.stopChan)
|
close(lfm.stopChan)
|
||||||
lfm.wg.Wait()
|
lfm.wg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// RAFT CLUSTER STATE
|
// RAFT CLUSTER STATE
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
@@ -4405,4 +4427,4 @@ type ClusterStatus struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Гарантируем, что runtime импортирован для кроссплатформенности
|
// Гарантируем, что runtime импортирован для кроссплатформенности
|
||||||
var _ = runtime.GOOS
|
var _ = runtime.GOOS
|
||||||
Reference in new issue
Block a user