From 54c181e841f6477f5e9de00acc2cd2f4d4c863c0 Mon Sep 17 00:00:00 2001 From: Zeng1998 Date: Wed, 31 Jan 2024 12:28:39 +0800 Subject: [PATCH] docs: add the unknown link in week1_day1_task1's docs (#39) --- mini-lsm-book/src/week1-01-memtable.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mini-lsm-book/src/week1-01-memtable.md b/mini-lsm-book/src/week1-01-memtable.md index da7cafc..748fd86 100644 --- a/mini-lsm-book/src/week1-01-memtable.md +++ b/mini-lsm-book/src/week1-01-memtable.md @@ -23,7 +23,7 @@ In this task, you will need to modify: src/mem_table.rs ``` -Firstly, let us implement the in-memory structure of an LSM storage engine -- the memtable. We choose [crossbeam's skiplist implementation](link) as the data structure of the memtable as it supports lock-free concurrent read and write. We will not cover in-depth how a skiplist works, and in a nutshell, it is an ordered key-value map that easily allows concurrent read and write. +Firstly, let us implement the in-memory structure of an LSM storage engine -- the memtable. We choose [crossbeam's skiplist implementation](https://docs.rs/crossbeam-skiplist/latest/crossbeam_skiplist/) as the data structure of the memtable as it supports lock-free concurrent read and write. We will not cover in-depth how a skiplist works, and in a nutshell, it is an ordered key-value map that easily allows concurrent read and write. crossbeam-skiplist provides similar interfaces to the Rust std's `BTreeMap`: insert, get, and iter. The only difference is that the modification interfaces (i.e., `insert`) only require an immutable reference to the skiplist, instead of a mutable one. Therefore, in your implementation, you should not take any mutex when implementing the memtable structure.