Stress-testing SQLite -- what means "theoretical limits" from C++ point of view

Ruslan Zasukhin ruslan_zasukhin at
Sun Oct 31 01:01:49 EDT 2010

On 10/31/10 12:10 AM, "Monte Goulding" <monte at> wrote:

>>> Charts like this, especially on Wikipedia should be taken with a grain of
>>> salt. Feature comparisions (yes/no) I can appreciate, but when it comes to
>>> capacity and performance, that's a bit different.
>> Indeed.  With LiveCode, for example, fields can *theoretically* hold up to
>> 4GB, but I pity the person who tries it.
> My point was that given your expected max db size of 5kB * 5000000 is 23GB
> this is only a very small fraction of the stated theoretical limits of SQLite.

Hi Guys,

Just in case I want explain here what means these limits.

Image that some C/C++ library has class File_16, which has
        ulong     mLength;

Ulong  is 4 bytes (32 bits)  and can keep max  2^32-1 value.
        this is near to 4GB.

In 80-90ths this was normal for most software.
Later have come to gave 64 bit API of OS for file systems.

And we have change 
     ullong mLength                  // 2^64   a lots of Terrabytes

This was first 64-bit revolution.

Another example.

Table and Field Count in the table.

We have seat and think, how much can be fields,
What type to choose.
        USHORT          64K fields max
        ULONG             4 billions ?
        ULLONG           like stars in Universe ...   :)

It looks reasonable to choose USHORT.  I have hear about Table with 1024
fields from one user ... And I was sure that was bad lazy design.

So theoretical limit, comes first of all from this choice of C/C++ library
developer, when he write such lime of code.

This not means that in reality somebody have test db up to million of
Terrabytes.  Or up to 50,000 fields in Table.

Another example and hot stream last years -- 64 bit compatibility.

As you know most software was 32 bit, and now step by step C/C++ developers
improve things to be able use any memory pointer as 64-bit value. Main bonus
that then software can use RAM installed on computer >2-4GB.

This is second 64-bit revolution.

We have port Valentina engine and Valentina Server and Valentina ADKs to 64
bit year ago.  

* Surprisingly, many people have jump to use 64 bit versions.

* Surprisingly, we have to see real dbs of real users, when 64-bit server
works better ... 

Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information

[I feel the need: the need for speed]

More information about the Use-livecode mailing list