Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LiteFS FAQ: Are LiteFS deploys zero downtime? #1066

Merged
merged 1 commit into from
Sep 23, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion litefs/faq.html.markerb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: LiteFS FAQ (Frequently Asked Questions)
title: LiteFS FAQ
layout: docs
sitemap: false
nav: litefs
Expand All @@ -20,10 +20,10 @@
application servers can process read requests from their local, on-disk
database rather than communicating with a database server over the network.

It can also be used for replicating auxillery databases to a fleet of servers so

Check notice on line 23 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L23

[Fly.Spelling] Is 'auxillery' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'auxillery' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 23, "column": 37}}}, "severity": "INFO"}
that changes on the primary are immediately visible to replicas. These
databases can include configuration information or they can include supplemental
data like geospatial lookups.

Check notice on line 26 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L26

[Fly.Spelling] Is 'geospatial' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'geospatial' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 26, "column": 11}}}, "severity": "INFO"}

Check notice on line 26 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L26

[Fly.Spelling] Is 'lookups' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'lookups' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 26, "column": 22}}}, "severity": "INFO"}


## What tool(s) does LiteFS replace?
Expand All @@ -31,7 +31,7 @@
LiteFS works similarly to Postgres or MySQL streaming replication so it can be
used as an alternative to those tools when you are using SQLite as your
database. SQLite read queries are extremely fast so some users find that they
no longer need tools such as Redis or memcached.

Check notice on line 34 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L34

[Fly.Spelling] Is 'memcached' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'memcached' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 34, "column": 39}}}, "severity": "INFO"}


## What size databases can LiteFS handle?
Expand Down Expand Up @@ -72,17 +72,34 @@
synchronous replication in the future.


## Are LiteFS deploys zero downtime?

Rolling deploys of a LiteFS cluster will not experience any read availability
loss but may have a short window of a few milliseconds of write availability
loss. LiteFS can handoff the role of primary to another candidate node
automatically but the primary changes can take a few milliseconds to propagate
to replica nodes so they may redirect to the old primary during this short
window.

In the event of a sudden failure of the primary node, a different candidate node
will acquire primary status via a distributed lease from Consul. By default,
the lease has a time-to-live (TTL) of 10 seconds so you could lose write
availability for up to that amount of time. Your database will still be readable
by all LiteFS nodes during this time though.


## What's the difference between LiteFS & Litestream?

Check notice on line 91 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L91

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 91, "column": 43}}}, "severity": "INFO"}

[Litestream](https://litestream.io/) is intended as a single-node, disaster

Check notice on line 93 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L93

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 93, "column": 2}}}, "severity": "INFO"}
recovery tool. If you are only running a single server then it can be a great
option. The main tradeoffs of using Litestream are that it cannot replicate

Check notice on line 95 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L95

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 95, "column": 37}}}, "severity": "INFO"}
data to other live servers and it does not support automatic failover.

LiteFS was originally split off of Litestream in order to keep Litestream as a

Check notice on line 98 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L98

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 98, "column": 36}}}, "severity": "INFO"}

Check notice on line 98 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L98

[Fly.WordList] Consider using 'to' instead of 'in order to'.
Raw output
{"message": "[Fly.WordList] Consider using 'to' instead of 'in order to'.", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 98, "column": 47}}}, "severity": "INFO"}

Check notice on line 98 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L98

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 98, "column": 64}}}, "severity": "INFO"}
simple disaster recovery tool. LiteFS improves upon Litestream by adding live

Check notice on line 99 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L99

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 99, "column": 53}}}, "severity": "INFO"}
replication to replica servers and it provides failover by using
[Consul](https://consul.io/) for distributed leases.

When making a decision between the two tools, you'll typically choose Litestream

Check notice on line 103 in litefs/faq.html.markerb

View workflow job for this annotation

GitHub Actions / vale

[vale] litefs/faq.html.markerb#L103

[Fly.Spelling] Is 'Litestream' a typo?
Raw output
{"message": "[Fly.Spelling] Is 'Litestream' a typo?", "location": {"path": "litefs/faq.html.markerb", "range": {"start": {"line": 103, "column": 71}}}, "severity": "INFO"}
for single-server deployments and LiteFS for multi-server deployments.