Skip to content

Commit

Permalink
A much more serious db server. REST api reworked to handle the master…
Browse files Browse the repository at this point in the history
… table as well as any other user-table. The root of the web server is a generated HTML page with navigation for all the system features. There is now a map of tables. Selecting the current table is with the /tablename/?use rest command. Tables can also be dropped. Table::compact was reworked to shift-up deleted keys in the index. An index_revolver coroutine was introduced to return one index per invocation. This logic also has index cleanup capabilities. The Table::list() command uses this coroutine to produce the list of all keys. Table::get/set are now boolean. The set prevents overinserting and updating of unknown keys. The get returns false if the key is unknown. This allows now for inserting or updating "null" values. Better statistics. Better formatted output. All REST logic is in one DefaultHandle where the table list lock is maneaged. Everything the DB server does is listed in the / page which is built by DefaultHandle::build_help. Added the new Table::self_test method and the corresponding /?selftest=0 REST command. This system of self-testing obsoletes the rest.bat file while also aiming at raw performance.

This version has problems with deleting keys that are in cache. TODO.
This version closes issues: #1, #2, #3, #4, #5, #6, #8. It advances on issues #13 and #11.
  • Loading branch information
Alexander Mihail committed Apr 13, 2024
1 parent 4b5f815 commit 4df6de3
Showing 1 changed file with 719 additions and 256 deletions.
Loading

0 comments on commit 4df6de3

Please sign in to comment.