Posts Tagged “threads”

Para começar devo dizer que acho estranho misturar blogs com mailling lists.

Que raio tem uma coisa a ver com a outra?

Nada… Penso eu de que. Mas parece que o Sr. Vitor Domingos gosta de mailling lists, e acha que os seus posts numa lista sua (apesar de tanto quanto sei publica) deve ir aparecer num agregador de feeds de blogs. Até aqui tudo bem… Cada macaco no seu galho e cada maluco* com a sua mania.
Tudo isto para dizer que o que vou aqui colocar é uma resposta, que teria sido mais simples se aquilo fosse um blog real… Mas adiante… Num post recente são referidos dois hacks que permitiram ao servidor do Planeta A* ter uma diminuição da carga com aumento de performance.
O primeiro envolvia fazer o download das 80 e tal feeds que compõem o Planeta. Acredito que para algumas pessoas o acto de transformar um:

for url in list_of_feeds:
download_and_process(url)

em algo mais:

for url in list_of_feeds:
if num_threads < = 10:
download_and_process(url)
else:
wait_for_signal()

Seja algo que se pareça com um verdadeiro hack. Principalmente porque regra geral trabalhar com threads e concorrência seja chato.

Mas agora dizer que a criação de índices na base de dados é um hack… Por favor meus senhores… Que tal largar os livrinhos de mysql for dummies? Que tal pegar num livro de bases de dados e aprender algo sobre como desenhar uma base de dados?

Isto é mais um desabafo de alguém que anda a pegar em código open source, e ao olhar para os .sql da criação da base de dados apanha erros daqueles de meia noite. Mas como diria o meu amigo Bruno:

Isso és tu e o MV** que topam erros nos ER’s só por olhar para eles.

* Não estou a chamar maluco a ninguêm, é uma expressão idiomática
** Não estamos a falar do Mário Valente….. Ou talvez estejamos, mas não o conhecemos

Comments 1 Comment »

The Global Interpreter Lock is python’s way of solving the issues of multiple threads running on multiple cpu’s thrashing common data.
What happens is that only one thread runs at any time.
In the last week I’ve been implementing some search algorithms that would greatly benefit from multiple threads on multiple cpu’s. Some of you might say:

If you are using Unix or Cygwin you can use os.fork()

Yes I can, but I’m not even going to delve into the issues around Threads VS Fork in terms of the time it will take to spawn a thread or spawn another process.

In the work I was doing I would use threads to do very small (as in time) tasks, but spawning many threads in a small amount of time. Seems I’ll have to re-think the approach…..

Comments 5 Comments »