Meeting 7 - November 5th, 2025

What Got Done

Created v1 of tms_min

  • Built a minimal Rust server using Poem and SQLite to emulate how tms_server interacts with SQLite
  • Implemented three endpoint:
    • /baseline: Simple read test to see if the server is up
    • /writeheavy: Inserts 10 rows of text into SQLite database
    • /readheavy: Reads 10 rows of text from SQLite database
  • The /writeheavy endpoint orginally inserted 1000 rows per requests. This was reduced to 10 to try and better reflect /createkey
  • Server writes to a local tms_min.db file inside the tms_min directory

Created tms_min_loadtest

  • Created another loadtest similar to tms_loadtest, just simplified
  • Ex input:
cargo run --release -- --host http://127.0.0.1:3000 --users 1000 --iterations 1000 --scenarios writeheavy

Results

Scenario Users Iterations Throttle Avg Latency (ms) Fails Runtime
writeheavy (1000 rows) 10 1,000 None 2,937 9 (0%) 26 min
writeheavy (1000 rows) 1000 100,000 None 390.9 99.9% ~1 hr
writeheavy (10 rows) 50 1,000 None 102.8 1 (0%) 153 s
writeheavy (10 rows) 1000 100,000 None 5.29 99.4% ~37 min

Observations

  • tms_min never flat out crashed
  • The main error I was getting was "error trying to connect: tcp open error: Too many open files (os error 24)"

Next Steps

  • Keep building this and better understand the results