Skip to content

Performance #134

Open
Open
@laurentcau

Description

@laurentcau

Hi,

I'm investigating to improve our current internal file format to add more flexibility.
It is basically based on a tree representation, each node can contain some data.
So I implemented an unqlite version where I use one key/value for the tree node (few byte) and one for the data.
Here are the results:
10000 nodes with 1024 bytes => 10240000 bytes
unqlite: 36511744 bytes W:404017us R:210433us
legacy: 10420043 bytes W:12735us R:11907us
file size: 3.5x
write time: 31.7x
read time: 17.67x

I think 4096 is closer to the internal unqlite chunk size, so let's try it:
10000 nodes * 4096 data = 40960000 bytes
unqlite: 89309184 W:850054us R:455387us
legacy: 41140043 W:30292us R:20585us
file size: 2.7x
write time: 28.06x
read time: 22.12x

So, I'm very disappointed with the result in both file size and time.
I understand there will be an overhead for file size and time but that looks too much in this case.
Any comment ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions