Afinal o que é flush?

vejo sempre o pessoal falar pra dar uma flush pra ‘limpar’… mas limpar oq??? alguem sabe explicar?

flush = “flush the buffer” = “dar descarga no buffer”

Ou seja, se houver algum dado que não estiver ainda no disco ou for enviado via socket mas está ainda em um buffer em memória, flush dá a descarga nesse buffer (ou seja, força a gravação ou o envio dos bytes que estão no buffer).

Se for o flush do Hibernate, ele descarrega o buffer de dados da memória, caso haja algum dado que ainda não tenha sido processado.
Geralmente utilizamos isso quando trabalhamos com tabelas temporárias executadas na memória.

transaction.begin();
session.save(objeto);
session.flush(); //aqui
transaction.commit();

flush = descarga em inglês.

Quando você não vai ao banheiro, não enche o vaso e depois dá a descarga?
É o mesmo conceito, apesar de ser nojento. Você faz todas as operações e depois dá um flush.