Shob Logo Última Atualização: 8 de dezembro de 2002 18:34 BRST

Próximos passos

Servidor multi-threaded

O servidor (br.shob.server.Server) cria uma nova thread cada vez que um cliente se conecta a ele. Nossa primeira idéia seria implementar um thread pool no servidor. Esta é apenas uma questão de performance e escalabilidade que pode ser alvo de melhorias.

Reaproveitamento de sockets (pipelining)

Uma das melhorias de grande valia no protocolo HTTP foi a introdução do mecanismo de pipelining, pelo qual os agente fazem várias requisições na mesma conexão. Queremos utilizar uma idéia parecida mantendo as conexões recentes abertas por um tempo, na esperança de que elas sejam utilizadas novamente. Tanto conexões com o servidor quanto conexões entre clientes poderiam ser reaproveitadas sem uma sobrecarga muito grande do protocolo. Atualmente o gargalo em uma transação é a criação de sockets (são entre 7 e 10 novos sockets em uma chamada de método de escrita), sendo que as transmissões são quase sempre curtas.

Coleta de entradas inválidas no cache cliente

Os clientes (ou seja, cada instância de br.shob.SharedSpace) possuem uma Hashtable com todas as cópias em uso naquele host. Essas entradas no cache cliente podem ser mantidas mesmo depois que o dono do objeto original o remove (unshare) do espaço global.

Faltou apenas dar aos clientes a opção de remover esta cópia! Ou seja, mesmo depois que o objeto "desaparece", os clientes continuam usando a última cópia que eles tinham, mas não podem mais escrever no objeto.