Skip to content

Conversation

@dkliban
Copy link
Member

@dkliban dkliban commented Jan 16, 2026

No description provided.

---
# RedisWorker Delivers 2.3x Performance Improvement

This performance breakthrough came from an innovative collaboration with AI. We explained the PostgreSQL load challenges we were facing to an AI assistant, which designed an algorithm that offloads resource locking to Redis while maintaining task ordering guarantees. The AI then helped write the implementation code and test suite, dramatically accelerating our development process. This approach allowed us to rapidly prototype and validate the solution, demonstrating how AI can be a powerful tool for tackling complex architectural challenges.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd make this a section called AI Driven Development

- tasking
- redis
---
# RedisWorker Delivers 2.3x Performance Improvement
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd move this down to the We're excited to ...


## Benchmark Results

Our testing compared the traditional `PulpcoreWorker` implementation against the new `RedisWorker` implementation under identical conditions:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Our testing compared the traditional `PulpcoreWorker` implementation against the new `RedisWorker` implementation under identical conditions:
Our testing compared the existing `PulpcoreWorker` implementation (the default) against the new `RedisWorker` implementation under identical conditions:


The performance improvement comes from two key innovations: offloading resource lock coordination to Redis and eliminating the task unblocking mechanism. Here's what changed:

**Traditional PulpcoreWorker Approach:**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Traditional PulpcoreWorker Approach:**
**Existing PulpcoreWorker Approach:**


- High-volume task processing environments
- Deployments where Redis is already part of the infrastructure
- Scenarios where task throughput is critical
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding another bullet about environments that struggle with DB CPU load.


These performance improvements represent a significant step forward for Pulp's scalability. We're continuing to enhance the RedisWorker implementation and explore additional optimizations.

The RedisWorker implementation will be available soon in upcoming Pulp releases. We encourage users with high-throughput requirements to evaluate it in their environments once released.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to unpack this a bit. It needs to be merged, it needs to be tested in the CI, and then released. I think a numbered list would read nicely (personally).

Comment on lines +60 to +65
By separating resource locking from the main database:

1. **Reduced PostgreSQL Load**: Database queries are limited to task CRUD operations, not constant lock checking
2. **Faster Lock Operations**: Redis's in-memory operations are significantly faster than database queries
3. **Better Scalability**: Workers can check and acquire locks with minimal overhead
4. **Improved Throughput**: The system can process more than twice as many tasks per second
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this section needs to be thought through some more. I'm going to think about it some.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants