<-- Back

What are the limitations of identifier allocation in multi-container Mendix environments

Introduction

This article explains the limitations of identifier allocation in distributed Mendix runtime environments.

Environment

Applications hosted in any deployment type

Details

Mendix runtime allocates object identifiers in batches and stores them in memory.

Each runtime instance manages identifier batches independently. However, all runtime instances update the same [MendixSystem]$EntityIdentifier table in the database.

Under high concurrency, contention can occur when multiple runtime instances reserve identifiers for the same entity type.

The runtime dynamically increases identifier batch size over time until reaching the IdentifierReservationMaximum limit.

The default maximum value is 10000.

The batch size increase occurs locally per runtime instance.

Current limitations include:

  • Shared database row updates per entity
  • Increased contention across runtime instances during high concurrency
  • No configuration for minimum batch size
  • No configuration available to change the batch size increase step

In high-load scenarios, batch size increases may not occur quickly enough to prevent contention.

This behavior is part of the current identifier allocation design

Internal information related

  • 273674
  • C5SASDZBN/p1773287571649739

Additional information

Related KBA: What-is-the-ConnectionBusRuntimeException-Failed-to-retrieve-new-set-of-identifiers-log-line

 

 

 

Have more questions? Submit a request

0 Comments

Article is closed for comments.

To provide feedback, please open a ticket here. Don't forget to include the article's URL along with the feedback you would like to provide.