Subject | Blob write to Embedded on Linux performance |
---|---|
Author | |
Post date | 2014-05-25T09:38:21Z |
I am using Firebird embedded (2.5.2) on Linux (Ubuntu 14.04) via IBPP with a completely default firebird.conf.
My hardware is a Dell Optiplex 755, Intel Core 2 Duo @ 2.33GHz with 4Gb RAM and a 2Tb Western Digital WD20EARX-32P hard disk.
When I use IBPP to write a blob (actually a music MP3) to a simple test database (which contains about 12 tables with 6 records in each) it takes around 35 seconds to write a 10Mb file.
The bottleneck seems to be when IBPP is writing a segment:
(*gds.Call()->m_put_segment)(status.Self(), &mHandle, (unsigned short)size, (char*)buffer);
The blob type is zero and has a segment size of 4096, I have matched this so the segment is written 4096 bytes at a time. I have tried smaller and larger sizes with little change in performance.
I see similar performance inserting a blob using Flamerobin, but that is of course hardly surprising. Reading the blob is instantaneous in all cases.
My question is: Is this the sort of performance I should be expecting or is there something wrong?
TIA