Jump to content

Experiências com Flash Filer 2


bsccara
 Share

Recommended Posts

Pergunta: Alguém experimentou alguma vez o Flash Filer 2 ? Que resultados obteve ?

Como dei a entender num post anterior, tenho um monte de código de manipulação de bases de dados que tenho de converter do Paradox para outra coisa. Como o código foi desenhado para uma base de dados ISAM, não me é viável usar SQL. Andei a ver o Advantage Database Server, que é porreiro mas obriga a um custo adicional para funcionar em cliente-servidor. Entretanto encontrei o Flash Filer, que na versão 2.13 suporta funcionamento em cliente-servidor, com uma licença Mozilla. Fiz uns testes básicos com umas tabelas reais e obtive resultados interessantes. As tabelas são (resumidamente) :

Tipos de documentos (47 registos)

Documentos (134833 registos)

Linhas de documentos (370387 registos)

Como deduzirão existem indices criados para fazer ranges por tipo de documento, na tabela Documentos, e por documento, na tabela Linhas de documentos. O algoritmo limita-se a percorrer todos os tipos de documentos, dentro de cada tipo todos os documentos e dentro de cada documento todas as linhas, sem mais nada. Implementei o mesmo algoritmo para usar o BDE 2.51 (16 bits), o BDE 5.01 (32 bits), o Advantage Local Server e o Flash Filer, trabalhando com os ficheiros da base de dados na máquina local e num servidor com rede Gigabit, com os seguintes resultados.

BDE 2.51

16 seg com dados na máquina local

34 seg com dados no servidor

BDE 5.01

54 seg com dados na máquina local

76 seg com dados no servidor

Advantage Local Server

29 seg com dados na máquina local

29 seg com dados no servidor

Flash Filer 2.13

129 seg ligando a um servidor Flash Filer na máquina local através de Single User

292 seg ligando a um servidor Flash Filer na máquina local através de TCP/IP

753 seg ligando a um servidor Flash Filer a correr no servidor em Wine, sendo o executável do servidor Flash Filer de 32 bits e o servidor de 64 bits

Quando vi estes números do Flash Filer pensei logo 'era bom demais, com código e licença livre...'. Mas por curiosidade tentei o mesmo algoritmo usando outro modo (SingleEXE) que é incluíndo no próprio cliente o componente TServerEngine. Com o mesmo exacto código deu 10 seg, o que é muito bom.

Analisando os resultados é evidente que o 'overhead' de carregar cada registo individualmente do servidor é demasiado grande. Então fiz um novo algoritmo que percorre na mesma todos os registos das tabelas mas que faz uma range na tabela de Linhas de documentos por tipo e depois faz um FindKey na tabela de documentos, tendo obtido os seguintes resultados :

BDE 5.01

28 seg com dados na máquina local

Advantage Local Server

26 seg com dados na máquina local

Flash Filer

276 seg ligando a um servidor Flash Filer na máquina local através de TCP/IP

Fiz depois uma alteração, usando métodos que o Flash Filer tem para carregar vários registos com uma chamada. Carregando 100 registos de linhas com cada chamada o tempo do Flash Filer passa para 4 seg (este tempo não inclui a conversão dos campos do tipo nativo de armazenamento para os tipos lógicos do Delphi, que deve aumentar 10-20% este tempo). Tentei esta mesma alteração com o primeiro algoritmo mas o resultado foi marginalmente melhor, pois cada documento tem uma média de 3 linhas, pelo que não há grande diferença no 'overhead'.

A única coisa que me falta saber é se, como gestor de base de dados, o Flash Filer é confiável. Aí daria jeito a vossa opinião, com conhecimento de causa.

P.S. Sei que o produto está descontinuado, mas isso não é problema desde que funcione como está.

Link to comment
Share on other sites

Pois, não te consigo ajudar...

Nem nunca tinha ouvido falar dele.

O Advantage Local Server cheguei a testar para subsituir o BDE, mas lá está, era a pagar e acabei por não me meter nele (na altura a vida de estudante não me permitia esses luxos  😁)

Na net encontras opiniões sobre ele?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Realmente é muito tempo...

Não tens mesmo como passar para SQL?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Futuramente poderá ser uma hipótese mas de momento o tempo para converter ~300 forms em meia duzia de programas para usar query's SQL seria proibitivo.

Entretanto encontrei mais histórico relativo ao Flash Filer; inicialmente era produzido pela TurboPower Software, que fechou/faliu na altura em que a versão 3 estava praticamente pronta. Essa nova versão foi produzida por uma equipa de programadores em sub-empreitada, que ficando com o código na mão continuaram o desenvolvimento até chegarem ao produto actual, o NexusDB (a história toda está no site deles). Só que esse produto já tem custos comparáveis ao Advantage, que para o meu mercado são proibitivos.

Do que vi até agora, parece-me que o Flash Filer é uma boa aposta, desde que lhe faça umas optimizações. Estou a considerar criar um sistema de 'pre-fetch' para registos quando forem feitos Next e Prior em tabelas em ReadOnly, o que aceleraria enormemente um caso muito frequente que tenho em que os registos delimitados por uma range são percorridos um a um para apresentação.

Outra que estou a pensar e parece-me muito interessante seria, usando a infra-estrutura que o Flash Filer tem para processar SQL, criar um par de componentes para permitir que código em Pascal fosse enviado para interpretação no servidor Flash Filer, acedendo assim directamente ao motor da base de dados. Assim, cenários em que operações tem de ser feitas com múltiplos registos (cálculo de contas correntes, p.e.) o código actual seria interpretado no servidor.

Mas primeiro tenho de fazer uns 'stress tests' ao bicho...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.