bb-remote-execution VS miniqueue

Compare bb-remote-execution vs miniqueue and see what are their differences.

bb-remote-execution

Tools for Buildbarn to allow remote execution of build actions (by buildbarn)

miniqueue

A simple, single binary, message queue. Supports HTTP/2 and Redis Protocol. (by tomarrell)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
bb-remote-execution miniqueue
3 5
104 195
2.9% -
8.2 0.0
about 1 month ago about 1 year ago
Go Go
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

bb-remote-execution

Posts with mentions or reviews of bb-remote-execution. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-12.
  • Write Your Own Task Queue
    5 projects | news.ycombinator.com | 12 Sep 2022
    Though it obviously depends on the case at hand, I sort of agree with this.

    For a distributed build cluster that I maintain (Buildbarn, https://github.com/buildbarn/bb-remote-execution/), I also had to implement a scheduler process that would queue compilation/test actions, so that they can be executed on workers later on.

    Initially I looked into using some conventional queueing system, but eventually settled on implementing my own as part of the scheduler process. So far I'm really happy with this choice, as it has allowed me to implement the following features, and more:

    - In-flight deduplication of identical compilation actions. If identical actions are scheduled with different priorities, the highest priority is used.

    - Multi-level scheduling fairness between groups, users in a group, builds run by the same user, etc.. The fairness cooperates well with priorities.

    - Automatic removal of queued actions that are no longer associated with any running build.

    - Stickiness, where workers prefer picking up actions that are similar to the one they ran previously, for reducing network utilisation.

    - Facilities for draining workers.

    Though I'm not saying it would have been impossible to achieve this with an off the shelf task queue, I'm not convinced it would have been easy. Adding new features right now only means I need to care about the actual semantics of it, as opposed to trying to figure out how to map it onto the feature set of the queueing system of choice.

  • LiteFS a FUSE-based file system for replicating SQLite
    5 projects | news.ycombinator.com | 26 Jul 2022
    I was going to raise that point exactly.

    As someone who spends an awful amount of time using FUSE, my recommendation is to only use it in cases where the software that interacts with the file system isn't easily changeable. For example, for Buildbarn which I maintain (https://github.com/buildbarn/bb-remote-execution), I need to use it. It's infeasible to change arbitrary compilers and tests to all interact with a network distributed build cache. Designing the FUSE file system was a pretty heavy investment though, as you really need to be POSIXly correct to make it all work. The quality of implementations of FUSE also varies between OSes and their versions. macFUSE, for example, is quite different from Linux FUSE.

    Given that SQLite already has all of the hooks in place, I would strongly recommend using those. In addition to increasing portability, it also makes it easier to set up/run. As an example, it's pretty hard to mount a FUSE file system inside of a container running on Kubernetes without risking locking up the underlying host. Doing the same thing with the SQLite VFS hooks is likely easy and also doesn't require your container to run with superuser privileges.

  • Disorderfs: FUSE-based filesystem that introduces non-determinism into metadata
    1 project | news.ycombinator.com | 29 Jan 2021
    Buildbarn, a build cluster implementation for Bazel that I maintain, can also run build actions (compilation steps, unit tests) in a FUSE file system. Though the primary motivator for this is that it reduces the time to construct a build action's file system to nearly instant, it has the advantage that I can also do things similar to disorderfs. Shuffling directory listings is actually something that I also added. Pretty useful!

    https://github.com/buildbarn/bb-remote-execution/blob/eb1150...

miniqueue

Posts with mentions or reviews of miniqueue. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-11.

What are some alternatives?

When comparing bb-remote-execution and miniqueue you can also consider the following projects:

litefs - FUSE-based file system for replicating SQLite databases across a cluster of machines

machinery - Machinery is an asynchronous task queue/job queue based on distributed message passing.

verneuil - Verneuil is a VFS extension for SQLite that asynchronously replicates databases to S3-compatible blob stores.

gocelery - Celery Distributed Task Queue in Go

BeanstalkD - Beanstalk is a simple, fast work queue.

cadence - Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.

asciiflow - ASCIIFlow

nsq - A realtime distributed messaging platform

workerpool-go - auto-scaling worker pool (work queue) in Go, using generics

Asynq - Simple, reliable, and efficient distributed task queue in Go

docker-compose - Temporal docker-compose files

hermes - Tiny MQTT broker written in Go