Mudanças no Gerenciamento de Memória Compartilhada(Shared Memory)
A arquitetura de memória compartilhada do gerenciador do OpenEdge mudou, principalmente, das maneiras a seguir :
- o método utilizado pelo gerenciador para endereçar a memória compartilhada foi incrementado de maneira que no OpenEdge é possível agora endereçar quantidades maiores de memória alocada, tanto em sistemas operacionais 32 bits, quanto 64 bits.
- Agora é possível especificar o tamanho máximo do segmento de memória compartilhada que o gerenciador alocará. Em Progress 9, o tamanho máximo do segmento era de 128 megabytes para sistemas de 32 bits, e 1 gigabyte para sistemas de 64 bits. Estas melhorias permitem ao gerenciador do OpenEdge utilizar os tamanhos de segmentos que você especificar. Contudo, cada sistema operacional posui limitações que o Progress OpenEdge deve obedecer.
No OpenEdge é possível endereçar até 4 gigabytes em sistemas de 32 bits, sendo que em sistemas de 64 bits é possível endereçar até 8 terabytes. Estes limites são arquiteturais, do Progress, de maneira que na prática as limitações impostas pelo sistema operacional, não permitem fazer uso de tudo que o Progress suportaria. Isto é particularmente verdadeiro em sistemas 32 bits porque o espaço de endereçamento do processo inteiro é de 4 gigabytes e não se pode utilizar ele todo com a memória compartilhada. Na prática, a maioria das releases OpenEdge 32bits está limitada a um máximo de aproximadamente 2 gigabytes de memória compartilhada.
O parâmetro de configuração de banco de dados, –shmsegsize, é o que permite definir o tamanho do segmento de memória. Este parâmetro permite definir o tamanho do segmento para cada banco de dados, separadamente, na carga de cada um. Caso não esteja explícitamente definido, o gerenciador do banco irá estimar automaticamente o tamanho dos segmentos, baseado nos requisitos de memória exigidos pelo banco.
No próximo post apresentaremos o conceito de “espaço de endereçamento do processo”.