Thread Multi-core processing

3 respostas
xivan

Pessoal, estou querendo processar inserções no banco em paralelo para otimizar o desempenho.

A dúvida é a seguinte, se eu usar threads para fazer esse processamento, chamando por exemplo 1 Thread para cada processamento, e minha máquina possui mais de um core a jvm vai fazer uso disso automaticamente? Ou não, vai simplesmente utilizar o scheduler e alternar as Threads dando uma falsa sensação de paralelismo?

Caso isso não seja feito automaticamente, alguém conhece uma maneira de controlar isso?

3 Respostas

E

Usando a ferramenta errada… Inserções em paralelo só vão fritar com o banco, não vão otimizar seu desempenho.

  1. Que banco você está usando?

  2. Que tipo de carga você está usando? Provavelmente, se é uma carga de vários registros (processo batch), você deve importar esses registros no banco usando uma ferramenta do próprio banco.

  3. Dependendo do tipo de inserção, vale mais a pena você criar uma nova tabela com os registros adicionais, reindexá-la, dropar a tabela original, e então substituir pela tabela recém-criada.

xivan

Então na verdade acho que me expressei mal.

O que acontece é o seguinte:

Eu estou fazendo uma sincronização de dados 100K registros do servidor para uma máquina no cliente com DERBY instalado.

Eu abro 5 processos em paralelo assincronamente pra um EJB.

Ele me devolve esses dados e na medida que eu for recebendo eu gostaria de ir processando paralelamente para liberar a memória (heap) e otimizar a inserção.

Eu estava tendo problemas de heap space devido a quantidade de objetos vindos em uma paulada só.

Conseguiu entender? A inserção demorar um pouquinho até que não é um problema, preciso mesmo é evitar uma quantidade grande de objetos na memória.

E

100.000 registros sendo atualizados em uma base Derby?
Eu faria o seguinte.
Criaria um arquivo-texto no formato adequado para ser executado pelo utilitário ij. Se for o caso, até droparia eventuais índices e constraints.
Chamaria esse utilitário.
A seguir, recriaria os índices e constraints.

http://db.apache.org/derby/docs/10.8/adminguide/cadminimport16245.html

Criado 16 de maio de 2013
Ultima resposta 16 de mai. de 2013
Respostas 3
Participantes 2