Connection pool
Uma pergunta recorrente no desenvolvimento de sistemas que acessam bancos de dados é como gerenciar as conexões a estes bancos.
Bem, a resposta é ….. depende!
Primeiramente, devemos nos recordar que uma conexão pode ser comparada a abertura de um arquivo. Ou seja, abrir 1, 2 arquivos, é simples. Entretanto, abrir 500, 1000, ou mais arquivos, certamente vai comprometer o desempenho do sistema.
Se você estiver criando uma aplicação desktop, monousuário, a gerência de conexões fica muito simplificada e recai na primeira situação. Entretanto, para aplicações web muito acessadas, provavelmente recairemos na 2a situação.
A solução que muitos frameworks para desevolvimento web adotam é a implementação de um pool de conexões (http://en.wikipedia.org/wiki/Connection_pool), cujo tamanho é controlado em tempo-real de acordo com a demanda do sistema. No uso geral, cada necessidade de acesso ao BD não representará, necessariamente, a criação de uma nova conexão. Neste caso, aplicação poderá, por exemplo, reaproveitar uma conexão que acabou de ser criada.
Abraços e boa programação!



O assunto era programação genérica, que em C conseguimos manipulando o tipo (void *). Era importante observar que, na inserção de elementos na lista genérica, além de inserir o valor a ser armazenado nós indicávamos uma função que soubesse imprimir aquele valor. Com isso, para trabalhar com tipo pontos 3D (item (c)), tínhamos que criar uma estrutura e uma função que imprimisse os valores de uma estrutura como essa. Para item (d), tínhamos que criar funções de comparação para cada tipo existente, além de adicionar um campo no nó lista para registrar esta função, assim como na função de impressao. E era só isso!



