Analysis based on full commit history review of 2800+ commits
- Executive Summary
- Codebase Statistics
- Enterprise Features
- Performance Improvements
- Stability & Reliability Improvements
- Architecture Differences
- Detailed Feature Breakdown
- Commit Analysis by Category
- Summary Comparison Table
MinIO AIStor is a comprehensive enterprise evolution of MinIO OSS, transforming the object storage platform into a production-ready data lakehouse solution. Based on analysis of 2800+ commits, AIStor includes:
- 245 unique source files in
cmd/not present in OSS - 24 new internal packages for enterprise functionality
- 19 additional metrics files for comprehensive observability
- Complete data lakehouse support via S3 Tables API and Delta Sharing
- Enterprise operational controls via inventory, QoS, rolling updates
- Significant performance optimizations including coalesced locking, memory optimizations
- Enhanced stability through improved healing, formatting, and drive management
| Metric | AIStor | OSS | Difference |
|---|---|---|---|
| Total cmd/*.go files | ~500+ | ~260 | +245 unique files |
| Internal packages | 53 | 29 | +24 packages |
| Metrics V3 files | ~45 | ~26 | +19 files |
| Total commits analyzed | 2800+ | ~200 recent | - |
internal/batch - Batch job processing framework
internal/bigcache - High-performance sharded 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 counter generation
internal/mformat - Metadata formatting
internal/objects - Object validators
internal/path - Path utilities
internal/qos - QoS/rate limiting
internal/race - Race detection utilities
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
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
Status: Production-ready | Files: 42+ dedicated files | Commits: 50+
The S3 Tables API provides a complete Apache Iceberg REST Catalog implementation, enabling seamless integration with modern data lakehouse architectures including Apache Spark, Trino, Dremio, and PyIceberg.
| PR | Description |
|---|---|
| #2808 | Scanner bucket config refresh during scan |
| #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 operations |
| #2774 | Eliminate redundant metadata lookups in hot paths |
| #2775 | Add MakeTableLive to reduce I/O |
| #2771 | Use max parity for catalog metadata writes |
| #2768 | Implement coalesced read locks |
| #2757 | Validate bucket configs before warehouse upgrade |
| #2725 | Implement RegisterView (AIStor extension) |
| #2703 | Switch from JSON to msgpack format |
| #2695 | Block bucket ops on table bucket |
| #2672 | Edge cases for races, correct error per spec |
| #2609 | Shard namespace.json to avoid contention |
| #2548 | Implement Recoverable on Transaction |
| #2491 | Support multi-level namespaces |
| #2276 | Commit-view implementation |
| #2249 | Add new AuthSys with cache |
| #2126 | Integrate Metrics v3 for Tables Catalog APIs |
| #2060 | Iceberg Catalog Views API implementation |
| #1949 | Register-table endpoint |
| #1911 | Return last consistent state on LoadTable |
| #1806 | Refactor transaction hierarchy |
| #1771 | Non-blocking locks for multi-table transactions |
| #1748 | Optimize multiple lock holding during multi-table transaction |
| #1700 | Enforce staged table lifecycle |
| #1682 | IAM user access tests with s3tables actions |
| #1672 | Support Tables with SigV4 authentication |
Warehouse Management:
POST /v1/warehouses- CreateWarehouseGET /v1/warehouses- ListWarehousesGET /v1/warehouses/{warehouse}- GetWarehouseDELETE /v1/warehouses/{warehouse}- DeleteWarehouse
Namespace Operations:
POST /v1/warehouses/{warehouse}/namespaces- CreateNamespaceGET /v1/warehouses/{warehouse}/namespaces- ListNamespacesDELETE /v1/warehouses/{warehouse}/namespaces/{namespace}- DeleteNamespacePOST /v1/warehouses/{warehouse}/namespaces/{namespace}/properties- UpdateNamespaceProperties
Table Operations:
POST /v1/warehouses/{warehouse}/namespaces/{namespace}/tables- CreateTableGET /v1/warehouses/{warehouse}/namespaces/{namespace}/tables/{table}- LoadTablePOST /v1/warehouses/{warehouse}/namespaces/{namespace}/tables/{table}- CommitTableDELETE /v1/warehouses/{warehouse}/namespaces/{namespace}/tables/{table}- DeleteTablePOST /v1/warehouses/{warehouse}/namespaces/{namespace}/register- RegisterTablePOST /v1/warehouses/{warehouse}/tables/rename- RenameTable
View Operations:
POST /v1/warehouses/{warehouse}/namespaces/{namespace}/views- CreateViewGET /v1/warehouses/{warehouse}/namespaces/{namespace}/views/{view}- LoadViewPOST /v1/warehouses/{warehouse}/namespaces/{namespace}/views/{view}- ReplaceViewPOST /v1/warehouses/{warehouse}/namespaces/{namespace}/views/register- RegisterView (AIStor Extension)
Transactions:
POST /v1/warehouses/{warehouse}/transactions/commit- CommitMultiTableTransaction
Status: Production-ready | Files: 34+ dedicated files | Commits: 15+
Complete implementation of the Delta Sharing Protocol v1.0, enabling secure, governed data sharing across organizations without data copying.
| PR | Description |
|---|---|
| #2450 | Initial Delta Sharing protocol implementation |
| #2541 | Add unit tests and Prometheus v3 metrics |
| #2614 | Add prometheus TTFB and request count metrics |
| #2583 | endStreamAction inclusion for Databricks compatibility |
| #2743 | JWT token isolation for Delta Sharing API endpoints |
| #2727 | Error code fixes |
| #2711 | Token management issues fix |
| #2694 | Regenerate token credentials when share tables updated |
| #2607 | Validate page token in pagination |
| #2497 | Admin API to use share names, improve error handling |
Discovery (/_delta-sharing/v1):
GET /shares- ListSharesGET /shares/{share}- GetShareGET /shares/{share}/schemas- ListSchemasGET /shares/{share}/schemas/{schema}/tables- ListTablesGET /shares/{share}/all-tables- ListAllTables
Table Access:
GET /shares/{share}/schemas/{schema}/tables/{table}/version- GetTableVersionGET /shares/{share}/schemas/{schema}/tables/{table}/metadata- GetTableMetadataPOST /shares/{share}/schemas/{schema}/tables/{table}/query- QueryTable
Admin API (/minio/admin/v4/delta-sharing):
- Share CRUD operations
- Token management (Create, List, Delete)
- Profile access
- Bearer token authentication (dapi prefix tokens)
- OAuth 2.0 M2M authentication
- Delta Universal Format (UniForm) for Iceberg compatibility
- Change Data Feed (CDF) support
- Time travel queries
- Predicate pushdown (partition + statistics filtering)
- Deletion vectors support
- Snapshot caching (5-minute TTL)
Status: Production-ready | Files: 20+ files | Commits: 30+
Comprehensive bucket inventory management with sophisticated job lifecycle control.
| 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 written count |
| #1871 | Inventory status fields |
| #2033 | Basic integration tests |
| #2055 | v2 prometheus endpoint metrics |
| #2095 | Periodic tests |
| #2096 | Control tests |
| #2097 | Multinode tests |
| #2098 | Resume tests |
| #2099 | Scale tests |
| #2153 | Improve v2 and v3 Prometheus metric descriptions |
| #2161 | Set content-type for parquet files |
| #2258 | Metrics verification tests |
| #2270 | Prevent null files array in manifest JSON |
| #2412 | Identity-based synchronization in lifecycle tests |
| #2512 | Populate LastUpdate field in job status |
| #2568 | Retry logic for metadata save and InstanceID on resume |
POST /inventory/jobs - Create inventory job
GET /inventory/jobs - List inventory jobs
GET /inventory/jobs/{id} - Get job details
DELETE /inventory/jobs/{id} - Cancel inventory job
POST /inventory/jobs/{id}/suspend - Suspend job
POST /inventory/jobs/{id}/resume - Resume job
PENDING → RUNNING → COMPLETED
↓ ↓
FAILED SUSPENDED → RUNNING
↓
CANCELED
Status: Production-ready | Commits: 15+
Bucket-level Quality of Service enforcement for request throttling and resource management.
| PR | Description |
|---|---|
| #1389 | Bucket level QoS enforcement |
| #2008 | Basic integration tests |
| #2155 | QoS metrics regression fix |
| #1873 | xsync.Map for QoS Manager |
| #1882 | Data race elimination |
| #2263 | Failure mode tests |
| #2455 | API management and metrics handling |
| #2551 | Deterministic assertions in integration tests |
| #2592 | Clean up comments and standardize labels |
| #2698 | Stabilize racy integration tests |
- Concurrency limiting per bucket
- Bandwidth throttling
- Connection limits
- Activity filtering by operation type
- Per-bucket rate limiting policies
Status: Production-ready | Commits: 20+
Zero-downtime rolling update capability for cluster upgrades.
| PR | Description |
|---|---|
| #1512 | Implement rolling update/restart |
| #1754 | Grid request versioning and compression |
| #1834 | Stream real-time update events |
| #2119 | Support update cancel and downgrade |
| #1967 | Optimize binary distribution tree topology |
| #1841 | Rolling upgrade integration tests |
| #1807 | Enhancements and bug fixes |
| #1796 | More changes for better UX |
| #1815 | Allow updating missed nodes |
| #1830 | Support 0 seconds wait time |
| #1901 | Do not fail when process takes > 5 minutes |
| #2639 | API version constraint tests |
| #2700 | Stabilize racy rolling update tests |
- Real-time update event streaming
- Binary distribution via tree topology
- Update cancellation and downgrade
- Missed node recovery
- Version constraint enforcement
Status: Production-ready | Commits: 20+
Enhanced batch processing with support for catalog exports in multiple formats.
| PR | Description |
|---|---|
| #493 | Initial batch catalog implementation |
| #720 | Compression option |
| #705 | JSON output format |
| #946 | Resume on restart |
| #1090 | Parquet backend format |
| #1159 | AWS S3 metadata schema generation |
| #1317 | v2 template documentation |
| #1333 | Refactor internal code to inventory package |
| #1355 | Buffered parquet row writing |
| #1356 | v2 template generation |
| #1367 | Speed update |
| #1443 | Limits on retries |
| #1525 | AccessTime support |
| #1544 | Adjust rows written per file |
| #1612 | Destination.MaxFileSizeHint |
| #2452 | Record count and file splitting fixes |
- CSV
- Parquet (with Snappy compression)
- JSON
- AWS S3-compatible schema
Status: Production-ready | Commits: 10+
Lambda function invocation on S3 operations with PromptObject API for AI workloads.
| PR | Description |
|---|---|
| #122 | Implement PromptObject API |
| #1065 | Forward 2xx responses from Lambda |
| #1089 | Test cases for object lambda handler |
| #1337 | Reconfigurable response header timeout |
| #1763 | Improve error handling |
- Lambda function invocation on GET requests
- PromptObject API for AI inference
- Presigned URL support (1 hour default)
- Response header timeout configuration
Status: Production-ready | Files: 4 files
Built-in FTP and SFTP servers for legacy application compatibility.
cmd/ftp-server.go- FTP server implementationcmd/ftp-server-driver.go- FTP drivercmd/sftp-server.go- SFTP server implementationcmd/sftp-server-driver.go- SFTP driver
| PR | Description |
|---|---|
| #2011 | Support FTPS reload certs without restart |
| #20914 | Enable trailing headers for upload |
| #20938 | Enable trailing headers (FTP) |
| #21251 | Allow FTPS to force TLS |
- TLS/SSL encryption (FTPS)
- SSH key and password authentication
- Virtual filesystem mapping to buckets
- Session management
Status: Production-ready | Commits: 10+
New admin API version with comprehensive resource querying capabilities.
| PR | Description |
|---|---|
| #489 | New Admin API v4 |
| #953 | New Admin Query APIs |
| #1369 | Sorting to Query APIs |
| #1618 | Drive query metrics |
| #1898 | Detailed drive state tracking |
| #1924 | Basic healing info to Drive Query API |
| #2019 | More info to set query results |
| Endpoint | Handler | Description |
|---|---|---|
GET /cluster/query |
ClusterQueryHandler | Cluster overview |
GET /services/query |
ServicesQueryHandler | Services status |
GET /pools/query |
PoolsQueryHandler | Pool information |
GET /nodes/query |
NodesQueryHandler | Node details |
GET /drives/query |
DrivesQueryHandler | Drive inventory |
GET /erasure-sets/query |
ErasureSetsQueryHandler | Erasure set config |
GET /api-stats |
ServerAPIStatsHandler | API statistics |
GET /cluster/summary |
ClusterSummaryHandler | Cluster summary |
Status: Production-ready | Commits: 5+
Comprehensive SMART attribute monitoring for proactive drive health management.
| PR | Description |
|---|---|
| #2629 | Add S.M.A.R.T. disk health monitoring metrics |
| #2696 | Fix excessive logging into prometheus metrics |
- SATA and NVMe attribute monitoring
- Drive health prediction
- Threshold-based alerting
- Temperature monitoring
- Wear leveling indicators
- Error counters
Status: Production-ready | Commits: 15+
Non-disruptive enterprise licensing with background renewal.
| PR | Description |
|---|---|
| #1817 | Store license in config, allow start without license |
| #2691 | Redesign license management with non-blocking startup |
| #2765 | Consolidate license management into single licenseManager |
| #2810 | Set config license before token lookup |
| #2504 | Reject distributed, replication, support features with free tier |
| #2523 | Block tiering feature for free tier license |
| #2547 | Reject PutBucketLifecycleConfiguration with free tier |
| #2556 | Use IsPaidTier() to check for free tier |
| #2643 | Block free license on distributed setup |
- Non-blocking startup
- Background renewal
- SIGHUP throttling (5-second minimum)
- Config persistence
- Tier-based feature enforcement
Status: Production-ready | Commits: 5+
Hot addition of storage pools without server restart.
| PR | Description |
|---|---|
| #2302 | Implement pool hot-reload via SIGHUP signal and config.yaml |
| #2597 | Extend config.yaml to support most server CLI flags |
| #2635 | Update S3PeerSys after pool hot-reload |
| #2642 | Heal buckets to new pool as part of hot reload |
Status: Production-ready | Commits: 3+
Node maintenance mode for troubleshooting.
| PR | Description |
|---|---|
| #1433 | Cordon functionality to take node out of cluster |
| #2077 | Cordon should check write quorum not read quorum |
| #2092 | Tests for http listener cordon context |
| #2118 | Draining nodes considered offline in maintenance healthcheck |
Status: Production-ready | Commits: 3+
Kernel-level storage protection for MinIO data.
| PR | Description |
|---|---|
| #1945 | Kernel-level storage protection for MinIO AIStor data |
| #2009 | eBPF LSM module for MinIO deletion protection |
| #2534 | Rewrite eBPF loader from C to Go using cilium/ebpf |
Status: Production-ready | Commits: 2+
QUIC protocol support for S3 API calls.
| PR | Description |
|---|---|
| #281 | Add http3.0 support for all S3 API calls |
Status: Production-ready | Commits: 5+
Persistent logging for API, errors, and audit events.
| PR | Description |
|---|---|
| #2173 | Persistent log recorder for API, Errors and Audit |
| #2463 | External log targets (webhook/kafka) and unify log recorder config |
| #2751 | Ensure lock file always exists during drive rotation |
| #2752 | Log recorder race condition and overflow notifications |
Status: Production-ready | Commits: 10+
New drive formatting algorithm with improved reliability.
| PR | Description |
|---|---|
| #190 | Improve formatting drives in a MinIO cluster |
| #370 | Design docs for new format algorithm |
| #335 | Simplify retry in waitForFormattingDrives |
| #337 | Allow less quorum to format drives |
| #656 | Ignore getattr error during migration to format.bin |
| PR | Description | Impact |
|---|---|---|
| #2660 | Eliminate path.Clean allocations in metacache merge | Reduced GC pressure in listings |
| #2659 | Migrate all map-based sets to generic Set[T] | Cleaner API, better type safety |
| #2667 | strings.Builder for replication status | Fewer allocations |
| #2662 | Cache compiled regex in inventory filters | Faster filtering |
| #2654 | Optimize MRF reading and parsing | Faster healing |
| #2651 | Remove unnecessary slice allocations in cleanReservedKeys | Reduced allocations |
| #2650 | Precompile regex in isValidChars | Hot path optimization |
| #2646 | Read tables registry file once | Reduced I/O |
| #2638 | Optimize PUT request hot path | High-speed network optimization |
| #2596 | Reduce heap escapes in hot paths | Reduced GC pressure |
| #2557 | Reduce read allocs | Memory optimization |
| #1243 | Improve buffer pool usage for streaming signatureV4 | Better buffer reuse |
| PR | Description | Impact |
|---|---|---|
| #2640 | Migrate DeleteVersions from HTTP REST to Grid RPC | Faster deletes |
| #2544 | Heap-based k-way merge for ListObjects | Faster listings |
| #2438 | Reduce DeleteObject/DeleteVersions/DeleteBulk disk operations | Reduced IOPS |
| #1542 | Reduce CompleteMultipart IOPS | Faster multipart completion |
| #2048 | ServerInfo with reduced TTL and Grid-based connectivity | Better caching |
| #2070 | Eliminate repeated DiskInfo calls in IO metrics | Reduced disk calls |
| #1499 | Admin info endpoint performance optimization | Faster admin info |
| #2566 | Use pooled erasure buffers | Memory reuse |
| #2567 | Pool decompressors | Resource reuse |
| #2196 | CRC32C based bitrot writer/reader for ARM64/BF3 | Faster checksums |
| PR | Description | Impact |
|---|---|---|
| #2768 | Implement coalesced read locks for distributed locking | N-fold RPC reduction |
| #2789 | Rework locking to reduce contention in Tables | Better concurrency |
| #2073 | Lease-based locking to eliminate stale locks | No stale locks |
| #2110 | Reduce expired locks cleanup interval to 5 minutes | Faster cleanup |
| #947 | Re-implement lockers with tests | Improved correctness |
| #838 | Non-blocking locks for local setups | Lower latency |
| #850 | Use non-blocking locks when it makes sense | Better responsiveness |
| PR | Description | Impact |
|---|---|---|
| #149 | Cache for xl.meta for non-inlined objects | Faster reads |
| #141 | Cache inlined content with metadata | Reduced I/O |
| #556 | Read from metadata cache when present for List() | Faster listings |
| #239 | Cluster StorageInfo cache | Reduced computation |
| #241 | Limit concurrent usage cache loading | Resource control |
| PR | Description |
|---|---|
| #1444 | More precise conditions to trigger MRF heal |
| #879 | HealObject use write lock only during data commit |
| #919 | Clean abandoned parts in HealObject() |
| #937 | Workers for healing scanner items |
| #1041 | MRF use non-blocking lock |
| #1147 | 48 hours offline triggers whole-drive healing |
| #2558 | Move abandoned children healing from scanner to MRF |
| #273 | Retry healing from failed objects list |
| #128 | Do not abort updating .healing.bin during ongoing healing |
| #117 | Fix deep scan failing to heal objects |
| PR | Description |
|---|---|
| #2415 | Dynamic ILM policy reload during decommission |
| #2400 | Support ILM NewerNoncurrentVersions during pool decommission |
| #622 | Avoid objects without enough quorum |
| #509 | Ignore not found buckets |
| #871 | Allow skipping immediate purge as opt-in |
| #2262 | Integration test for decommission resume after restart |
| #2511 | Comprehensive rebalance integration tests |
| PR | Description |
|---|---|
| #809 | Drive offline tracker log |
| #1147 | 48 hours offline triggers whole-drive healing |
| #780 | Test for hot drive swapping |
| #2188 | Preserve object naming mode when formatting replacement drives |
| #310 | Resume healing drive after node restart |
| #296 | Heal object in suspended pool |
| PR | Description |
|---|---|
| #2127 | Race condition between three concurrent actors |
| #2608 | Race conditions in site-replication and metrics |
| #1751 | Data race in site replication peer edit operations |
| #1882 | Data race in qosManager access |
| #1681 | Data race in tests changing global modes |
| #1719 | Data race in EditPeerCluster |
| #932 | Race condition in updateGroupMembershipsForLDAP |
A major investment in AIStor has been the comprehensive Go-based integration test framework, replacing shell scripts with proper Go tests:
| PR | Description |
|---|---|
| #312 | Docker based test framework using Go |
| #1003 | Enable parallel execution |
| #1403 | Create logical groups of integration tests |
| #2429 | Makefile target to run ALL integration tests locally |
| #2587 | Parallelize mint workflow for faster CI |
AIStor includes the AIStor Console (enterprise console) instead of the OSS console:
github.com/miniohq/aistor-consolev0.0.37github.com/miniohq/aistor-operatorfor Kubernetes
AIStor-specific dependencies:
github.com/miniohq/aistor-console v0.0.37
github.com/miniohq/aistor-operator v0.0.0-20251223173359-e1ae8f267c44
github.com/miniohq/license/go/license v0.0.0-20260123063234-32a873c09b49
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
tables-api-errors.go tables-api-handlers.go
tables-api-interface.go tables-api-routes.go
tables-api-utils.go tables-catalog.go
tables-indexes.go tables-metrics.go
tables-object-layer-impl.go tables-recoverable.go
tables-recovery.go tables-state.go
tables-transactions.go tables-view-metadata.go
delta-log-parser.go delta-protocol-types.go
delta-sharing-admin-handlers.go delta-sharing-api-handlers.go
delta-sharing-auth.go delta-sharing-errors.go
delta-sharing-impl.go delta-sharing-oauth.go
delta-sharing-predicates.go delta-sharing-presign.go
delta-sharing-shares.go delta-sharing-storage.go
delta-sharing-tokens.go delta-sharing-types.go
delta-snapshot-cache.go delta-uniform-reader.go
| Category | Commit Count | Key Features |
|---|---|---|
| Tables API | 50+ | Iceberg catalog, views, transactions |
| Delta Sharing | 15+ | Protocol, OAuth, caching |
| Inventory | 30+ | Job management, metrics |
| Batch Catalog | 20+ | Parquet, JSON, resume |
| QoS | 15+ | Rate limiting, bucket limits |
| Rolling Updates | 20+ | Zero-downtime updates |
| Admin Query APIs | 10+ | Resource querying |
| Object Lambda | 10+ | PromptObject |
| License | 15+ | Non-blocking startup |
| Format V4 | 10+ | New formatting |
| Performance | 50+ | Memory, I/O, locking |
| Stability | 40+ | Healing, races, tests |
| Integration Tests | 100+ | Go test framework |
| Feature | AIStor | OSS |
|---|---|---|
| Data Lakehouse | ||
| S3 Tables API (Iceberg) | Yes (42+ files) | No |
| Delta Sharing Protocol | Yes (34+ files) | No |
| Protocol Support | ||
| FTP/SFTP Servers | Yes | No |
| HTTP/3 (QUIC) | Yes | No |
| Object Lambda | Yes | No |
| PromptObject API | Yes | No |
| Operations | ||
| Inventory System | Yes | No |
| Enhanced Batch Catalog | Yes | Basic |
| Rolling Updates | Yes | No |
| Pool Hot-Reload | Yes | No |
| Cordon Functionality | Yes | No |
| QoS/Rate Limiting | Yes | No |
| Monitoring | ||
| SMART Drive Monitoring | Yes | No |
| Admin Query APIs | Yes (8 endpoints) | No |
| Metrics V3 files | 45+ | 26 |
| Performance | ||
| Coalesced Locks | Yes | No |
| BigCache | Yes | No |
| Security | ||
| eBPF Deletion Protection | Yes | No |
| Enterprise | ||
| License Management | Yes | No |
| Enterprise Console | Yes | No |
| Architecture | ||
| Unique cmd files | +245 | - |
| Internal packages | 53 | 29 |
| Commits analyzed | 2800+ | - |
MinIO AIStor represents a comprehensive enterprise evolution of MinIO OSS with:
-
Data Lakehouse Leadership: Complete S3 Tables API (Iceberg) and Delta Sharing protocol support, positioning MinIO as a data lakehouse storage foundation
-
Enterprise Protocol Compatibility: FTP/SFTP servers, HTTP/3, Object Lambda enable seamless integration with legacy and modern systems
-
Operational Excellence: Inventory management, batch catalog, QoS, rolling updates, pool hot-reload, and cordon functionality provide fine-grained operational control
-
Comprehensive Observability: 19 additional metrics files, SMART drive monitoring, resource query APIs, persistent log recorder
-
Performance Optimizations: Coalesced locking (N-fold RPC reduction), BigCache, memory allocation optimizations, I/O optimizations
-
Enhanced Reliability: Improved healing, format V4, race condition fixes, eBPF protection, comprehensive integration test framework
-
Enterprise Ready: Non-disruptive licensing, enterprise console integration, Kubernetes operator support
The analysis of 2800+ commits demonstrates a mature, production-ready enterprise storage platform suitable for demanding data lakehouse and analytics workloads.