diff options
Diffstat (limited to 'docs/storage.md')
-rw-r--r-- | docs/storage.md | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/docs/storage.md b/docs/storage.md index 3a8d74a..26469a7 100644 --- a/docs/storage.md +++ b/docs/storage.md | |||
@@ -163,7 +163,7 @@ Other useful properties: | |||
163 | * No updates since September 2013 | 163 | * No updates since September 2013 |
164 | * http://unqlite.org | 164 | * http://unqlite.org |
165 | * bad performance with large database (looks like O(n)) | 165 | * bad performance with large database (looks like O(n)) |
166 | * like lmdb roughly 2*datasize | 166 | * like lmdb roughly 2\*datasize |
167 | * includes a document store | 167 | * includes a document store |
168 | * mmapped ready access | 168 | * mmapped ready access |
169 | * reading about 30% the speed of lmdb | 169 | * reading about 30% the speed of lmdb |
@@ -181,9 +181,9 @@ Since indexes always need to be updated they directly affect how fast we can wri | |||
181 | * fast fulltext searching | 181 | * fast fulltext searching |
182 | * No MVCC concurrency | 182 | * No MVCC concurrency |
183 | * Only supports one writer at a time | 183 | * Only supports one writer at a time |
184 | * If a reader is reading blocks that have now been changed by a writer, it throws a DatabaseModifiedException. This means most of the Xapian code needs to be in wihle (1) { try { .. } catch () } blocks and needs to be able to start from scratch. | 184 | * If a reader is reading blocks that have now been changed by a writer, it throws a DatabaseModifiedException. This means most of the Xapian code needs to be in `while (1) { try { .. } catch () }` blocks and needs to be able to start from scratch. |
185 | * Wildcard searching (as of 2015-01) isn't ideal. It works by expanding the word into all other words in the query and that typically makes the query size huge. This huge query is then sent to the database. Baloo has had to configure this expanding of terms so that it consumes less memory. | 185 | * Wildcard searching (as of 2015-01) isn't ideal. It works by expanding the word into all other words in the query and that typically makes the query size huge. This huge query is then sent to the database. Baloo has had to configure this expanding of terms so that it consumes less memory. |
186 | * Non existent UTF support - It does not support text normalization and splitting the terms at custom characters such as '_'. | 186 | * Non existent UTF support - It does not support text normalization and splitting the terms at custom characters such as '\_'. |
187 | * lmdb: | 187 | * lmdb: |
188 | * sorted keys | 188 | * sorted keys |
189 | * sorted duplicate keys | 189 | * sorted duplicate keys |
@@ -200,9 +200,9 @@ Since indexes always need to be updated they directly affect how fast we can wri | |||
200 | 200 | ||
201 | ## Useful Resources | 201 | ## Useful Resources |
202 | * LMDB | 202 | * LMDB |
203 | * Wikipedia for a good overview: https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database | 203 | * Wikipedia for a good overview: <https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database> |
204 | * Benchmarks: http://symas.com/mdb/microbench/ | 204 | * Benchmarks: <http://symas.com/mdb/microbench/> |
205 | * Tradeoffs: http://symas.com/is-lmdb-a-leveldb-killer/ | 205 | * Tradeoffs: <http://symas.com/is-lmdb-a-leveldb-killer/> |
206 | * Disk space benchmark: http://symas.com/mdb/ondisk/ | 206 | * Disk space benchmark: <http://symas.com/mdb/ondisk/> |
207 | * LMDB instead of Kyoto Cabinet as redis backend: http://www.anchor.com.au/blog/2013/05/second-strike-with-lightning/ | 207 | * LMDB instead of Kyoto Cabinet as redis backend: <http://www.anchor.com.au/blog/2013/05/second-strike-with-lightning/> |
208 | 208 | ||