Project

General

Profile

Actions

Feature #7773

closed

paddles: mirror teuthology's beanstalkd queue

Added by Zack Cerza about 10 years ago. Updated about 10 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Actions #1

Updated by Zack Cerza about 10 years ago

  • Target version set to sprint2
Actions #2

Updated by Ian Colle about 10 years ago

  • Target version changed from sprint2 to sprint3
Actions #3

Updated by Zack Cerza about 10 years ago

The work done in #7789 will help here.

Actions #4

Updated by Ian Colle about 10 years ago

  • Assignee set to Zack Cerza
Actions #5

Updated by Ian Colle about 10 years ago

  • Target version changed from sprint3 to sprint4
Actions #6

Updated by Ian Colle about 10 years ago

  • Translation missing: en.field_story_points set to 1.0
Actions #7

Updated by Zack Cerza about 10 years ago

Just a note: This ticket is only intended to represent implementing a sort of mirrored queue inside paddles. Fully replacing beanstalkd as teuthology's queue is a larger undertaking.

Actions #8

Updated by Zack Cerza about 10 years ago

  • Subject changed from use paddles for the queue to paddles: mirror teuthology's beanstalkd queue

Plan for mirroring:

  1. [x] paddles: Add 'queued' to possible Run.status and Job.status values
  2. [x] paddles: Add Job.started column
  3. [x] paddles: Add Run.started column
  4. [x] paddles: Create Alembic migration for DB schema changes
  5. [x] paddles: Add unit tests for the above
  6. [x] pulpito: Add views for queued runs
  7. [x] pulpito: Use Job.started (when available) to calculate job runtime instead of Job.posted
  8. [x] teuthology: Add some sort of method to query paddles for queued jobs in a given run
  9. [x] teuthology: Make teuthology-kill delete jobs from paddles
  10. [x] teuthology: Make teuthology-queue delete jobs from paddles
  11. [x] teuthology: Make teuthology-schedule delete jobs from paddles
  12. [x] teuthology: Make teuthology-schedule use teuthology.report to queue jobs
  13. [ ] This ticket is resolved
Should we decide to use paddles as the queue itself:
  1. [ ] paddles: Implement a way to pause the queue
  2. [ ] teuthology: Pause the queue before removing jobs from it
    1. [ ] Or: add some sort of a 'reserved' state between 'queued' and 'running' so that multiple jobs aren't picked up accidentally
  3. [ ] paddles: Come up with a scheme for generating job_ids
  4. ...
  5. [ ] Profit! Ditch beanstalkd
Actions #9

Updated by Zack Cerza about 10 years ago

  • Status changed from New to In Progress
Actions #11

Updated by Zack Cerza about 10 years ago

Made some more paddles commits to improve transitions into the running state, and also added the alembic migration which I had forgotten to add to the PR before. And added more tests.

Started working on the pulpito changes, and in the process decided to deploy the paddles work. I ran the DB migrations and am manually populating the Job and Run started values so that I don't have to deal with edge cases in pulpito.

Actions #12

Updated by Zack Cerza about 10 years ago

  • Translation missing: en.field_story_points changed from 1.0 to 10.0
Actions #13

Updated by Zack Cerza about 10 years ago

Updated the plan again with several more completed tasks. In the process I've discovered that teuthology-schedule has a method for deleting queued jobs. The way it's implemented won't work with the way I have job deletion with teuthology-queue working. I'll have to think about how to do that tomorrow.

Actions #14

Updated by Ian Colle about 10 years ago

  • Target version changed from sprint4 to sprint5
Actions #15

Updated by Zack Cerza about 10 years ago

Got teuthology-schedule job deletion working.

Actions #16

Updated by Zack Cerza about 10 years ago

  • Status changed from In Progress to Fix Under Review
Actions

Also available in: Atom PDF