Files
Lauri Ojansivu 3621413d6f Speed test: where the time goes when a WeKan board is opened, on FerretDB and on MongoDB.
app/board-open.cjs seeds a board of 200, 2000 or 5000 cards, opens it in Chromium and
records the wall clock to the first card and until the DDP WebSocket is quiet, what
crossed it, the Meteor server's CPU by who spends it (Node inspector) and FerretDB's
CPU (pprof). Two runs on each database: the Meteor server's CPU is the same on both
(0.1-0.5 s) and the DDP server is 1% of it; a 5000-card board takes FerretDB (SQLite)
400-600 ms longer to open, the data sent to the browser being the same ~210 KB, a
small board 70-100 ms. FerretDB uses about 4 s of CPU for the 5000-card open: SQLite
39%, filtering in Go 34%, find/getMore/aggregate 0.7-0.8 s each. The README says what
was measured and what was not: the development build, one machine, the browser's own
time not separated, and the aggregate's source not identified.

Thanks to Raymond-Voogt and xet7 !
2026-11-04 01:21:16 +02:00
..

Databases

WeKan stores its data in a MongoDB-compatible database. That can be MongoDB itself, or FerretDB — which speaks the MongoDB wire protocol and stores the data in SQLite, PostgreSQL, MySQL, MariaDB or SAP HANA. The default is FerretDB v1 with its embedded SQLite, so a fresh docker compose up -d needs no database server at all.

Which databases are supported, and how each is tested: Supported.md - FerretDB v1 on SQLite (the default), PostgreSQL, MySQL, MariaDB and SAP HANA, and MongoDB 6, 7, 8 and 9.

Directory What is in it
FerretDB/1/ FerretDB v1 — the default. SQLite, PostgreSQL, MySQL, MariaDB, SAP HANA
FerretDB/2/ FerretDB 2 — PostgreSQL with the DocumentDB extension
MongoDB/ MongoDB itself: drivers, versions, the OpLog, and old CPUs
Migrations/ WeKan's own schema migrations and how they are verified
ToroDB/ ToroDB — a MongoDB proxy to PostgreSQL. No longer developed

FerretDB

Replacing MongoDB with FerretDB. Both of the v1 backends WeKan ships by default are confirmed working with a real Meteor 3 client — the embedded SQLite and vanilla PostgreSQL (#6509); MySQL, MariaDB and SAP HANA are experimental.

MongoDB

Migrations

  • Migrations/ — the schema-migration system, its review notes and verify-migrations.sh

ToroDB

ToroDB is not developed anymore. ToroDB was about adding a MongoDB proxy to PostgreSQL or MySQL.