Hi all,
I'm semi retired software developer.
Currently I'm working on an in memory object database to compliment my TLS terminating reverse proxy application server with a virtual file system. The DB is a ranged key pair store supporting numeric keys, binary keys or 0 terminated utf8 and UCS2 keys. it has lock free read and writes, with cursors and it's reasonably quick and scales well.
Two tests using random 4 byte keys with 8 byte values running on 12 threads, 11 readers 1 writer on an i5-11500 @ 2.70GHz 6 Core(s), 12 Logical Processor(s)
Number of keys 16,777,216 4byte keys
memory 521.16mb key size 64.00 mb
lookup 67,589,439 p/s avg per thread 6,144,494
lookup rate 257.83 mb p/s
lookup time 14.80 ns
writes 1,145,273 p/s
Write rate 4.37 mb p/s
Number of keys 134,217,728
memory 4034.69mb key size 512.00 mb
lookup 64,152,244 p/s avg per thread 5,832,022
lookup rate 244.72 mb p/s
lookup time 15.59 ns
writes items 863,801
Write rate 3.30 mb p/s
The DB persists data with JSON which also automatically serializes user structures, no schema required and structures can also include arrays, lists and hash tables. Combine that with the server. That's No lamp stack, No SQL, no CGI, No interpreted languages and just bare metal speed in ~5mb executable with no dependencies that compiles for windows linux mac or arm mac and raspberry pi.