From 43ee679638f34e5cd1c27fe1bde337e26b0fe67a Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Sat, 14 Oct 2017 01:09:11 -0700 Subject: [PATCH] Move docs to more obvious directory --- {doc => DOC}/BACKUPS.md | 2 +- {doc => DOC}/BULK.md | 0 {doc => DOC}/CLI.md | 0 {doc => DOC}/CLUSTER_MGMT.md | 2 +- {doc => DOC}/CONSISTENCY.md | 0 {doc => DOC}/DATA_API.md | 6 +++--- {doc => DOC}/DESIGN.md | 0 {doc => DOC}/DIAGNOSTICS.md | 0 {doc => DOC}/DISCOVERY.md | 0 {doc => DOC}/FOREIGN_KEY_CONSTRAINTS.md | 2 +- {doc => DOC}/README.md | 0 {doc => DOC}/RESTORE_FROM_SQLITE.md | 4 ++-- {doc => DOC}/SECURITY.md | 0 {doc => DOC}/logo-text-50.png | Bin {doc => DOC}/logo-text.png | Bin README.md | 20 ++++++++++---------- 16 files changed, 18 insertions(+), 18 deletions(-) rename {doc => DOC}/BACKUPS.md (74%) rename {doc => DOC}/BULK.md (100%) rename {doc => DOC}/CLI.md (100%) rename {doc => DOC}/CLUSTER_MGMT.md (99%) rename {doc => DOC}/CONSISTENCY.md (100%) rename {doc => DOC}/DATA_API.md (98%) rename {doc => DOC}/DESIGN.md (100%) rename {doc => DOC}/DIAGNOSTICS.md (100%) rename {doc => DOC}/DISCOVERY.md (100%) rename {doc => DOC}/FOREIGN_KEY_CONSTRAINTS.md (95%) rename {doc => DOC}/README.md (100%) rename {doc => DOC}/RESTORE_FROM_SQLITE.md (92%) rename {doc => DOC}/SECURITY.md (100%) rename {doc => DOC}/logo-text-50.png (100%) rename {doc => DOC}/logo-text.png (100%) diff --git a/doc/BACKUPS.md b/DOC/BACKUPS.md similarity index 74% rename from doc/BACKUPS.md rename to DOC/BACKUPS.md index 621fad6f..a26122c5 100644 --- a/doc/BACKUPS.md +++ b/DOC/BACKUPS.md @@ -6,4 +6,4 @@ rqlite supports hot backing up a node. You can retrieve and write a consistent s curl localhost:4001/db/backup -o bak.sqlite3 ``` -This file can then be used to restore a node (or cluster) using the [restore API](https://github.com/rqlite/rqlite/blob/master/doc/RESTORE_FROM_SQLITE.md). +This file can then be used to restore a node (or cluster) using the [restore API](https://github.com/rqlite/rqlite/blob/master/DOC/RESTORE_FROM_SQLITE.md). diff --git a/doc/BULK.md b/DOC/BULK.md similarity index 100% rename from doc/BULK.md rename to DOC/BULK.md diff --git a/doc/CLI.md b/DOC/CLI.md similarity index 100% rename from doc/CLI.md rename to DOC/CLI.md diff --git a/doc/CLUSTER_MGMT.md b/DOC/CLUSTER_MGMT.md similarity index 99% rename from doc/CLUSTER_MGMT.md rename to DOC/CLUSTER_MGMT.md index 8a890f79..0ca4126e 100644 --- a/doc/CLUSTER_MGMT.md +++ b/DOC/CLUSTER_MGMT.md @@ -38,7 +38,7 @@ You've now got a fault-tolerant, distributed, relational database. It can tolera You can pass `0.0.0.0` to both `-http-addr` and `-raft-addr` if you wish a node to listen on all interfaces. You must still pass an explicit network address to `-join` however. ## Discovery Service -There is also a rqlite _Discovery Service_, allowing nodes to automatically connect and form a cluster. This can be much more convenient, allowing clusters to be dynamically created. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/doc/DISCOVERY.md) for more details. +There is also a rqlite _Discovery Service_, allowing nodes to automatically connect and form a cluster. This can be much more convenient, allowing clusters to be dynamically created. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/DOC/DISCOVERY.md) for more details. ## Through the firewall On some networks, like AWS EC2 cloud, nodes may have an IP address that is not routable from outside the firewall. Instead these nodes are addressed using a different IP address. You can still form a rqlite cluster however -- check out [this tutorial](http://www.philipotoole.com/rqlite-v3-0-1-globally-replicating-sqlite/) for more details. diff --git a/doc/CONSISTENCY.md b/DOC/CONSISTENCY.md similarity index 100% rename from doc/CONSISTENCY.md rename to DOC/CONSISTENCY.md diff --git a/doc/DATA_API.md b/DOC/DATA_API.md similarity index 98% rename from doc/DATA_API.md rename to DOC/DATA_API.md index 5d5ad99d..4f0fac64 100644 --- a/doc/DATA_API.md +++ b/DOC/DATA_API.md @@ -80,7 +80,7 @@ The response is of the form: ``` ### Read Consistency -You can learn all about the read consistency guarantees supported by rqlite [here](https://github.com/rqlite/rqlite/blob/master/doc/CONSISTENCY.md). +You can learn all about the read consistency guarantees supported by rqlite [here](https://github.com/rqlite/rqlite/blob/master/DOC/CONSISTENCY.md). ## Transactions Transactions are supported. To execute statements within a transaction, add `transaction` to the URL. An example of the above operation executed within a transaction is shown below. @@ -120,7 +120,7 @@ What happens when you send a request to a follower depends on the nature of the You must always send write-requests (requests will change the database) to the leader. If you send a write-request to a follower, the follower will respond with [HTTP 301 Moved Permanently](https://en.wikipedia.org/wiki/HTTP_301) and include the address of the leader as the `Location` header in the response. -The situation for queries -- requests which just read data -- is somewhat different. If you send the request to a node that is not the leader of the cluster, and specify `strong` or `weak` as the [read-consistency level](https://github.com/rqlite/rqlite/blob/master/doc/CONSISTENCY.md), the node will also respond with [HTTP 301 Moved Permanently](https://en.wikipedia.org/wiki/HTTP_301) and include the address of the leader as the `Location` header in the response. +The situation for queries -- requests which just read data -- is somewhat different. If you send the request to a node that is not the leader of the cluster, and specify `strong` or `weak` as the [read-consistency level](https://github.com/rqlite/rqlite/blob/master/DOC/CONSISTENCY.md), the node will also respond with [HTTP 301 Moved Permanently](https://en.wikipedia.org/wiki/HTTP_301) and include the address of the leader as the `Location` header in the response. However, if you specify `none` for read-consistency the node will query its local SQLite database. No redirect will be returned. @@ -152,6 +152,6 @@ It is up the clients to re-issue the command to the leader. This choice was made, as it provides maximum visibility to the clients. For example, if a follower transparently forwarded a request to the leader, and one of the nodes then crashed during processing, it may be much harder for the client to determine where in the chain of nodes the processing failed. ## Bulk API -You can learn about the bulk API [here](https://github.com/rqlite/rqlite/blob/master/doc/BULK.md). +You can learn about the bulk API [here](https://github.com/rqlite/rqlite/blob/master/DOC/BULK.md). diff --git a/doc/DESIGN.md b/DOC/DESIGN.md similarity index 100% rename from doc/DESIGN.md rename to DOC/DESIGN.md diff --git a/doc/DIAGNOSTICS.md b/DOC/DIAGNOSTICS.md similarity index 100% rename from doc/DIAGNOSTICS.md rename to DOC/DIAGNOSTICS.md diff --git a/doc/DISCOVERY.md b/DOC/DISCOVERY.md similarity index 100% rename from doc/DISCOVERY.md rename to DOC/DISCOVERY.md diff --git a/doc/FOREIGN_KEY_CONSTRAINTS.md b/DOC/FOREIGN_KEY_CONSTRAINTS.md similarity index 95% rename from doc/FOREIGN_KEY_CONSTRAINTS.md rename to DOC/FOREIGN_KEY_CONSTRAINTS.md index f070bdff..4997f928 100644 --- a/doc/FOREIGN_KEY_CONSTRAINTS.md +++ b/DOC/FOREIGN_KEY_CONSTRAINTS.md @@ -2,4 +2,4 @@ Since SQLite does not enforce foreign key constraints by default, neither does rqlite. However you can enable foreign key constraints on rqlite simply by sending `PRAGMA foreign_keys=ON` via the [CLI](https://github.com/rqlite/rqlite/tree/master/cmd/rqlite) or the [write API](https://github.com/rqlite/rqlite/blob/master/README.md#writing-data). Constraints will then remain enabled, even across restarts, until the statement `PRAGMA foreign_keys=OFF` is issued. -You can check the current state of foreign key constraints at anytime via the [status API](https://github.com/rqlite/rqlite/blob/master/doc/DIAGNOSTICS.md). +You can check the current state of foreign key constraints at anytime via the [status API](https://github.com/rqlite/rqlite/blob/master/DOC/DIAGNOSTICS.md). diff --git a/doc/README.md b/DOC/README.md similarity index 100% rename from doc/README.md rename to DOC/README.md diff --git a/doc/RESTORE_FROM_SQLITE.md b/DOC/RESTORE_FROM_SQLITE.md similarity index 92% rename from doc/RESTORE_FROM_SQLITE.md rename to DOC/RESTORE_FROM_SQLITE.md index 979e898b..0b6cf164 100644 --- a/doc/RESTORE_FROM_SQLITE.md +++ b/DOC/RESTORE_FROM_SQLITE.md @@ -1,6 +1,6 @@ # Restoring from a SQLite dump file -rqlite supports loading a node directly from a SQLite dump file. This is a fast and efficient manner to initialize a system from an existing SQLite database, or to restore from an existing [node backup](https://github.com/rqlite/rqlite/blob/master/doc/BACKUPS.md). An example restore is shown below. +rqlite supports loading a node directly from a SQLite dump file. This is a fast and efficient manner to initialize a system from an existing SQLite database, or to restore from an existing [node backup](https://github.com/rqlite/rqlite/blob/master/DOC/BACKUPS.md). An example restore is shown below. ## Example The following example shows a trivial database being generated by `sqlite3`, the SQLite file being backed up, converted to the corresponding list of SQL commands, and then loaded into a rqlite node listening on localhost. _Be sure to set the Content-type header as shown._ @@ -27,4 +27,4 @@ $ rqlite +----+-------+ ``` -The behavior of the restore operation when data already exists on the node is undefined. Also, please **note that SQLite dump files normally contain a command to disable Foreign Key constraints**. If you wish to re-enable Foreign Key constraints after the load operation completes, check out [this documentation](https://github.com/rqlite/rqlite/blob/master/doc/FOREIGN_KEY_CONSTRAINTS.md). +The behavior of the restore operation when data already exists on the node is undefined. Also, please **note that SQLite dump files normally contain a command to disable Foreign Key constraints**. If you wish to re-enable Foreign Key constraints after the load operation completes, check out [this documentation](https://github.com/rqlite/rqlite/blob/master/DOC/FOREIGN_KEY_CONSTRAINTS.md). diff --git a/doc/SECURITY.md b/DOC/SECURITY.md similarity index 100% rename from doc/SECURITY.md rename to DOC/SECURITY.md diff --git a/doc/logo-text-50.png b/DOC/logo-text-50.png similarity index 100% rename from doc/logo-text-50.png rename to DOC/logo-text-50.png diff --git a/doc/logo-text.png b/DOC/logo-text.png similarity index 100% rename from doc/logo-text.png rename to DOC/logo-text.png diff --git a/README.md b/README.md index 1fcce862..c724ca2f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + [![Circle CI](https://circleci.com/gh/rqlite/rqlite/tree/master.svg?style=svg)](https://circleci.com/gh/rqlite/rqlite/tree/master) [![appveyor](https://ci.appveyor.com/api/projects/status/github/rqlite/rqlite?branch=master&svg=true)](https://ci.appveyor.com/project/otoolep/rqlite) [![GoDoc](https://godoc.org/github.com/rqlite/rqlite?status.svg)](https://godoc.org/github.com/rqlite/rqlite) [![Go Report Card](https://goreportcard.com/badge/github.com/rqlite/rqlite)](https://goreportcard.com/report/github.com/rqlite/rqlite) [![Release](https://img.shields.io/github/release/rqlite/rqlite.svg)](https://github.com/rqlite/rqlite/releases) [![Google Group](https://img.shields.io/badge/Google%20Group--blue.svg)](https://groups.google.com/group/rqlite) @@ -14,8 +14,8 @@ You could use rqlite as part of a larger system, as a central store for some cri - Fully replicated production-grade SQL database. - [Production-grade](https://github.com/hashicorp/raft) distributed consensus system. - An easy-to-use HTTP(S) API, including leader-redirection and bulk-update support. A CLI is also available. -- [Discovery Service support](https://github.com/rqlite/rqlite/blob/master/doc/DISCOVERY.md), allowing clusters to be dynamically created. -- [Extensive security and encryption support](https://github.com/rqlite/rqlite/blob/master/doc/SECURITY.md), including node-to-node encryption. +- [Discovery Service support](https://github.com/rqlite/rqlite/blob/master/DOC/DISCOVERY.md), allowing clusters to be dynamically created. +- [Extensive security and encryption support](https://github.com/rqlite/rqlite/blob/master/DOC/SECURITY.md), including node-to-node encryption. - Choice of read consistency levels. - Transaction support. - Hot backups. @@ -40,13 +40,13 @@ rqlited -http-addr localhost:4005 -raft-addr localhost:4006 -join http://localho ``` _This demonstration shows all 3 nodes running on the same host. In reality you probably wouldn't do this, and then you wouldn't need to select different -http-addr and -raft-addr ports for each rqlite node._ -With just these few steps you've now got a fault-tolerant, distributed relational database. For full details on creating and managing real clusters check out [this documentation](https://github.com/rqlite/rqlite/blob/master/doc/CLUSTER_MGMT.md). +With just these few steps you've now got a fault-tolerant, distributed relational database. For full details on creating and managing real clusters check out [this documentation](https://github.com/rqlite/rqlite/blob/master/DOC/CLUSTER_MGMT.md). #### Cluster Discovery -There is also a rqlite _Discovery Service_, allowing nodes to automatically connect and form a cluster. This can be much more convenient, allowing clusters to be dynamically created. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/doc/DISCOVERY.md) for more details. +There is also a rqlite _Discovery Service_, allowing nodes to automatically connect and form a cluster. This can be much more convenient, allowing clusters to be dynamically created. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/DOC/DISCOVERY.md) for more details. ### Inserting records -Let's insert some records via the [rqlite CLI](https://github.com/rqlite/rqlite/blob/master/doc/CLI.md), using standard SQLite commands. Once inserted, these records will be replicated across the cluster, in a durable and fault-tolerant manner. Your 3-node cluster can suffer the failure of a single node without any loss of functionality. +Let's insert some records via the [rqlite CLI](https://github.com/rqlite/rqlite/blob/master/DOC/CLI.md), using standard SQLite commands. Once inserted, these records will be replicated across the cluster, in a durable and fault-tolerant manner. Your 3-node cluster can suffer the failure of a single node without any loss of functionality. ``` $ rqlite 127.0.0.1:4001> CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT) @@ -68,7 +68,7 @@ $ rqlite ``` ## Data API -rqlite has a rich HTTP API, allowing full control over writing to, and querying from, rqlite. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/doc/DATA_API.md) for full details. There are also [client libraries available](https://github.com/rqlite). +rqlite has a rich HTTP API, allowing full control over writing to, and querying from, rqlite. Check out [the documentation](https://github.com/rqlite/rqlite/blob/master/DOC/DATA_API.md) for full details. There are also [client libraries available](https://github.com/rqlite). ## 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. @@ -93,13 +93,13 @@ INSERT INTO foo (n) VALUES(random()); * SQLite dot-commands such as `.schema` or `.tables` are not directly supported by the API, but the rqlite CLI supports some very similar functionality. This is because those commands are features of the `sqlite3` command, not SQLite itself. ## Status API -You can learn how check status and diagnostics [here](https://github.com/rqlite/rqlite/blob/master/doc/DIAGNOSTICS.md). +You can learn how check status and diagnostics [here](https://github.com/rqlite/rqlite/blob/master/DOC/DIAGNOSTICS.md). ## Backup and restore -Learn how to hot backup your rqlite cluster [here](https://github.com/rqlite/rqlite/blob/master/doc/BACKUPS.md). You can also load data [directly from a SQLite dump file](https://github.com/rqlite/rqlite/blob/master/doc/RESTORE_FROM_SQLITE.md). +Learn how to hot backup your rqlite cluster [here](https://github.com/rqlite/rqlite/blob/master/DOC/BACKUPS.md). You can also load data [directly from a SQLite dump file](https://github.com/rqlite/rqlite/blob/master/DOC/RESTORE_FROM_SQLITE.md). ## Security -You can learn about securing access, and restricting users' access, to rqlite [here](https://github.com/rqlite/rqlite/blob/master/doc/SECURITY.md). +You can learn about securing access, and restricting users' access, to rqlite [here](https://github.com/rqlite/rqlite/blob/master/DOC/SECURITY.md). ## Projects using rqlite If you are using rqlite in a project, please generate a pull request to add it to this list.