On Friday 31 May 2002 14:56, Mihai RUSU wrote:
> On Fri, 31 May 2002, Mihai Chelaru wrote:
> > On Friday 31 May 2002 14:24, Mihai RUSU wrote:
> > > Ce pot face sa lucrez NONBLOC/ASYNC cu mysql-ul ? Sa nu mai blocheze in
> > > mysql_query ?
> >
> > Chiar daca faci treaba NONBLOCK tot trebuie sa-ti pierzi vremea cu select
> > ca sa vezi cand mai poti face ceva pe socketul respectiv. Asadar:
>
> Nu e adevarat. Tocmai ca eu deja fac select pentru alta treaba (un socket)
> si cand mi se pune mie pata (cand primesc date pe socket) vreau sa loghez
> in sql. Deci daca ar fi NONBLOCK s-ar intoarce cu EAGAIN si asta e (daca
> nu mai am vre-un layer care sa aiba un buffer sa pastreze cateva query-uri
> macar acolo...), deci nu am nevoie de select. Dar nu cred ca pur si simplu
> ma uit in mysq.h , vad in structura lui unde e socket-ul si fac fcntl pe
> el, pentru ca mi-e teaba sa nu aiba probleme celelalte functii din lib cu
> socketul.

Eu ma refeream la socketul mysql si cand poti face query pe el :)

>
> > Hint1: Threaduri. Executa toata operatiile de insert in threaduri
> > (eventual si cu un buffer).
>
> Draguta idee. Nu chiar thread-uri, un fork si un pipe neblocant rezolva
> treaba. Thanks (astept si alte raspunsuri totusi ;), nu se poate as nu fi
> gandit cei de la mysql o solutie "curata" petnru treaba asta).
>
> > Hint2: Nu tine conexiunea deschisa. Deschide-o cand faci inserturi si
> > inchide-o dupa.
>
> Hmm, o sa creaza overhead-ul imens (pot fi si vre-o 10 query-uri pe
> secunda).

Nope. Crede-ma ca asa e cel mai bine. Aveam aceeasi situatie aici (cu un 
buffer pe thread de 10), threadul executandu-se si de de 2 ori pe secunda. 
Cand pastram deschisa conexiunea imi ramaneau queryuri blocate => threaduri 
agatate si pierdeam 10 inregistrari.

>
> ----------------------------
> Mihai RUSU
>
> Disclaimer: Any views or opinions presented within this e-mail are solely
> those of the author and do not necessarily represent those of any company,
> unless otherwise specifically stated.
>
> ---
> Pentru dezabonare, trimiteti mail la
> [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
> REGULI, arhive si alte informatii: http://www.lug.ro/mlist/

-- 
Mihai Chelaru
http://www.netbsd.ro/
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui