Software Specifications and Restrictions
Following is a list of software specifications and restrictions for version 3.7.2 of the Iguazio AI Platform ("the platform").
For a list of reserved names in the platform, see the reserved-names reference.
For a list of known issues for the current release, see the release notes.
(Note: For amount values, M = million; B = billion.)
General
| Replication factor | 2 |
| Maximum number of concurrent sessions | 100,000 |
| Maximum number of rules per data-access policy | 100 |
| Maximum number of users | 10,000 |
| Maximum number of user groups | 64 per user; 1,000 overall. Note: If a user is a member of more than 64 user groups, only the first 64 groups (which always includes the primary user group) are used for checking authorization. |
| Usernames | Usernames are subject to the following restrictions:
|
| User passwords | Use passwords are subject to the following restrictions:
|
| Project names | Project names must conform to the following restrictions (RFC 1123 DNS label-name requirements, a.k.a DNS-1123 label):
(See the MLRun project-name restrictions for information regarding upgrading old MLRun projects that don't meet these requirements.) |
| DNS dependency | Platform startup requires an accessible Domain Name System (DNS). |
Data Elements
| Maximum number of objects | The maximum supported number of objects depends on the size of the data-node memory and on the number of data nodes.
The
|
||||||||||||||||||||||||||||
| Maximum number of data containers |
|
||||||||||||||||||||||||||||
| Maximum number of collections per cluster | The maximum number of collections (tables/streams/directories) in a cluster depends on the size of the data-node memory.
|
||||||||||||||||||||||||||||
| Maximum elements in a collection (table/stream/directory) | The maximum elements in a collection equals the maximum number of objects per data node and depends on the size of the data-node memory.
|
||||||||||||||||||||||||||||
| Maximum object path size | The maximum size of the relative path to an object (file) within a given data container is 4,096 bytes. | ||||||||||||||||||||||||||||
| Maximum object size | The maximum size of an object (file) depends on the interface:
|
||||||||||||||||||||||||||||
| Maximum NoSQL-table item size | The maximum size of a NoSQL-table item (row) — i.e., the maximum total size of the item's attributes — is |
||||||||||||||||||||||||||||
| Displayed object size | Displayed object (file) sizes don't include the size of the object's attributes. | ||||||||||||||||||||||||||||
| Maximum number of distinct attribute names per container | 64,000 | ||||||||||||||||||||||||||||
| Maximum number of attributes per object | Between 400 and 1600 attributes, depending on the attribute type | ||||||||||||||||||||||||||||
| Maximum attribute size | The maximum object (item) attribute size is 61,200 bytes for string attributes and 1 MB for other attribute types, subject to the following restrictions:
|
||||||||||||||||||||||||||||
| Maximum number of shards in a stream | 4,096 | ||||||||||||||||||||||||||||
| Maximum stream retention period | 1 year | ||||||||||||||||||||||||||||
| Object names | Names of data objects (such as items and files) are subject to the general file-system naming restrictions, including a maximum length of 255 characters. In addition —
|
||||||||||||||||||||||||||||
| Container names | Container names are subject to the general file-system naming restrictions and the following additional restrictions:
|
||||||||||||||||||||||||||||
| Attribute names | Attribute names are subject to the general file-system naming restrictions and the following additional restrictions:
|
||||||||||||||||||||||||||||
| Sharding-key value | The value of an object's sharding key cannot contain periods, because the leftmost period in an object's primary-key value (name) is assumed to be a separator between sharding and sorting keys. | ||||||||||||||||||||||||||||
| "users" container |
|
||||||||||||||||||||||||||||
| Stream-shard file operations | Don't perform any file operations other than delete on stream-shard directories by using the Simple-Object Web API or the file-system interface (including commands that trigger such operations, such as |
File System
| File and directory names | All files and directories in the platform — including containers, tables, streams, and attributes — are subject to the file-naming restrictions of the Linux operating system.
Note The platform allows using the same name for a file and a directory that reside in the same path.
However, you cannot access such files and directories from the file-system interface because of the file-system naming restrictions.
|
| Moving and renaming files | The maximum file size when moving or renaming files using a local file-system commands is 30 GB. To move or rename a larger file, use an Hadoop FS command. |
| Moving (renaming) directories |
See also the specific Jupyter Notebook directory copy and move restrictions. |
| Sparse files | Sparse files are not supported: the physical space consumed by such files in the platform is the same as the logical space, including all holes. |
Security
| Authorization-policies distribution | In some cases, authorization-policies distribution can take up to 30 seconds. |
| Maximum number of imported IdP users | 1,000 |
| Symbolic links | For symbolic links, the platform checks the data-access policy rules and POSIX ACLs of both the source and destination locations. |
Expressions
| Maximum length of an expression | 8 KB |
| Maximum number of operators in an expression | 700 |
| Backslash in expressions | The backslash character (\) isn't supported within expressions in the current release. |
MLRun
| Maximum number of projects |
|
| Project names | See the general project-name restrictions. |
Nuclio
| Reserved names | The following names are reserved for internal use and cannot be used as the names of Nuclio functions or API gateways:
|
| Project names | See the general project-name restrictions. |
| Offline function deployment | As a general rule, you can deploy Nuclio functions also in air-gapped environments without an internet connection (a.k.a. "dark sites"). However, for code languages (function runtimes) that download files dynamically during the build, offline deployment might either require an additional effort or might not be possible. For example —
|
| Scale to zero | Functions that have been scaled to zero can only be awoken by using an HTTP trigger. To avoid scaling a function to zero, set its minimum-replicas configuration parameter to a value higher than zero. |
Web APIs
NoSQL Web API
| Maximum JSON body size | |
| Parallel range scan |
Streaming Web API
| Maximum |
|
| Maximum record size | 2 MB |
| Maximum number of records that can be added in a single |
1,000 |
| Maximum overall size of records that can be retrieved in a single |
Jupyter
| Scala notebooks | Running Scala code from a Jupyter notebook isn't supported in the current release.
Instead, run Scala code by using |
| Copying and moving (renaming) directories |
|
| Files and directories deletion from the Jupyter UI | To allow deletion of directories (folders) from the Jupyter UI, the trash mechanism is disabled for both files and directories, so deleted items are not moved to the trash and cannot be restored. |
V3IO Frames
| Maximum write DataFrame size | 120 MB |
| Attribute data types | See the github reference for the supported item-attribute data types. |
| Partitioned tables | The NoSQL backend ("nosql"|"kv") doesn't support writing partitioned tables (although you can read partitioned tables with Frames). |
Spark
NoSQL Spark DataFrame
| Write-buffer size | The default size of write buffers for NoSQL Spark DataFrames is 24 KB. The buffer size is automatically adjusted according to the specific write request but this affects the performance. |
| Non-string sorting key | Range-scan queries on a table with a non-string sorting-key attribute ignore the items' sorting-key values: the query's sharding-key value is still used to identify the relevant data slice more quickly, but the entire slice is scanned rather than scanning only the items within the query's sorting-keys range (as done for a string sorting key). The reason is that the lexicographic sorting-key sort order that's used for storing the items on the data slice might not match the logical sort order for a non-string sorting key. Therefore, for faster range scans, use string sorting keys. |
Spark Streaming
| Shard-count increase | Consuming stream records from new shards after increasing a stream's shard count (using the |
Grafana
| Service restart | Changes to the Grafana UI — including custom dashboards and data sources — might not be retained when restarting the Grafana service.Prometheus data is not persisted either for Cluster application services and nor for the Grafana service. |
Web Shell
| Restricted command shell | The web-based shell service doesn't provide a fully functional Linux shell. It's designed mainly for running application services — such as Spark jobs — and for performing basic file-system operations, but it doesn't support all Linux commands and tools. |
Dashboard (UI)
| Maximum number of concurrent dashboard users | 30 |
| Maximum upload file size | 2 GB |
Backup, Recovery, and High Availability (HA)
| Data duplication during system-failure recovery | Automated system-failure recovery for ingested stream records, data appended to a simple object, or update expressions might result in duplicate data writes. |
| Restricted operations in degraded mode | The following restrictions are applicable when the cluster in the degraded mode: |
| System-attributes backup | Objects' modification-time ( |