Os desenvolvedores do sistema de banco de dados PostgreSQL estão considerando seriamente uma mudança importante em seu modelo de processo. O PostgreSQL, que remonta a 1986, é um sistema que funciona como um grande conjunto de processos cooperativos, incluindo um para cada cliente conectado. Embora essa abordagem tenha funcionado bem por muitos anos, os desenvolvedores estão começando a pensar que pode ser hora de mudar. Uma proposta foi apresentada em junho deste ano para mudar o PostgreSQL para um modelo com threads. A opinião dos desenvolvedores sobre essa mudança é dividida.
De acordo com Heikki Linnakangas, há um consenso bastante forte de que seria uma boa mudança, embora haja muito trabalho a ser feito e muitos detalhes a serem definidos. No entanto, Tom Lane acredita que essa mudança seria um desastre e que há muito código que seria quebrado. Ele também acrescentou que o custo dessa mudança seria enorme e que os benefícios não justificariam o custo. Outros desenvolvedores estão preocupados que a perda de isolamento fornecido por processos separados possa tornar o sistema menos robusto.
Embora muitos desenvolvedores do PostgreSQL pareçam estar cautelosamente a favor de explorar essa mudança, a transição de um sistema de processo para um sistema com threads certamente apresentará desafios. Um dos maiores desafios será a ampla e muitas vezes gratuita utilização de variáveis globais pelo servidor. Embora a possibilidade de marcar as variáveis globais para colocá-las em armazenamento local de threads possa ser um primeiro passo para reduzir seu uso, redesenhar o postmaster, definir como lidar com bibliotecas de extensão e compatibilidade de extensões, desenvolver ferramentas para tornar o desenvolvimento de um PostgreSQL com threads viável e lidar com a portabilidade serão muito mais difíceis.
Embora a mudança para um modelo com threads possa trazer benefícios significativos, como melhor escalabilidade em sistemas maiores, ainda não há um desenvolvedor disposto a assumir a responsabilidade de liderar essa mudança. No entanto, Konstantin Knizhnik já fez uma porta de threads do PostgreSQL e vê benefícios significativos em trabalhar no ambiente com threads. Qualquer pessoa que esteja pensando em assumir esse projeto seria bem aconselhada a examinar de perto esse trabalho como um primeiro passo.
Confira os últimos vídeos publicados no canal