@soulcraft/brainy 0.57.1 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -284,6 +284,41 @@ export interface StatisticsData {
284
284
  * List of all services that have written data
285
285
  */
286
286
  services?: ServiceStatistics[];
287
+ /**
288
+ * Throttling metrics for storage operations
289
+ */
290
+ throttlingMetrics?: {
291
+ /**
292
+ * Storage-level throttling information
293
+ */
294
+ storage?: {
295
+ currentlyThrottled: boolean;
296
+ lastThrottleTime?: string;
297
+ consecutiveThrottleEvents: number;
298
+ currentBackoffMs: number;
299
+ totalThrottleEvents: number;
300
+ throttleEventsByHour?: number[];
301
+ throttleReasons?: Record<string, number>;
302
+ };
303
+ /**
304
+ * Operation impact metrics
305
+ */
306
+ operationImpact?: {
307
+ delayedOperations: number;
308
+ retriedOperations: number;
309
+ failedDueToThrottling: number;
310
+ averageDelayMs: number;
311
+ totalDelayMs: number;
312
+ };
313
+ /**
314
+ * Service-level throttling breakdown
315
+ */
316
+ serviceThrottling?: Record<string, {
317
+ throttleCount: number;
318
+ lastThrottle: string;
319
+ status: 'normal' | 'throttled' | 'recovering';
320
+ }>;
321
+ };
287
322
  /**
288
323
  * Last updated timestamp
289
324
  */
@@ -93,6 +93,24 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
93
93
  protected lastStatisticsFlushTime: number;
94
94
  protected readonly MIN_FLUSH_INTERVAL_MS = 5000;
95
95
  protected readonly MAX_FLUSH_DELAY_MS = 30000;
96
+ protected throttlingDetected: boolean;
97
+ protected throttlingBackoffMs: number;
98
+ protected maxBackoffMs: number;
99
+ protected consecutiveThrottleEvents: number;
100
+ protected lastThrottleTime: number;
101
+ protected totalThrottleEvents: number;
102
+ protected throttleEventsByHour: number[];
103
+ protected throttleReasons: Record<string, number>;
104
+ protected lastThrottleHourIndex: number;
105
+ protected delayedOperations: number;
106
+ protected retriedOperations: number;
107
+ protected failedDueToThrottling: number;
108
+ protected totalDelayMs: number;
109
+ protected serviceThrottling: Map<string, {
110
+ throttleCount: number;
111
+ lastThrottle: number;
112
+ status: 'normal' | 'throttled' | 'recovering';
113
+ }>;
96
114
  protected abstract saveStatisticsData(statistics: StatisticsData): Promise<void>;
97
115
  protected abstract getStatisticsData(): Promise<StatisticsData | null>;
98
116
  /**
@@ -164,4 +182,45 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
164
182
  * @returns Default statistics data
165
183
  */
166
184
  protected createDefaultStatistics(): StatisticsData;
185
+ /**
186
+ * Detect if an error is a throttling error
187
+ * Override this method in specific adapters for custom detection
188
+ */
189
+ protected isThrottlingError(error: any): boolean;
190
+ /**
191
+ * Track a throttling event
192
+ * @param error The error that caused throttling
193
+ * @param service Optional service that was throttled
194
+ */
195
+ protected trackThrottlingEvent(error: any, service?: string): void;
196
+ /**
197
+ * Get the reason for throttling from an error
198
+ */
199
+ protected getThrottleReason(error: any): string;
200
+ /**
201
+ * Clear throttling state after successful operations
202
+ */
203
+ protected clearThrottlingState(): void;
204
+ /**
205
+ * Handle throttling by implementing exponential backoff
206
+ * @param error The error that triggered throttling
207
+ * @param service Optional service that was throttled
208
+ */
209
+ handleThrottling(error: any, service?: string): Promise<void>;
210
+ /**
211
+ * Track a retried operation
212
+ */
213
+ protected trackRetriedOperation(): void;
214
+ /**
215
+ * Track an operation that failed due to throttling
216
+ */
217
+ protected trackFailedDueToThrottling(): void;
218
+ /**
219
+ * Get current throttling metrics
220
+ */
221
+ protected getThrottlingMetrics(): StatisticsData['throttlingMetrics'];
222
+ /**
223
+ * Include throttling metrics in statistics
224
+ */
225
+ getStatisticsWithThrottling(): Promise<StatisticsData | null>;
167
226
  }
@@ -20,6 +20,23 @@ export class BaseStorageAdapter {
20
20
  this.MIN_FLUSH_INTERVAL_MS = 5000;
21
21
  // Maximum time to wait before flushing statistics (30 seconds)
22
22
  this.MAX_FLUSH_DELAY_MS = 30000;
23
+ // Throttling tracking properties
24
+ this.throttlingDetected = false;
25
+ this.throttlingBackoffMs = 1000; // Start with 1 second
26
+ this.maxBackoffMs = 30000; // Max 30 seconds
27
+ this.consecutiveThrottleEvents = 0;
28
+ this.lastThrottleTime = 0;
29
+ this.totalThrottleEvents = 0;
30
+ this.throttleEventsByHour = new Array(24).fill(0);
31
+ this.throttleReasons = {};
32
+ this.lastThrottleHourIndex = -1;
33
+ // Operation impact tracking
34
+ this.delayedOperations = 0;
35
+ this.retriedOperations = 0;
36
+ this.failedDueToThrottling = 0;
37
+ this.totalDelayMs = 0;
38
+ // Service-level throttling
39
+ this.serviceThrottling = new Map();
23
40
  }
24
41
  /**
25
42
  * Save statistics data
@@ -410,5 +427,187 @@ export class BaseStorageAdapter {
410
427
  lastUpdated: new Date().toISOString()
411
428
  };
412
429
  }
430
+ /**
431
+ * Detect if an error is a throttling error
432
+ * Override this method in specific adapters for custom detection
433
+ */
434
+ isThrottlingError(error) {
435
+ const statusCode = error.$metadata?.httpStatusCode || error.statusCode || error.code;
436
+ const message = error.message?.toLowerCase() || '';
437
+ return (statusCode === 429 || // Too Many Requests
438
+ statusCode === 503 || // Service Unavailable / Slow Down
439
+ statusCode === 'ECONNRESET' || // Connection reset
440
+ statusCode === 'ETIMEDOUT' || // Timeout
441
+ message.includes('throttl') ||
442
+ message.includes('slow down') ||
443
+ message.includes('rate limit') ||
444
+ message.includes('too many requests') ||
445
+ message.includes('quota exceeded'));
446
+ }
447
+ /**
448
+ * Track a throttling event
449
+ * @param error The error that caused throttling
450
+ * @param service Optional service that was throttled
451
+ */
452
+ trackThrottlingEvent(error, service) {
453
+ this.throttlingDetected = true;
454
+ this.consecutiveThrottleEvents++;
455
+ this.lastThrottleTime = Date.now();
456
+ this.totalThrottleEvents++;
457
+ // Track by hour
458
+ const hourIndex = new Date().getHours();
459
+ if (hourIndex !== this.lastThrottleHourIndex) {
460
+ // Reset hour tracking if we've moved to a new hour
461
+ this.throttleEventsByHour = new Array(24).fill(0);
462
+ this.lastThrottleHourIndex = hourIndex;
463
+ }
464
+ this.throttleEventsByHour[hourIndex]++;
465
+ // Track throttle reason
466
+ const reason = this.getThrottleReason(error);
467
+ this.throttleReasons[reason] = (this.throttleReasons[reason] || 0) + 1;
468
+ // Track service-level throttling
469
+ if (service) {
470
+ const serviceInfo = this.serviceThrottling.get(service) || {
471
+ throttleCount: 0,
472
+ lastThrottle: 0,
473
+ status: 'normal'
474
+ };
475
+ serviceInfo.throttleCount++;
476
+ serviceInfo.lastThrottle = Date.now();
477
+ serviceInfo.status = 'throttled';
478
+ this.serviceThrottling.set(service, serviceInfo);
479
+ }
480
+ // Exponential backoff
481
+ this.throttlingBackoffMs = Math.min(this.throttlingBackoffMs * 2, this.maxBackoffMs);
482
+ }
483
+ /**
484
+ * Get the reason for throttling from an error
485
+ */
486
+ getThrottleReason(error) {
487
+ const statusCode = error.$metadata?.httpStatusCode || error.statusCode || error.code;
488
+ if (statusCode === 429)
489
+ return '429_TooManyRequests';
490
+ if (statusCode === 503)
491
+ return '503_ServiceUnavailable';
492
+ if (statusCode === 'ECONNRESET')
493
+ return 'ConnectionReset';
494
+ if (statusCode === 'ETIMEDOUT')
495
+ return 'Timeout';
496
+ const message = error.message?.toLowerCase() || '';
497
+ if (message.includes('throttl'))
498
+ return 'Throttled';
499
+ if (message.includes('slow down'))
500
+ return 'SlowDown';
501
+ if (message.includes('rate limit'))
502
+ return 'RateLimit';
503
+ if (message.includes('quota exceeded'))
504
+ return 'QuotaExceeded';
505
+ return 'Unknown';
506
+ }
507
+ /**
508
+ * Clear throttling state after successful operations
509
+ */
510
+ clearThrottlingState() {
511
+ if (this.consecutiveThrottleEvents > 0) {
512
+ this.consecutiveThrottleEvents = 0;
513
+ this.throttlingBackoffMs = 1000; // Reset to initial backoff
514
+ if (this.throttlingDetected) {
515
+ this.throttlingDetected = false;
516
+ // Update service statuses
517
+ for (const [service, info] of this.serviceThrottling) {
518
+ if (info.status === 'throttled') {
519
+ info.status = 'recovering';
520
+ }
521
+ else if (info.status === 'recovering') {
522
+ const timeSinceThrottle = Date.now() - info.lastThrottle;
523
+ if (timeSinceThrottle > 60000) { // 1 minute recovery period
524
+ info.status = 'normal';
525
+ }
526
+ }
527
+ }
528
+ }
529
+ }
530
+ }
531
+ /**
532
+ * Handle throttling by implementing exponential backoff
533
+ * @param error The error that triggered throttling
534
+ * @param service Optional service that was throttled
535
+ */
536
+ async handleThrottling(error, service) {
537
+ if (this.isThrottlingError(error)) {
538
+ this.trackThrottlingEvent(error, service);
539
+ // Add delay for retry
540
+ const delayMs = this.throttlingBackoffMs;
541
+ this.totalDelayMs += delayMs;
542
+ this.delayedOperations++;
543
+ await new Promise(resolve => setTimeout(resolve, delayMs));
544
+ }
545
+ else {
546
+ // Clear throttling state on non-throttling errors
547
+ this.clearThrottlingState();
548
+ }
549
+ }
550
+ /**
551
+ * Track a retried operation
552
+ */
553
+ trackRetriedOperation() {
554
+ this.retriedOperations++;
555
+ }
556
+ /**
557
+ * Track an operation that failed due to throttling
558
+ */
559
+ trackFailedDueToThrottling() {
560
+ this.failedDueToThrottling++;
561
+ }
562
+ /**
563
+ * Get current throttling metrics
564
+ */
565
+ getThrottlingMetrics() {
566
+ const averageDelayMs = this.delayedOperations > 0
567
+ ? this.totalDelayMs / this.delayedOperations
568
+ : 0;
569
+ // Convert service throttling map to record
570
+ const serviceThrottlingRecord = {};
571
+ for (const [service, info] of this.serviceThrottling) {
572
+ serviceThrottlingRecord[service] = {
573
+ throttleCount: info.throttleCount,
574
+ lastThrottle: new Date(info.lastThrottle).toISOString(),
575
+ status: info.status
576
+ };
577
+ }
578
+ return {
579
+ storage: {
580
+ currentlyThrottled: this.throttlingDetected,
581
+ lastThrottleTime: this.lastThrottleTime > 0
582
+ ? new Date(this.lastThrottleTime).toISOString()
583
+ : undefined,
584
+ consecutiveThrottleEvents: this.consecutiveThrottleEvents,
585
+ currentBackoffMs: this.throttlingBackoffMs,
586
+ totalThrottleEvents: this.totalThrottleEvents,
587
+ throttleEventsByHour: [...this.throttleEventsByHour],
588
+ throttleReasons: { ...this.throttleReasons }
589
+ },
590
+ operationImpact: {
591
+ delayedOperations: this.delayedOperations,
592
+ retriedOperations: this.retriedOperations,
593
+ failedDueToThrottling: this.failedDueToThrottling,
594
+ averageDelayMs,
595
+ totalDelayMs: this.totalDelayMs
596
+ },
597
+ serviceThrottling: Object.keys(serviceThrottlingRecord).length > 0
598
+ ? serviceThrottlingRecord
599
+ : undefined
600
+ };
601
+ }
602
+ /**
603
+ * Include throttling metrics in statistics
604
+ */
605
+ async getStatisticsWithThrottling() {
606
+ const stats = await this.getStatistics();
607
+ if (stats) {
608
+ stats.throttlingMetrics = this.getThrottlingMetrics();
609
+ }
610
+ return stats;
611
+ }
413
612
  }
414
613
  //# sourceMappingURL=baseStorageAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseStorageAdapter.js","sourceRoot":"","sources":["../../../src/storage/adapters/baseStorageAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseStorageAdapter.js","sourceRoot":"","sources":["../../../src/storage/adapters/baseStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -57,11 +57,6 @@ export declare class S3CompatibleStorage extends BaseStorage {
57
57
  private systemPrefix;
58
58
  private useDualWrite;
59
59
  protected statisticsCache: StatisticsData | null;
60
- private throttlingDetected;
61
- private throttlingBackoffMs;
62
- private maxBackoffMs;
63
- private consecutiveThrottleErrors;
64
- private lastThrottleTime;
65
60
  private lockPrefix;
66
61
  private activeLocks;
67
62
  private changeLogPrefix;
@@ -112,13 +107,13 @@ export declare class S3CompatibleStorage extends BaseStorage {
112
107
  */
113
108
  init(): Promise<void>;
114
109
  /**
115
- * Detect and handle storage throttling (429, 503, timeouts)
110
+ * Override base class method to detect S3-specific throttling errors
116
111
  */
117
- private isThrottlingError;
112
+ protected isThrottlingError(error: any): boolean;
118
113
  /**
119
- * Handle throttling by implementing exponential backoff
114
+ * Override to add S3-specific logging
120
115
  */
121
- private handleThrottling;
116
+ handleThrottling(error: any, service?: string): Promise<void>;
122
117
  /**
123
118
  * Smart delay based on current throttling status
124
119
  */
@@ -48,12 +48,6 @@ export class S3CompatibleStorage extends BaseStorage {
48
48
  this.useDualWrite = true; // Write to both locations during migration
49
49
  // Statistics caching for better performance
50
50
  this.statisticsCache = null;
51
- // Throttling detection and adaptation
52
- this.throttlingDetected = false;
53
- this.throttlingBackoffMs = 1000; // Start with 1 second
54
- this.maxBackoffMs = 30000; // Max 30 seconds
55
- this.consecutiveThrottleErrors = 0;
56
- this.lastThrottleTime = 0;
57
51
  // Distributed locking for concurrent access control
58
52
  this.lockPrefix = 'locks/';
59
53
  this.activeLocks = new Set();
@@ -247,41 +241,32 @@ export class S3CompatibleStorage extends BaseStorage {
247
241
  }
248
242
  }
249
243
  /**
250
- * Detect and handle storage throttling (429, 503, timeouts)
244
+ * Override base class method to detect S3-specific throttling errors
251
245
  */
252
246
  isThrottlingError(error) {
253
- const statusCode = error.$metadata?.httpStatusCode || error.statusCode;
247
+ // First check base class detection
248
+ if (super.isThrottlingError(error)) {
249
+ return true;
250
+ }
251
+ // Additional S3-specific checks
254
252
  const message = error.message?.toLowerCase() || '';
255
- return (statusCode === 429 || // Too Many Requests
256
- statusCode === 503 || // Service Unavailable / Slow Down
257
- message.includes('throttl') ||
258
- message.includes('slow down') ||
259
- message.includes('rate limit') ||
260
- message.includes('too many requests'));
253
+ return (message.includes('please reduce your request rate') ||
254
+ message.includes('service unavailable') ||
255
+ error.Code === 'SlowDown' ||
256
+ error.Code === 'RequestLimitExceeded' ||
257
+ error.Code === 'ServiceUnavailable');
261
258
  }
262
259
  /**
263
- * Handle throttling by implementing exponential backoff
260
+ * Override to add S3-specific logging
264
261
  */
265
- async handleThrottling(error) {
262
+ async handleThrottling(error, service) {
266
263
  if (this.isThrottlingError(error)) {
267
- this.throttlingDetected = true;
268
- this.consecutiveThrottleErrors++;
269
- this.lastThrottleTime = Date.now();
270
- // Exponential backoff: 1s, 2s, 4s, 8s, etc. up to maxBackoffMs
271
- this.throttlingBackoffMs = Math.min(this.throttlingBackoffMs * 2, this.maxBackoffMs);
272
- prodLog.warn(`🐌 Storage throttling detected (${error.$metadata?.httpStatusCode || 'timeout'}). Backing off for ${this.throttlingBackoffMs}ms`);
273
- await new Promise(resolve => setTimeout(resolve, this.throttlingBackoffMs));
264
+ prodLog.warn(`🐌 S3 storage throttling detected (${error.$metadata?.httpStatusCode || error.Code || 'timeout'}). Backing off...`);
274
265
  }
275
- else {
276
- // Reset throttling detection on successful non-throttling operation
277
- if (this.consecutiveThrottleErrors > 0) {
278
- this.consecutiveThrottleErrors = 0;
279
- this.throttlingBackoffMs = 1000; // Reset to initial backoff
280
- if (this.throttlingDetected) {
281
- prodLog.info('✅ Storage throttling cleared');
282
- this.throttlingDetected = false;
283
- }
284
- }
266
+ // Call base class implementation
267
+ await super.handleThrottling(error, service);
268
+ if (!this.isThrottlingError(error) && this.consecutiveThrottleEvents === 0 && !this.throttlingDetected) {
269
+ prodLog.info('✅ S3 storage throttling cleared');
285
270
  }
286
271
  }
287
272
  /**