Overview
EntityStore is the data storage engine for UModel. It has capacity and performance limits that you must understand to avoid performance issues or data loss.
Capacity limits
Capacity limits determine the scale of data that EntityStore can hold. The system enforces specific policies when these limits are exceeded.
|
Limit item |
Upper limit |
Overflow behavior |
Adjustable |
Recommendation |
|
Total number of entities |
1 million |
Cannot add new entities. |
Not supported |
Design EntitySets carefully to avoid too many entities of a single type. For frequently changing entities, consider using dynamic entities or not modeling them as entities. |
|
Total number of edges |
10 million |
Cannot add new edges. |
Not supported |
Design a reasonable relationship structure to avoid redundant edges. For frequently changing relationships, consider using dynamic relationships or not modeling them as edges. |
|
Total number of entities of a single type |
100,000 |
Cannot add new entities. |
Not supported |
Limit the number of entities per type to prevent exceeding this threshold. |
|
Total number of edges of a single type |
1 million |
Cannot add entities |
Not supported |
Avoid creating too many relationships of the same type. |
|
Size of a single entity |
64 KB |
Data is automatically truncated. |
Not supported |
Avoid storing large text data, such as Markdown or HTML files. |
Performance limits
Performance limits affect the throughput and response time of read and write operations.
|
Limit item |
Limit value |
Behavior when exceeded |
Adjustable |
Recommendation |
|
Write QPS |
10,000 QPS |
Handled on a best-effort basis. Exceeding this limit delays entity index creation and affects real-time queries. |
No |
Use incremental writes. The write interval should be at least 10 minutes. |
|
Query concurrency |
10 concurrent queries |
The query fails. |
No |
Narrow the query time range and use precise filter conditions with the Limit parameter. EntityStore is a metadata system and is not designed for high-frequency query scenarios such as alerting. |
|
Entity query scan limit |
1 million items |
The scan stops and results are calculated based on the items scanned so far. A PartialSuccess message is returned. |
No |
Use the Limit parameter to restrict the number of output items. |
|
Entity query output limit |
100,000 items |
Only the first 100,000 items are returned, along with a PartialSuccess message. |
No |
Use the Limit parameter to restrict the number of output items. |
|
Relationship query scan limit |
1 million items |
The scan stops and results are calculated based on the items scanned so far. A PartialSuccess message is returned. |
No |
Use the Limit parameter to restrict the number of output items. |
|
Relationship query output limit |
10,000 items |
Only the first 10,000 items are returned, along with a PartialSuccess message. |
No |
Use the Limit parameter to restrict the number of output items. |
|
Query output bandwidth |
About 20 MB/s |
Handled on a best-effort basis. |
No |
Avoid large data transfers. Do not use EntityStore for data exporting. |
Best practices
Capacity management
-
Monitor capacity usage: Regularly check the number of entities and edges to detect issues early.
-
Data cleanup policy: Periodically delete historical data to free capacity.
-
Classification design: Design entity types carefully to avoid an excessive number of entities per type.
Performance optimization
-
Batch operations: Use batch writes whenever possible to reduce request frequency.
-
Distribute requests: Avoid sending requests at concentrated times, such as on the hour.
-
Query optimization: Use appropriate filter conditions and the Limit parameter.
-
Incremental updates: Use incremental writes instead of full updates.
Error handling
-
Limit monitoring: Monitor for capacity and performance limit violations.
-
Degradation policy: Design a service degradation plan for when limits are reached.
-
Data backup: Back up important data to other storage systems.
FAQ
Q: How can I improve query QPS?
A: Cache query results, reduce query frequency, narrow the query time range, and use precise filter conditions and the Limit parameter.
Q: What data is included in the entity size limit?
A: The limit covers all field data of an entity, including the sum of property values and metadata. Relational data is not included.