jitl 126 days ago [-]
Not to be confused with ActorDB, a distributed SQLite-based database for highly-sharded data. These two systems are similar in that they are both new SQL systems on top of SQLite, but they seem to differ greatly in use-case

https://github.com/biokoda/actordb

shalabhc 126 days ago [-]
Does actordb subsume the functionality of rqlite?

As in, can I tell actordb 'replicate this actor to all nodes' and then will it basically be the same as rqlite, but with page level replication?

cmorelli 126 days ago [-]
Honest question: why would I want a distributed scale-out RDBMS based on SQLite when there are others based on more performant server-based solutions (see Citus for PostgreSQL, Galera for MySQL, etc)

My understanding/recollection of SQLite is that it has significant performance issues with high concurrency. Great for a database on a pocket device, not the best choice for a horizontal scale-out high-concurrency system. At what point do I need horizontal scalability, but not care about concurrency on any one node?

Again, honest question - I'm not doubting the project or its value, I just don't get it.

hamandcheese 126 days ago [-]
I think you're misunderstanding the goals of the project. It's not to create a horizontally scalable DB. Write perflrmance will not scale horizontally at all with this database.

The goal is to create something more like an etcd that can hold structured data.

otoolep 126 days ago [-]
Exactly.
justinsaccount 126 days ago [-]
From the README:

Why?

rqlite gives you the functionality of a rock solid, fault-tolerant, replicated relational database, but with very easy installation, deployment, and operation. With it you've got a lightweight and reliable distributed relational data store. Think etcd or Consul, but with relational data modelling also available.

You could use rqlite as part of a larger system, as a central store for some critical relational data, without having to run a heavier solution like MySQL.

Performance

rqlite replicates SQLite for fault-tolerance. It does not replicate it for performance. In fact performance is reduced somewhat due to the network round-trips.

bauerd 126 days ago [-]
Congrats on the release! A bit unrelated, but the README says Windows is an officially supported platform, and I've seen this be the case on many Go projects. I know very little about the Windows platform, can you comment on how painless supporting Windows is really with Go? Do you have e.g. CI runs on Windows? With most of the compiled stuff I worked on Windows was mostly an afterthought and always yes-it-should-run-but. Can I trust Go to spit out binaries that work, or do I have to avoid certain stdlib features? What about e.g. fork?
reitanqild 126 days ago [-]
I know very little about the Windows platform

As someone who started in the 90ies this makes me smile.

Year of the linux desktop or not: something has changed. (Quite aware that the bauerd might be using something else.)

simlevesque 126 days ago [-]
He could be a Mac user for all we know.
reitanqild 126 days ago [-]
Yes, I tried to mention that.

My point is the Windows monopoly is almost broken and I think everyone including Windows users benefit from that.

krylon 126 days ago [-]
> the Windows monopoly is almost broken

Oh, how I wish that were true.

In some areas, yes, but there so many line-of-business applications that are only available for Windows that even if Microsoft stopped developing Windows, people would continue to use it for a very long time.

I am not at all a fan of Steven Ballmer, but he got it right - if you get the developers to flock to your platform, you win. Microsoft did that in the desktop space, Apple did it in the mobile space.

reitanqild 126 days ago [-]
>> the Windows monopoly is almost broken

> Oh, how I wish that were true.

Windows lost mobile. They lost pads. More people than ever are using Macs. More people than ever are using Linux and various nixes. Linux, Macs and other nixes are considered cooler than Windows.

Windows lost servers, although Microsoft seems to have won a good chunk of developer mindshare with Azure - running mostly (AFAIK) Linux.

Yes, a lot of legacy systems still use Windows but it seems less and less need Windows every year.

Except from Manic time and Microsoft Office I cannot think of any software that I personally would need Windows for at the moment.

Netbeans and Maven run better in Neon. Same goes for Node and a lot of other software I care about AFAIK.

Even CSGO seems to work better on Linux for weeks (until next bad update, I think last waa when sound was messed up probably back in March.)

codefined 126 days ago [-]
Not related to this project, but have done projects in Go. In terms of CI runs, AppVeyor[0] is the most popular one, it allows a similar setup to Travis and has most of the functionality too.

Build compatability is also great with Go. The only issues I've run into so far are graphical applications which often require different libraries for different platforms. Nothing I've done that's not graphical has ever had compatability issues (except file stat).

[0] https://www.appveyor.com/

otoolep 126 days ago [-]
Yes, the project employs Appveyor to ensure that the project can be built on Windows at all times.

https://github.com/rqlite/rqlite/blob/master/appveyor.yml

https://ci.appveyor.com/project/otoolep/rqlite

ngrilly 126 days ago [-]
Is there a way to create an index without blocking other connections trying to insert/update/select?
otoolep 126 days ago [-]
rqlite has the same limitations as SQLite in this regard.
ngrilly 125 days ago [-]
Thanks.
rectangletangle 126 days ago [-]
Looks interesting. I assume this inherits the write lock limitations from SQLite?
otoolep 126 days ago [-]
Yes it does.
v4n4d1s 126 days ago [-]
Can this be used as a "drop-in" replacement for sqlite or do I have to modify my application for it?
rcarmo 126 days ago [-]
For Python at least, there's a "normal" driver that is pretty much a drop-in. Am curious as to how it will work in practice myself, since I usually rely on an ORM these days.
otoolep 126 days ago [-]
You can find various client libraries here: https://github.com/rqlite
126 days ago [-]