Skip to content

ngcp-project/database-trade-study

Repository files navigation

Database Trade Study

Comparison of different database providers

Context

Last year, we used a database provider called Redis. Redis uses a key-value data structure to store information. However, Redis is transitioning away from being open source software, so we need to look into alternatives.

Database Candidates

  1. Influx DB (SQL supporting database but niche) -- Paul
  2. Local version of MongoDB (document-based database)
  3. Cassandra (Discord previously used it)
  4. PostgreSQL (SQL supported) -- Michael Wu

Mock Application

The mock application will simulate telemetry data without having to go through the actual hassle of connecting to a simulated vehicle. In last year’s iteration, we were required to receive information at one update per second sent through a web socket. Think of this mock application as a chat application except that there’s a script that sends a user message every second.

Factors to Consider

  • Development Speed
  • LARGE WEIGHT: Read/write speed
    • Must be able to handle AT LEAST 1 update per second (1 Hertz)
  • General advantages / disadvantages

Installation Instructions

  1. Clone the repository
  2. Install language support
  • .NET
  • Node.js
    • Optional: The test client's dependencies can be installed with whatever package manager you want (npm, bun, etc.). You will have to configure the package.json script to run the client based on your package manager.
    • Version doesn't matter. Long-term support (LTS) is recommended.
  1. Initialize & Run Database Server

    a. Ctrl + Shift + P (or Cmd + Shift + P) to open up the command palette in VS Code

    b. Type "Tasks: Run Task" and press Enter

    c. Select "Run Database Server" and press Enter

  2. Initialize & Run Test Client

    a. Open up a new terminal window

    b. Install the test client's dependencies with npm run install or cd into the test-client directory and run [package manager] install

    c. Run the test client with npm run client

Final Result

image

About

Comparison of different database providers

Resources

Stars

Watchers

Forks