MinIO AIStor vs MinIO OSS - Complete Technical Comparison (13,061 commits analyzed)
Analysis based on full commit history review of 13,061 commits
- Executive Summary
- Upgrade Priority Summary
- Codebase Statistics
- Enterprise Features (AIStor Only)
- Performance Improvements
- Stability & Reliability Improvements
- Operational Improvements
- Observability & Monitoring
- Architecture Differences
- Detailed Commit Analysis by Category
- Summary Comparison Table
MinIO AIStor is a comprehensive enterprise evolution of MinIO OSS with 13,061 total commits analyzed. AIStor transforms MinIO from an object storage platform into a production-ready data lakehouse solution with:
- 245 unique source files in
cmd/not present in OSS - 24 new internal packages for enterprise functionality
- 19 additional metrics files for comprehensive observability
- 178 commits for Tables API (Iceberg Catalog)
- 140 commits for Site Replication enhancements
- 547 commits for Healing improvements
- 470 commits for Replication enhancements
- 457 commits for Locking improvements
- 396 commits for Encryption/KMS
- 307 commits for Metrics/Prometheus
- 265 commits for ILM/Lifecycle
- 690 commits for IAM/Auth improvements
Why Upgrade Now? This release includes 47+ critical and 85+ high priority stability fixes across core subsystems.
| Severity | Count | Areas Impacted |
|---|---|---|
| Critical | 47+ | Data integrity, split-brain prevention, availability |
| High | 85+ | Race conditions, resource leaks, locking |
| Medium | 120+ | Performance bottlenecks, operational improvements |
These fixes address issues that could impact data integrity or cluster availability:
| Area | Fixes | Key PRs |
|---|---|---|
| Healing & Recovery | 18 | #2558 (abandoned object recovery), #879 (write lock timing), #1147 (offline drive healing) |
| Distributed Locking | 12 | #2073 (lease-based locking), #2802 (write lock contention), #2768 (coalesced locks) |
| Replication Consistency | 10 | #2608 (site-replication races), #2457 (retention preservation), #1447 (init/heal improvements) |
| Startup & Availability | 7 | #2691 (non-blocking license), #2631 (health endpoint protection), #2072 (resource monitoring) |
These fixes address race conditions, resource leaks, and locking issues:
| Area | Fixes | Key PRs |
|---|---|---|
| Race Conditions | 25+ | #1882 (QoS), #2608 (site-replication), #2752 (persistent log), #2789 (Tables locking) |
| Memory & Resource Leaks | 20+ | #2596 (heap escapes), #2566 (buffer pooling), #2567 (decompressor pooling), #1041 (MRF locks) |
| Lock Contention | 22+ | #2789 (Tables), #2110 (cleanup interval), #1748 (multi-table transactions) |
| I/O Bottlenecks | 18+ | #2438 (delete operations), #2070 (DiskInfo calls), #1542 (multipart IOPS) |
| Your Environment | Priority | Reason |
|---|---|---|
| Multi-site replication | Immediate | 10 critical consistency fixes |
| High-throughput (100Gbps+) | Immediate | Lock contention and hot path fixes |
| Heavy concurrent reads | This Week | N-fold RPC reduction via coalesced locking |
| Long-running clusters | This Week | Memory leak and resource pooling fixes |
| S3 Tables / Iceberg | This Week | 12 locking and transaction fixes |
| Standard deployments | Planned | Cumulative stability improvements |
| Category | Commit Count | Description |
|---|---|---|
| Tables/Iceberg | 178 | S3 Tables API, Iceberg catalog |
| Delta Sharing | 15 | Delta Sharing protocol |
| Inventory | 49 | Bucket inventory management |
| Batch | 140 | Batch operations and catalog |
| QoS | 21 | Rate limiting and throttling |
| Rolling Update | 126 | Zero-downtime updates |
| License | 88 | Enterprise licensing |
| Metrics/Prometheus | 307 | Observability |
| Healing | 547 | Data healing and recovery |
| Replication | 470 | Bucket replication |
| Decommission | 88 | Pool decommissioning |
| Erasure | 178 | Erasure coding |
| Locking | 457 | Distributed locking |
| ILM/Lifecycle | 265 | Information lifecycle management |
| FTP/SFTP | 27 | Protocol support |
| Lambda | 14 | Object Lambda |
| Site Replication | 140 | Multi-site replication |
| Grid/RPC | 161 | Internal RPC framework |
| Encryption/KMS | 396 | Key management |
| IAM/Auth | 690 | Identity and access management |
| Tiering | 129 | Warm/cold tiering |
| Scanner | 90 | Background scanning |
| Console | 231 | Web console |
| Metric | AIStor | OSS | Difference |
|---|---|---|---|
| Unique cmd/*.go files | - | - | +245 files |
| Internal packages | 53 | 29 | +24 packages |
| Metrics V3 files | 45+ | 26 | +19 files |
| Total commits | 13,061 | - | - |
Commits: 178 | Files: 42+ | Status: Production-ready
Complete Apache Iceberg REST Catalog implementation for data lakehouse architectures.
| PR | Description |
|---|---|
| #2806 | Migrate catalog API tests from Python to Go |
| #2789 | Rework locking to reduce contention |
| #2804 | Binary search for pagination token lookup |
| #2776 | Reduce memory allocations in registry |
| #2774 | Eliminate redundant metadata lookups |
| #2757 | Validate bucket configs before warehouse upgrade |
| #2725 | RegisterView (AIStor extension) |
| #2703 | Switch from JSON to msgpack format |
| #2695 | Block bucket ops on table bucket |
| #2609 | Shard namespace.json |
| #2548 | Recoverable transactions |
| #2491 | Multi-level namespaces |
| #2276 | Commit-view implementation |
| #2249 | AuthSys with cache |
| #2126 | Metrics v3 integration |
| #2060 | Views API implementation |
| #1949 | Register-table endpoint |
| #1911 | Return last consistent state on LoadTable |
| #1806 | Transaction hierarchy refactor |
| #1748 | Optimize multi-table transaction locking |
| #1700 | Staged table lifecycle |
| #1672 | SigV4 authentication support |
| ecd55c948 | Initial iceberg catalog API |
Warehouses: Create, List, Get, Delete Namespaces: Create, List, Get, Delete, Update Properties, HEAD Tables: Create, Load, Commit, Delete, Register, Rename, HEAD Views: Create, Load, Replace, Delete, Register (AIStor Extension), HEAD Transactions: CommitMultiTableTransaction
Commits: 15+ | Files: 34+ | Status: Production-ready
Complete Delta Sharing Protocol v1.0 implementation.
| PR | Description |
|---|---|
| #2450 | Initial Delta Sharing implementation |
| #2541 | Unit tests and Prometheus v3 metrics |
| #2614 | TTFB and request count metrics |
| #2583 | Databricks compatibility (endStreamAction) |
| #2743 | JWT token isolation |
| #2727 | Error code fixes |
| #2711 | Token management fixes |
- Bearer token and OAuth 2.0 M2M authentication
- Delta Universal Format (UniForm) for Iceberg compatibility
- Change Data Feed (CDF) support
- Time travel queries
- Predicate pushdown
- Snapshot caching (5-minute TTL)
Commits: 49 | Status: Production-ready
Comprehensive bucket inventory with job lifecycle management.
| PR | Description |
|---|---|
| #1357 | Bucket Inventory APIs |
| #1510 | Job control APIs (suspend/resume/cancel) |
| #1603 | Prometheus metrics |
| #1762 | Automatic recovery for corrupt metadata |
| #1808 | Status API records count |
| #1867 | AIStor Tables integration |
| #2033 | Integration tests |
| #2055 | v2 prometheus endpoint |
| #2095-#2099 | Comprehensive integration tests |
| #2153 | Prometheus metric descriptions |
| #2512 | LastUpdate field |
| #2568 | Retry logic and InstanceID |
- Job state machine (PENDING → RUNNING → COMPLETED/SUSPENDED/CANCELED)
- Parquet, CSV, JSON output formats
- Integration with AIStor Tables for Iceberg format
- Automatic recovery from corrupt metadata
- Prometheus metrics
Commits: 21 | Status: Production-ready
Bucket-level Quality of Service enforcement.
| PR | Description |
|---|---|
| #1389 | Bucket level QoS enforcement |
| #2008 | Integration tests |
| #1873 | xsync.Map for performance |
| #1882 | Data race elimination |
| #2263 | Failure mode tests |
| #2455 | API management and metrics |
| #2551 | Deterministic assertions |
- Concurrency limiting per bucket
- Bandwidth throttling
- Connection limits
- Activity filtering
Commits: 126 | Status: Production-ready
Zero-downtime rolling updates for cluster upgrades.
| PR | Description |
|---|---|
| #1512 | Rolling update/restart implementation |
| #1754 | Grid request versioning and compression |
| #1834 | Real-time update events streaming |
| #2119 | Update cancel and downgrade |
| #1967 | Binary distribution tree topology |
| #1841 | Integration tests |
| #1807 | Enhancements and bug fixes |
| #1796 | UX improvements |
| #1830 | 0 seconds wait time support |
| #2639 | API version constraint tests |
- Real-time event streaming
- Tree topology binary distribution
- Update cancellation and downgrade
- Version constraint enforcement
Commits: 140 (batch total) | Status: Production-ready
Enhanced batch processing with catalog export capabilities.
| PR | Description |
|---|---|
| #493 | Initial batch catalog implementation |
| #946 | Resume on restart |
| #1090 | Parquet backend format |
| #1159 | AWS S3 metadata schema |
| #1333 | Refactor to internal inventory package |
| #1355 | Buffered parquet row writing |
| #1367 | Speed optimization |
| #1525 | AccessTime support |
| #1612 | MaxFileSizeHint |
- CSV, Parquet (Snappy), JSON
- AWS S3-compatible schema
Commits: 14 | Status: Production-ready
Lambda function invocation on S3 operations with AI workload support.
| PR | Description |
|---|---|
| #122 | PromptObject API |
| #1065 | Forward 2xx responses |
| #1089 | Test cases |
| #1337 | Reconfigurable timeout |
Commits: 27 | Status: Production-ready
Built-in FTP/SFTP servers for legacy application compatibility.
| PR | Description |
|---|---|
| #2011 | FTPS cert reload without restart |
| #20914 | Trailing headers for upload |
| #21251 | Force TLS option |
Commits: 5 | Status: Production-ready
AWS S3 Express One Zone compatibility.
| PR | Description |
|---|---|
| #549 | S3 Express zone requirements |
| #572 | Append object behavior |
| #609 | Unsorted listing |
| #814 | CreateSession API |
| #866 | mpCache support |
Commits: 88 | Status: Production-ready
Non-disruptive enterprise licensing with background renewal.
| PR | Description |
|---|---|
| #1817 | Store license in config |
| #2691 | Non-blocking startup redesign |
| #2765 | Consolidate licenseManager |
| #2810 | Config license before token lookup |
| #2504 | Feature restriction for free tier |
| #2523 | Block tiering for free tier |
| #2643 | Block free license on distributed |
- Non-blocking startup
- Background renewal
- SIGHUP throttling
- Tier-based feature enforcement
Commits: 4 | Status: Production-ready
Add storage pools without server restart.
| PR | Description |
|---|---|
| #2302 | SIGHUP signal and config.yaml support |
| #2597 | Extend config.yaml for CLI flags |
| #2635 | Update S3PeerSys after reload |
| #2642 | Heal buckets to new pool |
Commits: 4 | Status: Production-ready
Node maintenance mode for troubleshooting.
| PR | Description |
|---|---|
| #1433 | Cordon functionality |
| #2077 | Write quorum check |
| #2092 | HTTP listener context tests |
| #2118 | Draining nodes handling |
Commits: 3 | Status: Production-ready
Kernel-level storage protection.
| PR | Description |
|---|---|
| #1945 | Kernel-level storage protection |
| #2009 | eBPF LSM module |
| #2534 | Go-based eBPF loader (cilium/ebpf) |
Commits: 1 | Status: Production-ready
| PR | Description |
|---|---|
| #281 | HTTP3.0 support for all S3 API calls |
Commits: 10 | Status: Production-ready
Durable logging for API, errors, and audit events.
| PR | Description |
|---|---|
| #2173 | Persistent log recorder |
| #2463 | External targets (webhook/kafka) |
| #2751 | Lock file during drive rotation |
| #2752 | Race condition fixes |
| #2411 | Disabled by default |
Commits: 7 | Status: Production-ready
Admin API for detailed object inspection.
| PR | Description |
|---|---|
| #581 | ObjectSummary API implementation |
| #688 | Bitrot checking and version listing |
| #765 | API updates |
| #859 | v4/object-summary admin API |
| #1131 | Inline/non-inline data handling |
Commits: 8 | Status: Production-ready
Support for special characters in object names.
| PR | Description |
|---|---|
| #1513 | Explicit extended naming mode persistence |
| #1540 | Extended naming tests |
| #1569 | Mint tests for extended mode |
| #1628 | Decommission/rebalance handling |
| #1632 | Reject replication from Extended to Safe mode |
| #2188 | Preserve naming mode on drive format |
Commits: 10+ | Status: Production-ready
New admin API version with resource querying.
| PR | Description |
|---|---|
| #489 | New Admin API v4 |
| #953 | Admin Query APIs |
| #1369 | Sorting support |
| #1618 | Drive query metrics |
| #1898 | Drive state tracking |
| #1924 | Healing info in Drive Query |
| #2019 | Set query results info |
- ClusterQueryHandler
- ServicesQueryHandler
- PoolsQueryHandler
- NodesQueryHandler
- DrivesQueryHandler
- ErasureSetsQueryHandler
- ServerAPIStatsHandler
- ClusterSummaryHandler
Commits: 3 | Status: Production-ready
Goroutine and memory monitoring with health protection.
| PR | Description |
|---|---|
| #478 | Threshold-based dumps |
| #2072 | Memory/goroutine monitoring |
| #2631 | Thread pressure with health endpoint protection |
Commits: 2 | Status: Production-ready
N-fold RPC reduction for concurrent readers.
| PR | Description |
|---|---|
| #2768 | Coalesced read locks for distributed locking |
| #2802 | Write lock contention fix |
| PR | Description | Impact |
|---|---|---|
| #2660 | Eliminate path.Clean allocations | Reduced GC in listings |
| #2659 | Migrate to generic Set[T] | Better type safety |
| #2667 | strings.Builder for replication | Fewer allocations |
| #2662 | Cache compiled regex | Faster filtering |
| #2654 | Optimize MRF reading | Faster healing |
| #2650 | Precompile regex in isValidChars | Hot path optimization |
| #2638 | Optimize PUT hot path | High-speed network |
| #2596 | Reduce heap escapes | Reduced GC |
| #2557 | Reduce read allocs | Memory optimization |
| #1506 | xsync.Map migration | Lock-free maps |
| #1194 | AVX512 crc64-nvme and crc32 | Faster checksums |
| PR | Description | Impact |
|---|---|---|
| #2640 | DeleteVersions Grid RPC migration | Faster deletes |
| #2544 | Heap-based k-way merge for ListObjects | Faster listings |
| #2438 | Reduce delete disk operations | Reduced IOPS |
| #1542 | Reduce CompleteMultipart IOPS | Faster completion |
| #2048 | ServerInfo caching | Better performance |
| #2070 | Eliminate repeated DiskInfo calls | Reduced disk calls |
| #2566 | Pooled erasure buffers | Memory reuse |
| #2567 | Pool decompressors | Resource reuse |
| #2196 | CRC32C bitrot for ARM64/BF3 | Faster checksums |
| #18461 | WebSocket grid connectivity | Better internode |
| PR | Description | Impact |
|---|---|---|
| #2768 | Coalesced read locks | N-fold RPC reduction |
| #2789 | Tables locking rework | Better concurrency |
| #2073 | Lease-based locking | No stale locks |
| #2110 | Reduce cleanup interval | Faster cleanup |
| PR | Description |
|---|---|
| #1444 | Precise MRF heal conditions |
| #879 | Write lock only during commit |
| #919 | Clean abandoned parts |
| #937 | Workers for scanner items |
| #1041 | MRF non-blocking lock |
| #1147 | 48-hour offline triggers whole-drive healing |
| #2558 | Move abandoned children to MRF |
| #251 | Streaming RPC for CheckParts |
| PR | Description |
|---|---|
| #2415 | Dynamic ILM policy reload |
| #2400 | NewerNoncurrentVersions support |
| #622 | Avoid objects without quorum |
| #509 | Ignore not found buckets |
| #871 | Skip immediate purge option |
| #2262 | Resume after restart test |
| PR | Description |
|---|---|
| #15483 | Pool-level rebalance |
| #2511 | Comprehensive integration tests |
| #1628 | Extended mode handling |
| PR | Description |
|---|---|
| #1447 | Improve init and heal |
| #1947 | IAM parity check |
| #2013 | ILM expiry bug fix |
| #2457 | Preserve retention/versioning |
| #2608 | Race condition fixes |
| #2475 | Console UI integration |
| PR | Description |
|---|---|
| #2654 | Optimize MRF reading |
| #2558 | Move abandoned children to MRF |
| #1444 | Precise heal conditions |
| #1041 | Non-blocking lock |
| #1040 | Avoid healing with offline drives |
| #8470 | Initial MRF implementation |
19 unique AIStor metrics files:
- metrics-v3-batch.go
- metrics-v3-bucket-batch.go
- metrics-v3-cluster-site-replication.go
- metrics-v3-debug-heal.go
- metrics-v3-delta-sharing.go
- metrics-v3-docs-gen.go
- metrics-v3-heal.go
- metrics-v3-iam.go
- metrics-v3-kms.go
- metrics-v3-lambda.go
- metrics-v3-locks.go
- metrics-v3-software.go
- metrics-v3-stdout.go
- metrics-v3-system-drive-smart.go
- metrics-v3-system-network-interface.go
- metrics-v3-tables.go
- metrics-v3-tier.go
| PR | Description |
|---|---|
| #552 | OpenTelemetry distributed tracing |
| #2165 | Admin trace for Tables |
| #360080385 | Delta Sharing tracing |
| #259 | Grid RPC stream traces |
| #252 | KMS tracing |
| #943 | Direct telemetry export |
| PR | Description |
|---|---|
| #2629 | S.M.A.R.T. disk health metrics |
| #2696 | Fix excessive logging |
internal/batch - Batch job processing
internal/bigcache - High-performance caching
internal/context - Delayed context cancellation
internal/goroutine - Goroutine utilities
internal/iam - IAM policy evaluation
internal/iammap - IAM mapping utilities
internal/inventory - Inventory job system
internal/itertools - Go 1.22+ iterator utilities
internal/ldaputils - LDAP helpers
internal/metrics - Metrics generation
internal/mformat - Metadata formatting
internal/objects - Object validators
internal/path - Path utilities
internal/qos - QoS/rate limiting
internal/race - Race detection
internal/reqs - Request utilities
internal/singleflight - Request deduplication
internal/smart - SMART drive monitoring
internal/testutils - Testing utilities
internal/tmpfile - Temporary file handling
internal/traceevents - Event tracing
internal/windowed - Windowed operations
internal/xbufio - Extended buffered I/O
internal/xstrings - String utilities
AIStor includes the enterprise console:
github.com/miniohq/aistor-consolev0.0.37github.com/miniohq/aistor-operator
github.com/miniohq/license/go/license
github.com/apache/iceberg-go v0.4.1
github.com/substrait-io/substrait v0.78.1
github.com/parquet-go/parquet-go v0.24.0
ecd55c948 - Initial iceberg catalog API implementation
#1672 - SigV4 authentication
#1700 - Staged table lifecycle
#1748 - Optimize multi-table locking
#1806 - Transaction hierarchy refactor
#1911 - Last consistent state on LoadTable
#1949 - Register-table endpoint
#2060 - Views API
#2126 - Metrics v3 integration
#2249 - AuthSys with cache
#2276 - Commit-view
#2491 - Multi-level namespaces
#2548 - Recoverable transactions
#2609 - Shard namespace.json
#2703 - JSON to msgpack
#2725 - RegisterView extension
#2789 - Locking rework
| PR | Description |
|---|---|
| #247 | Full Object Checksums |
| #401 | Optimized crc64nvme |
| #496 | XXH3 bitrot for low-end CPUs |
| #1163 | CRC64-NVME by default |
| #1194 | AVX512 crc64-nvme and crc32 |
| #2196 | CRC32C for ARM64/BF3 |
| #2398 | Automatic Multipart Checksums |
| PR | Description |
|---|---|
| #263 | Migrate to franz-go from sarama |
| #1187 | Kerberos authentication |
| #366 | Global event queue systems |
| #2463 | External log targets |
| Feature | AIStor | OSS |
|---|---|---|
| Total Commits Analyzed | 13,061 | - |
| Unique cmd Files | +245 | - |
| Internal Packages | 53 | 29 |
| Metrics V3 Files | 45+ | 26 |
| Data Lakehouse | ||
| S3 Tables API (Iceberg) | Yes (178 commits) | No |
| Delta Sharing Protocol | Yes (15+ commits) | No |
| Protocol Support | ||
| FTP/SFTP Servers | Yes | No |
| HTTP/3 (QUIC) | Yes | No |
| Object Lambda | Yes | No |
| S3 Express Zone | Yes | No |
| Operations | ||
| Inventory System | Yes (49 commits) | No |
| Enhanced Batch Catalog | Yes (140 commits) | Basic |
| Rolling Updates | Yes (126 commits) | No |
| Pool Hot-Reload | Yes | No |
| Cordon Functionality | Yes | No |
| QoS/Rate Limiting | Yes (21 commits) | No |
| Monitoring | ||
| SMART Drive Monitoring | Yes | No |
| Admin Query APIs | Yes (10+ endpoints) | No |
| OpenTelemetry | Enhanced (40+ commits) | Basic |
| Thread Pressure Monitoring | Yes | No |
| Performance | ||
| Coalesced Locks | Yes | No |
| BigCache | Yes | No |
| xsync Migration | Yes | No |
| Security | ||
| eBPF Deletion Protection | Yes | No |
| Enterprise | ||
| License Management | Yes (88 commits) | No |
| Enterprise Console | Yes | No |
| Extended Naming Mode | Yes | No |
| Object Summary API | Yes | No |
| Stability | ||
| Healing Commits | 547 | - |
| Replication Commits | 470 | - |
| Site Replication Commits | 140 | - |
| Locking Commits | 457 | - |
| Decommission Commits | 88 | - |
MinIO AIStor represents the most comprehensive enterprise evolution of MinIO OSS, with 13,061 commits delivering:
-
Data Lakehouse Leadership: Complete S3 Tables API (178 commits) and Delta Sharing protocol (15+ commits) for modern analytics workloads
-
Enterprise Protocol Compatibility: FTP/SFTP, HTTP/3, Object Lambda, S3 Express Zone support
-
Operational Excellence:
- Inventory system (49 commits)
- Batch catalog (140 commits)
- Rolling updates (126 commits)
- QoS (21 commits)
- Pool hot-reload
- Cordon functionality
-
Comprehensive Observability:
- 307 metrics commits
- 19 additional metrics files
- OpenTelemetry integration (40+ commits)
- SMART drive monitoring
- Thread pressure monitoring
-
Performance Optimizations:
- Coalesced locking (N-fold RPC reduction)
- xsync migration for lock-free maps
- Memory allocation optimizations
- AVX512 checksum acceleration
-
Enhanced Stability:
- 547 healing commits
- 470 replication commits
- 457 locking commits
- 140 site replication commits
- 88 decommission commits
-
Enterprise Ready:
- License management (88 commits)
- Enterprise console
- eBPF kernel protection
- Extended naming mode
- Object Summary API
The codebase demonstrates a mature, production-ready enterprise storage platform suitable for demanding data lakehouse and analytics workloads.