Documentation
¶
Overview ¶
Package admin provides administration and caching services for CBT
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrCacheManagerUnavailable = errors.New("cache manager not available") )
Functions ¶
This section is empty.
Types ¶
type BoundsCache ¶ added in v0.0.2
type BoundsCache struct {
ModelID string `json:"model_id"`
Min uint64 `json:"min"`
Max uint64 `json:"max"`
// Track scan times
LastIncrementalScan time.Time `json:"last_incremental_scan"`
LastFullScan time.Time `json:"last_full_scan"`
// For optimization hints
PreviousMin uint64 `json:"previous_min"`
PreviousMax uint64 `json:"previous_max"`
// Initial scan tracking
InitialScanComplete bool `json:"initial_scan_complete"`
InitialScanStarted *time.Time `json:"initial_scan_started,omitempty"`
// Metadata
UpdatedAt time.Time `json:"updated_at"`
}
BoundsCache represents cached external model bounds
type CacheManager ¶
type CacheManager struct {
// contains filtered or unexported fields
}
CacheManager manages Redis-based caching for external models
func NewCacheManager ¶
func NewCacheManager(redisClient *redis.Client) *CacheManager
NewCacheManager creates a new cache manager instance
func (*CacheManager) GetBounds ¶ added in v0.0.2
func (c *CacheManager) GetBounds(ctx context.Context, modelID string) (*BoundsCache, error)
GetBounds retrieves cached external model bounds from Redis
func (*CacheManager) SetBounds ¶ added in v0.0.2
func (c *CacheManager) SetBounds(ctx context.Context, cache *BoundsCache) error
SetBounds stores external model bounds in Redis cache (no TTL)
type ProcessedRange ¶ added in v0.0.25
ProcessedRange represents a processed range from the admin table
type Service ¶
type Service interface {
// Position tracking (for incremental transformations)
GetNextUnprocessedPosition(ctx context.Context, modelID string) (uint64, error) // Returns next position for forward fill
GetLastProcessedPosition(ctx context.Context, modelID string) (uint64, error) // Returns position of last record
GetFirstPosition(ctx context.Context, modelID string) (uint64, error)
RecordCompletion(ctx context.Context, modelID string, position, interval uint64) error
// Scheduled transformation tracking
RecordScheduledCompletion(ctx context.Context, modelID string, startDateTime time.Time) error
GetLastScheduledExecution(ctx context.Context, modelID string) (*time.Time, error)
// Coverage and gap management
GetCoverage(ctx context.Context, modelID string, startPos, endPos uint64) (bool, error)
GetProcessedRanges(ctx context.Context, modelID string) ([]ProcessedRange, error)
FindGaps(ctx context.Context, modelID string, minPos, maxPos, interval uint64) ([]GapInfo, error)
// Consolidation
ConsolidateHistoricalData(ctx context.Context, modelID string) (uint64, error)
// External bounds cache
GetExternalBounds(ctx context.Context, modelID string) (*BoundsCache, error)
SetExternalBounds(ctx context.Context, cache *BoundsCache) error
// Admin table info
GetIncrementalAdminDatabase() string
GetIncrementalAdminTable() string
GetScheduledAdminDatabase() string
GetScheduledAdminTable() string
}
Service defines the public interface for the admin service
func NewService ¶
func NewService(log logrus.FieldLogger, client clickhouse.ClientInterface, cluster, localSuffix string, config TableConfig, redisClient *redis.Client) Service
NewService creates a new admin table manager with type-specific admin tables
Click to show internal directories.
Click to hide internal directories.