Skip to content

Improve blob performance by combining open and first fetch #838

@mrotteveel

Description

@mrotteveel

The Firebird 5.0.2 client introduced a client-side performance improvement by combining the blob open with the first fetch; as the fetch doesn't have a blob handle yet, it needs to happen with the "invalid object id". Apparently, server-side this has been supported since Firebird 2.1.

We can do this for Jaybird as well, and backport this to Jaybird 5 and 6. Given Jaybird 5 supports Firebird 2.5 and higher, we'll implement this in protocol version 12 and higher, not 11 (Firebird 2.1) and higher.

We'll need to decide if we'll do this similar as fbclient, by caching a fetch on open (and thus need to follow the blobBufferSize setting), or change the protocol of use so the first fetch will implicitly open the blob, removing the need to explicitly open it first. This decision needs a more in-depth look at the current implementation and usage, so the final decision will be made during implementation.

See also: jdp-2025-02: Lazy Send Blob Optimizations

Sub-issues

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions