add sqlite wiki

Chris Lu 2021-05-24 00:11:08 -07:00
parent 69009886aa
commit ed41f4f5cf
5 changed files with 6 additions and 5 deletions

@ -54,7 +54,7 @@ Filer has a persistent client connecting to Master, to get the location updates
There are no network round trip to lookup the volume id location.
For file reads:
1. Filer lookup metadata from Filer Store, which can be Cassandra/Mysql/Postgres/Redis/LevelDB/etcd/TiKV.
1. Filer lookup metadata from Filer Store, which can be Cassandra/Mysql/Postgres/Redis/LevelDB/etcd/Sqlite.
2. Filer read from volume servers and pass along to the read request.
![](FilerRead.png)

@ -1,4 +1,4 @@
SeaweedFS can utilize existing familiar data store, e.g., Cassandra, Mysql, Postgres, Redis, to store the filer metadata.
SeaweedFS can utilize existing familiar data store, e.g., Cassandra, Mysql, Postgres, Redis, Sqlite, to store the filer metadata.
The following takes Cassandra as an example.

@ -25,9 +25,9 @@ It can also enables Active-Active or one-directional replication.
## Use Cases
For filer stores using shared filer stores, such as shared Mysql/Postgres/Cassandra/Redis/ElasticSearch/etc in [[Filer-Stores]], this is not really needed, since all filers are stateless, and there are no need to replicate the meta data back to the same filer store.
For filer stores using shared filer stores, such as shared Mysql/Postgres/Cassandra/Redis/Sqlite/ElasticSearch/etc in [[Filer-Stores]], this is not really needed, since all filers are stateless, and there are no need to replicate the meta data back to the same filer store.
But if each filer has its own filer store, usually with the default local Leveldb, or even with a dedicated Mysql/Postgres/Cassandra/Redis/etc store, this would be very useful.
But if each filer has its own filer store, usually with the default local Leveldb, or even with a dedicated Mysql/Postgres/Cassandra/Redis/Sqlite/etc store, this would be very useful.
Sometimes you may want to replicate the existing store to a new filer store, or move to a new filer store, this would also be useful.

@ -9,6 +9,7 @@ The Filer Store persists all file metadata and directory information.
| leveldb2 | O(logN)| unlimited | Local, Very Fast | | Yes| | Similar to leveldb, part of the lookup key is 128bit MD5 instead of the long full file path |
| leveldb3 | O(logN)| unlimited | Local, Very Fast | | Yes| Yes| Similar to leveldb2, separate leveldb instance for each bucket |
| RocksDB | O(logN)| unlimited | Local, Very Fast | | Native| | Default, fairly scalable |
| Sqlite | O(logN)| unlimited | Local, Very Fast |Atomic| Yes | Yes | Default, fairly scalable, Stream backup |
| Mongodb | O(logN)| unlimited | Local or Distributed, Fast | | Yes| | Easy to manage |
| Redis | O(1) | limited | Local or Distributed, Fastest ||Native| | one directory's sub file names are stored in one key~value entry |
| Cassandra | O(logN)| unlimited | Local or Distributed, Very Fast||Native| | |

@ -176,7 +176,7 @@ $ bin/hdfs dfs -ls seaweedfs://localhost:8888/
# Notes
## Atomicity
SeaweedFS satisfies the HCFS [requirements](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystem/introduction.html) that the following operations to be atomic, when using MySql/Postgres database transactions.
SeaweedFS satisfies the HCFS [requirements](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystem/introduction.html) that the following operations to be atomic, when using MySql/Postgres/Sqlite database transactions.
1. Creating a file. If the overwrite parameter is false, the check and creation MUST be atomic.
1. Deleting a file.