Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
BridgeDB
BridgeDB
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 37
    • Issues 37
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • The Tor Project
  • Anti-censorship
  • BridgeDBBridgeDB
  • Issues
  • #12030

Closed
Open
Opened May 16, 2014 by Isis Lovecruft@isis

Create a DatabaseManager for interacting with BridgeDB's database backends

We need a DatabaseManager which will handle receiving BridgeRequests from BridgeDB's distributors, and will queue these requests as transactions with the backend databases.

The distributors are going to use a common method (just call it getBridgesFromDBManager() for now) to request Bridges from the DatabaseManager, and they will expect to receive some relatively well-supported, simple, serialised format (probably JSON) in return.

  1. The Easy Way The easier way to do this would be to not really actually truly make a for-reals ORM, and simply expect to be interacting with a NOSQLly CouchDB backend as described in proposal #226. CouchDB documents are JSON anyway, so this is super easy. If we go this route, we'll need some code to convert the old SQLly stuff to the new NOSQLly format.

  2. The Masochistic Way The harder, but possibly better in the long run (should we ever decide to stop using NOSQL/OODBMSs), way to do this would be to write a true ORM/RDBMS which can work with either system.

This databases which this system will interact with will be used for storing complex/referential/self-referential/recursive datatypes, such as bridgedb.Bridges.Bridges and structures for storing data about blocking events for bridges (including timestamps, discovery method, and country code of the block, etc.) as defined in Section 1.b. of proposal #226.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: tpo/anti-censorship/bridgedb#12030