Gostei dessa conversa aprendi mt sobre sqlite, são tópicos assim q valem ser lidos ate o fim.
Abraço pessoal.
Bruno Baudel
Em 17 de fevereiro de 2012 07:44, Alex Baule <alexwbaule@gmail.com> escreveu:
De nada...
Em 17 de fevereiro de 2012 00:26, André Luiz R. Silva
<macolinkalkin@gmail.com> escreveu:
> Opa Blz Alex.
>
> =D
>
> Entendido os pontos de divergência.
>
> Valeu pela explicação.
>
>
> 2012/2/16 Alex Baule <alexwbaule@gmail.com>
>>
>> André, vc tá confundindo timeout de conexão com timeout de transaction.
>>
>> O timeout de transaction é praticamente impossivel de acontecer, sei
>> pq já criei daemons em C/C++ e Perl, com bancos de sqlite com mais de
>> 5 GBs de dados, com milhares de inserts , selects, deletes e updates
>> ao mesmo tempo. O unico problema que existia era em caso inserts e
>> updates, que caso acontececem ao mesmo tempo e o disco demorasse a
>> gravar, o sqlite criava arquivos de journal (q hoje é configuravel)
>> para fazer a inserção/update qdo o banco tivesse folga.
>>
>> Aqui (http://www.sqlite.org/lockingv3.html) eles explicam como fizeram
>> os Locks de arquivo (que influenciam no timeout).
>>
>> A implementação de timeout do sqlite é completamente diferente de um
>> SGDB, o timeout dele é unica e exclusivamente para o lock dado no
>> arquivo (flock igual fosse num arquivo comum) para a gravação em disco
>> de um insert/update, ou qdo vc chama o lock EXCLUSIVE via PRAGMA.
>> (http://www.sqlite.org/pragma.html) .
>>
>> O funcionamento do Sqlite é MUUUITO diferente de um SQL Server,
>> Postgres ou MySQL, mesmo sendo um SGDB. Por ele ser mais simples, é
>> muito mais rápido q qquer outro SGBD. As unicas coisas em comum do
>> SQLite com os outros citados é a linguagem entre banco e client, ser
>> SQL e o ACID.
>>
>> E SQL é uma linguagem de banco, só isso.
>>
>> Eu trabalho com sqlite desde 2002 (versão 2.4.X), sei direitinho todos
>> os problemas que o sqlite pode dar.
>>
>> Por isso eu digo, setar timeout no SQLite nao vai fazer nada em
>> relação a proteção de dados.
>>
>> Existem até alguns tunnings para se fazer no sqlite, através de
>> pragmas que melhoram bastante o desempenho do banco, mas num app
>> mobile, dificilmente vai dar diferença.
>>
>>
>>
>>
>> Em 16 de fevereiro de 2012 18:50, André Luiz R. Silva
>> <macolinkalkin@gmail.com> escreveu:
>> > Ok, posso ter me equivocado. Mas acho que você ta viajando também Alex.
>> >
>> > Primeiro, por más que o Sqlite trabalhe com arquivos, ele é um SGBD. Ele
>> > transcreve as "Tabelas" em arquivos e acessa diretamente ele em formas
>> > de
>> > SQL. Pelo que conheço do SQLite não existe outra forma de acesso sem ser
>> > via
>> > SQL.
>> >
>> > http://www.sqlite.org/tclsqlite.html#timeout
>> >
>> > Se você trabalha com consultas em SQL, sempre seu banco tem que ter
>> > implementando um timeout. Ok, por padrão o SQLite não coloca timeout.
>> > Mas se
>> > você estiver construindo uma aplicação mobile com várias AssyncTasks que
>> > buscam valor e insere em tabelas. E que por ventura algumas dessas
>> > tabelas
>> > são acessadas por mais de uma AT, pode acontecer de ter algum problema
>> > de
>> > "lockar" uma tabela. O timeout evita que a tabela fique lockada
>> > infinitamente.
>> >
>> >
>> > 2012/2/16 Alex Baule <alexwbaule@gmail.com>
>> >>
>> >> Nada a ver o q vc falou.
>> >>
>> >> Timeout no sqlite é unica e exclusivamente para operacoes sql, e vc
>> >> setar
>> >> ou nao, nao causa perda de dados por corromper arquivos, o timeout é
>> >> para
>> >> "banco, se em x tempo vc nao conseguir fazer y operacao, me retorne
>> >> erro e
>> >> nao fique tentando infinitamente". E no caso o lock que eu disse é vc
>> >> dar
>> >> um lock na tabela para inserir algo e ninguem usar aquela tabela
>> >> enquanto vc
>> >> esta com o lock, acabou sua operacao, vc da o commit e acabou o lock.
>> >> A conexao se encerra com close, nao com o retorno do timeout do try do
>> >> lock qune vc deu na tabela.
>> >>
>> >> Mais uma vez, sqlite nao usa socket, é abertura de arquivos, nao tem
>> >> timeout.
>> >>
>> >> Em 16/02/2012 17:12, "André Luiz R. Silva" <macolinkalkin@gmail.com>
>> >> escreveu:
>> >
>> >
>> >
>> >
>> > --
>> > Atenciosamente,
>> >
>> > André Luiz R. Silva
>> > @andreronsilva
>> >
>
>
>
>
> --
> Atenciosamente,
>
> André Luiz R. Silva
> @andreronsilva
>






0 comentários:
Postar um comentário