Comments (9)
What about dropping support for external linking to libraft altogether? Not sure what it is needed for, but it seems to mostly just bring confusion.
from dqlite.
What about dropping support for external linking to libraft altogether? Not sure what it is needed for, but it seems to mostly just bring confusion.
I wanted to give users of dqlite a transition period to switch over to the new build configuration. We will definititely remove the option to link a libraft eventually.
Yeah, I gathered that, but I don't quite see why a user would want to stick to the old configuration.
If you just make the new configuration the default, that will be virtually transparent to users, because you're removing a dependency, not adding one. And on the plus side people won't be confused, it should just work afaict.
from dqlite.
If you just make the new configuration the default, that will be virtually transparent to users, because you're removing a dependency, not adding one.
I agree this is convenient, but it seems like a potential violation of expectations that code from libraft.so no longer runs after an upgrade in this case. What if someone has installed a patched libraft and is relying on dqlite to call into that patched code? The transition period gives people a chance to explicitly turn on --enable-build-raft
and simultaneously update how they build and install dqlite to reflect that libraft is no longer in the loop.
That said, we've had three releases now featuring --enable-build-raft
, so it's probably a good idea to retire it with the next release. Thanks to you both for pointing out the potential confusion.
from dqlite.
Duplicate of #650, #594, and #549, and the answer is the same. Please don't open additional issues about this.
from dqlite.
Two of those tickets are about to the same issue.
I'm using raft from https://github.com/cowsql/raft/ (0.22.1).
Just checked raft 0.22.1 source code.
[tkloczko@pers-jacek raft-0.22.1]$ grep -r raft_register_state_cb
[tkloczko@pers-jacek raft-0.22.1]$
from dqlite.
https://github.com/canonical/raft/ is at the moment archived so it is no longer maintained.
Q: where is raft which I should use? 🤔
from dqlite.
From https://github.com/canonical/raft/
The dqlite team is no longer maintaining our raft implementation as an independent project. Instead, the raft source code has been incorporated into canonical/dqlite as a private implementation detail
and looks like just released new version wants to use system installed raft
checking pkg-config is at least version 0.9.0... yes
checking for SQLITE... yes
checking for UV... yes
checking for RAFT... no
configure: error: Package requirements (raft >= 0.18.1) were not met:
Package 'raft', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
So I'm now puzzled a bit 🤔
from dqlite.
@kloczek Apologize for the confusion, I thought I'd explained this fully elsewhere but maybe I left some key details out. The following are all true:
--enable-build-raft
is now the preferred way to build dqlite.canonical/raft
is archived and not receiving new releases (past v0.18.1).- The dqlite build system continues to support linking to a separately-build libraft.so. This is the default (if you don't pass
--enable-build-raft
) to maintain backward compatibility. - When using the "separately-built libraft" configuration, dqlite depends on canonical/raft, not cowsql/raft. You should use the last release of canonical/raft, v0.18.1. If you install cowsql/raft and try to build dqlite against it, our configure script will find the library (since it's installed under the same pkg-config name as canonical/raft), but then the actual build will fail because cowsql/raft doesn't implement all features of canonical/raft v0.18.1. The dqlite team can't do anything about this.
- Eventually, the "separately-built libraft" build configuration for dqlite will go away, and
--enable-build-raft
will be the default and only choice. This is why you should switch to--enable-build-raft
as soon as possible.
I hope that covers everything!
from dqlite.
What about dropping support for external linking to libraft altogether? Not sure what it is needed for, but it seems to mostly just bring confusion.
I wanted to give users of dqlite a transition period to switch over to the new build configuration. We will definititely remove the option to link a libraft eventually.
from dqlite.
Related Issues (20)
- 1.16.2: build fails with raft 0.22.0 HOT 3
- Fix Coverity
- Use execinfo.h instead of libbacktrace HOT 3
- Set up tmate action
- Set up a canary PPA to get feedback from LP builders before merge HOT 2
- no known leader error forever
- Node.js bindings HOT 1
- Fix cases where the server can return a FAILURE message with result code 0
- Investigate what causes LXD's dqlite to create lots of singleton closed segments
- Flaky test: cluster/restart HOT 5
- 1.16.4: build fails on linking with missing `raft_register_state_cb` symbol HOT 1
- posix_fallocate extremely slow on ext3 file system HOT 1
- Documentation links are broken HOT 3
- dqlite requires a large stack HOT 3
- MicroOVN built with latest Dqlite crashes on cluster formation. HOT 5
- Investigate CPU spikes when performing role adjustment
- Term increment is skipped in one-node clusters
- Tracking issue for improved observability
- Recursion in EXEC_SQL request handling
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dqlite.