verneuil VS bb-remote-execution

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

verneuil

Verneuil is a VFS extension for SQLite that asynchronously replicates databases to S3-compatible blob stores. (by backtrace-labs)

bb-remote-execution

Tools for Buildbarn to allow remote execution of build actions (by buildbarn)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
verneuil bb-remote-execution
5 3
389 103
0.8% 2.9%
6.7 8.2
2 months ago 22 days ago
C Go
MIT License Apache License 2.0
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.

verneuil

Posts with mentions or reviews of verneuil. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-13.
  • Show HN: Query SQLite files stored in S3
    10 projects | news.ycombinator.com | 13 Sep 2022
  • Embedded database with VFS support?
    1 project | /r/rust | 22 Aug 2022
    It'd be process wide. If you want an example can check out the example using a vfs here. There's an explicit passing of vfs there and an implicit usage of it. https://github.com/backtrace-labs/verneuil/blob/main/examples/rusqlite_integration.rs
  • LiteFS a FUSE-based file system for replicating SQLite
    5 projects | news.ycombinator.com | 26 Jul 2022
  • A database for 2022 ยท Tailscale
    1 project | /r/programming | 2 Apr 2022
    It doesn't even have to be WAL-based system. Backtrace Labs has a SQLite virtual file system (VFS) called Verneuil that works similarly but works with the rollback journal instead of the WAL.
  • Ask HN: P2P Databases?
    3 projects | news.ycombinator.com | 1 Mar 2022
    https://github.com/backtrace-labs/verneuil/ is one way to address the diffing / read replica part of the problem. I believe it's compatible with gossipping: most of the data is in small content-addressed chunks, with small manifests that tell clients what chunks to fetch and how to reassemble them to recreate a sqlite database. There's already client-side caching to persistent storage, and chunks can be fetched on demand.

    Sharing replication data P2P, while retaining the simplicity of a single authoritative writer per database, is explicitly part of the project's long-term goals!

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...

What are some alternatives?

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

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

go-ds-crdt - A distributed go-datastore implementation using Merkle-CRDTs.

BeanstalkD - Beanstalk is a simple, fast work queue.

WCDB - WCDB is a cross-platform database framework developed by WeChat.

asciiflow - ASCIIFlow

dqlite - Embeddable, replicated and fault-tolerant SQL engine.

miniqueue - A simple, single binary, message queue. Supports HTTP/2 and Redis Protocol.

s3fs - S3 Filesystem

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

s3sqlite - Query SQLite files in S3 using s3fs

Apache Ignite - Apache Ignite