From 8a7c061539a8e03fcff65141c8f54b4f68a620cb Mon Sep 17 00:00:00 2001 From: Baptiste Jamin Date: Tue, 18 Dec 2018 18:01:19 +0100 Subject: [PATCH 1/2] Update README.md --- README.md | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 199affe70..294dcd4e6 100644 --- a/README.md +++ b/README.md @@ -8,49 +8,47 @@ https://www.rust-lang.org) A _full-text search database_ using a key-value store internally. -It uses [RocksDB](https://github.com/facebook/rocksdb) like a classic database, to store documents and internal data. The key-value store power allow us to handle updates and queries with small memory and CPU overheads. +It uses [RocksDB](https://github.com/facebook/rocksdb) as a built-in database, to store documents and internal data. The key-value store power allow us to handle updates and queries with small memory and CPU overheads. -You can [read the deep dive](deep-dive.md) if you want more informations on the engine, it describes the whole process of generating updates and handling queries. +You can [read the deep dive](deep-dive.md) if you want more information on the engine, it describes the whole process of generating updates and handling queries. -We will be proud if you send pull requests to help us grow this project, you can start with [issues tagged "good-first-issue"](https://github.com/Kerollmops/MeiliDB/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start ! +We will be proud if you submit pull requests. It will help to help to grow this project, you can start contributing by checking [issues tagged "good-first-issue"](https://github.com/Kerollmops/MeiliDB/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). It a good start! -At the moment this is a library only, this means that binaries are not part of this repository but since I'm still nice I have made some examples for you in the `examples/` folder that works with the data located in the `misc/` folder. +At the moment this project is only a library. It means that it's not prividing yet any binaries. To get started, we provided some examples in the `examples/` folder that are made to work with the data located in the `misc/` folder. -In a near future MeiliDB we be a binary like any database: updated and queried using some kind of protocol. It is the final goal, [see the milestones](https://github.com/Kerollmops/MeiliDB/milestones). MeiliDB will just be a bunch of network and protocols functions wrapping the library which itself will be published to https://crates.io, following the same update cycle. +In a near future MeiliDB, we will provide a binary to execute this project as database, so you will be able to update and query it using a protocol. This will be our final goal, [see the milestones](https://github.com/Kerollmops/MeiliDB/milestones). At the end, MeiliDB will be a bunch of network protocols, and wrappers. We will publish the entire project on https://crates.io, following our usual update cycle. ## Performances -_these informations have been made with a version dated of october 2018, we must update them_ +_these information are outdated (October 2018) It will be updated soon_ -We made some tests on remote machines and found that we can handle with a dataset of near 280k products, on a server that cost 5$/month with 1vCPU and 1GB of ram and on the same index and with a simple query: +We made some tests on remote machines and found that MeiliDB easily handles a dataset of near 280k products, on a $5/month server with a single vCPU and 1GB of RAM, running the same index, with a simple query: -- near 190 users with an average response time of 90ms -- 150 users with an average response time of 70ms -- 100 users with an average response time of 45ms +- near 190 concurrent users with an average response time of 90ms +- 150 concurrent users with an average response time of 70ms +- 100 concurrent users with an average response time of 45ms -Network is mesured, servers are located in amsterdam and tests are made between two different datacenters. +Servers were located in Amsterdam and tests were made between two different locations. ### Notes The default Rust allocator has recently been [changed to use the system allocator](https://github.com/rust-lang/rust/pull/51241/). We have seen much better performances when [using jemalloc as the global allocator](https://github.com/alexcrichton/jemallocator#documentation). - - ## Usage and examples -MeiliDB work with an index like most of the search engines. +MeiliDB runs with an index like most search engines. So to test the library you can create one by indexing a simple csv file. ```bash cargo run --release --example create-database -- test.mdb misc/kaggle.csv ``` -Once the command finished indexing the database should have been saved under the `test.mdb` folder. +Once the command is executed, the index should be in the `test.mdb` folder. -Now you can easily run the `query-database` example to check what is stored in it. +You are now able to run the `query-database` example, to play with MeiliDB. ```bash cargo run --release --example query-database -- test.mdb From 681f721b1d7d1c9cc472704c10bc844fa11f4d96 Mon Sep 17 00:00:00 2001 From: Thomas Payet Date: Tue, 8 Jan 2019 17:05:27 +0100 Subject: [PATCH 2/2] Correct README typos --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 294dcd4e6..070542055 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,21 @@ https://www.rust-lang.org) A _full-text search database_ using a key-value store internally. -It uses [RocksDB](https://github.com/facebook/rocksdb) as a built-in database, to store documents and internal data. The key-value store power allow us to handle updates and queries with small memory and CPU overheads. +It uses [RocksDB](https://github.com/facebook/rocksdb) as the internal key-value store. The key-value store allows us to handle updates and queries with small memory and CPU overheads. You can [read the deep dive](deep-dive.md) if you want more information on the engine, it describes the whole process of generating updates and handling queries. -We will be proud if you submit pull requests. It will help to help to grow this project, you can start contributing by checking [issues tagged "good-first-issue"](https://github.com/Kerollmops/MeiliDB/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). It a good start! +We will be proud if you submit issues and pull requests. You can help to grow this project and start contributing by checking [issues tagged "good-first-issue"](https://github.com/Kerollmops/MeiliDB/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). It is a good start! -At the moment this project is only a library. It means that it's not prividing yet any binaries. To get started, we provided some examples in the `examples/` folder that are made to work with the data located in the `misc/` folder. +The project is only a library yet. It means that there is no binary provided yet. To get started, you can check the examples wich are made to work with the data located in the `misc/` folder. -In a near future MeiliDB, we will provide a binary to execute this project as database, so you will be able to update and query it using a protocol. This will be our final goal, [see the milestones](https://github.com/Kerollmops/MeiliDB/milestones). At the end, MeiliDB will be a bunch of network protocols, and wrappers. We will publish the entire project on https://crates.io, following our usual update cycle. +MeiliDB will be a binary in a near future so you will be able to use it as a database out-of-the-box. We should be able to query it using a [to-be-defined](https://github.com/Kerollmops/MeiliDB/issues/38) protocol. This is our current goal, [see the milestones](https://github.com/Kerollmops/MeiliDB/milestones). In the end, the binary will be a bunch of network protocols and wrappers around the library - which will also be published on [crates.io](https://crates.io). Both the binary and the library will follow the same update cycle. ## Performances -_these information are outdated (October 2018) It will be updated soon_ +_These information are outdated (October 2018) and will be updated soon_ We made some tests on remote machines and found that MeiliDB easily handles a dataset of near 280k products, on a $5/month server with a single vCPU and 1GB of RAM, running the same index, with a simple query: @@ -48,7 +48,7 @@ cargo run --release --example create-database -- test.mdb misc/kaggle.csv Once the command is executed, the index should be in the `test.mdb` folder. -You are now able to run the `query-database` example, to play with MeiliDB. +You are now able to run the `query-database` example and play with MeiliDB. ```bash cargo run --release --example query-database -- test.mdb