aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/ml/ml.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mount/ml/ml.go')
-rw-r--r--weed/mount/ml/ml.go40
1 files changed, 32 insertions, 8 deletions
diff --git a/weed/mount/ml/ml.go b/weed/mount/ml/ml.go
index ac469dbf9..3c52db6ec 100644
--- a/weed/mount/ml/ml.go
+++ b/weed/mount/ml/ml.go
@@ -10,10 +10,13 @@ import (
// MLOptimization provides ML-aware optimizations for FUSE mounting
type MLOptimization struct {
- ReaderCache *MLReaderCache
- PrefetchManager *PrefetchManager
- PatternDetector *AccessPatternDetector
- enabled bool
+ ReaderCache *MLReaderCache
+ PrefetchManager *PrefetchManager
+ PatternDetector *AccessPatternDetector
+ DatasetDetector *DatasetPatternDetector
+ TrainingOptimizer *TrainingOptimizer
+ BatchOptimizer *BatchOptimizer
+ enabled bool
}
// MLConfig holds configuration for ML optimizations
@@ -58,6 +61,15 @@ func NewMLOptimization(config *MLConfig, chunkCache chunk_cache.ChunkCache, look
config = DefaultMLConfig()
}
+ // Create dataset pattern detector
+ datasetDetector := NewDatasetPatternDetector()
+
+ // Create training optimizer
+ trainingOptimizer := NewTrainingOptimizer(datasetDetector)
+
+ // Create batch optimizer
+ batchOptimizer := NewBatchOptimizer()
+
// Create ML reader cache with embedded prefetch manager and pattern detector
mlReaderCache := NewMLReaderCache(10, chunkCache, lookupFn)
@@ -65,10 +77,13 @@ func NewMLOptimization(config *MLConfig, chunkCache chunk_cache.ChunkCache, look
mlReaderCache.SetPrefetchConfiguration(config.MaxPrefetchAhead, config.PrefetchBatchSize)
opt := &MLOptimization{
- ReaderCache: mlReaderCache,
- PrefetchManager: mlReaderCache.prefetchManager,
- PatternDetector: mlReaderCache.patternDetector,
- enabled: true,
+ ReaderCache: mlReaderCache,
+ PrefetchManager: mlReaderCache.prefetchManager,
+ PatternDetector: mlReaderCache.patternDetector,
+ DatasetDetector: datasetDetector,
+ TrainingOptimizer: trainingOptimizer,
+ BatchOptimizer: batchOptimizer,
+ enabled: true,
}
glog.V(1).Infof("ML optimization enabled with config: workers=%d, queue=%d, confidence=%.2f",
@@ -132,6 +147,15 @@ func (opt *MLOptimization) Shutdown() {
if opt.ReaderCache != nil {
opt.ReaderCache.Shutdown()
}
+
+ if opt.DatasetDetector != nil {
+ opt.DatasetDetector.Cleanup()
+ }
+
+ if opt.BatchOptimizer != nil {
+ opt.BatchOptimizer.Shutdown()
+ }
+
glog.V(1).Infof("ML optimization shutdown complete")
}