forked fromJonghyeokPark/Flashalloc-Cosmos
- Notifications
You must be signed in to change notification settings - Fork0
FlashSQL/Flashalloc-Cosmos
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
FlashAlloc is a novel interfacee for flash storage,which is used to the logical address ranges of objects to the underlying flash deviceand thus to enlighten the device to stream writes by objects. See deatil in our paper
[1] Jonghyeok Park, Soyee Choi, Gihwan Oh, Soojun Im, Moon-Wook Oh, Sang-Won Lee, "FlashAlloc: Dedicating Flash Blocks By Objects". VLDB 2023
First, you will need the Cosmos+ Board with hynix NAND firmware version.You can get more accurate information atCRZ Technology
FPGA: Xilinx XC7Z045-3FFG900 Zynq-7000- Dual ARM Cortex-A9 1GHz Core- NEON DSP co-processor for each core- 350K LCs1GB DDR3 NAND Modules1 SD CARD SlotDual PCIe Gen2 x8 End-Points (Cabled PCIe Interface)1 Gigabit Ethernet Interface1 USB 2.0 (configurable to Host or Device)JTAG and Debug InterfaceSecond, You need the software tools and files
- Xilinx ISE design suite 19.1 system editionLink
- UART terminal emulator software (Xilinx Software Development Kit(SDK) includes UART terminal)
- Download theUSB-to-UART driver
- Check details atOpenSSD Project hompage
Flashallocis Cosmos+ OpenSSD firmware source code which implements the Flashalloc interface for flash storagesMultistreamis multi-stream prototype for Cosmos+ OpenSSD supporting eight stream-idshostincorporates the implementation of both RocksDB and MySQL, utilized for evaluation in our paper.It also includes a simple host application example to test the flashalloc command.- More details are illustrated in our paper.
Please refer to Cosmos+ OpenSSD build guidedocument
TL;DR
- Prepare Cosmos+ Open SSD, Window and Linux PC
- Connect the Cosmos+ OpenSSD to Window PC (JTAG dilegent module and USB cable for UART) and install the PCIe to connect btw Cosmos+ OpenSSD and Linux PC
- Open the FlashAlloc projecct in Xilinx SDK
- Right click on project, and
Run As > 1. Launch on Hardware (GDB) - Click the firmware to execute, and
click OK > wait UART message - Press X to make bad block table (you should do this for the first time)
- Wait and Turn-on (or reboot) the Linux PC
- You can check the Cosmos+ OpenSSD using
nvme-cliorlspcicommand (check thenvme0nXXXXXin the device list) - Bon appétit! :)
cd hostmake -jsudo ./playground /dev/nvmeXXX 0 32playgroundhost application name/dev/nvmeXXXComsmos+ OpenSSD device path0start LBA (4KiB-based offset)32LBA length
- Build
- Build the RocksDB database engine for both flashalloc or multi-streame ssd version
- You can also build the vanilla version of Rocksdb using
bash ./scripts/build.shcommand
cd host/RocksDB/rocksdb-{flashalloc | msssd}bash ./scripts/build.sh cosmos- Configure File system
- You can mount either EXT4 or F2FS filesystem with TRIM support on top of Cosmos+ OpenSSD
# EXT4 Filesystembash ./scripts/setup-ext4-trim.sh# F2FS Filesystembash ./scripts/setup-f2fs-trim.sh- Run
db_benchwiht 4 tenants
# FlashAlloc versionbash ./scripts/run_flashalloc.sh# Vanilla versionbash ./scripts/run_vanilla.sh# Multi-stream SSD versionbash ./scripts/run_msssd.sh- Run
db_benchwiht single tenants
# FlashAlloc versionbash ./scripts/falloc-single.sh# Multi-stream SSD versionbash ./scripts/msssd-single.sh- Build
cd hsot/MySQLbash ./build.sh- Initialize data directory
bash init.sh- Run MySQL server
bash ./run.sh- Run TPC-C Benchmark
- You can also modify the configuration for TPC-C Benchmark (e.g., # of clients, wrapup time, duration, and etc)
- To run the either vanilla or multi-stream ssd version, you can execute
run.shscript.
cd host/tpcc-mysqlbash ./run-flashalloc.sh- In this experiment, you can evaluate the multi-tenant configuration.
# configure the filesystem and data directory for TPC-C and db_benchbash ./setup-multi.sh# run multi-tenant experimentsbash run-multi.shAll guide document for Cosmos+ OpenSSD is provided byCosmos Open SSD Project.
About
No description, website, or topics provided.
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Languages
- C++55.9%
- C20.4%
- Makefile11.2%
- Java5.2%
- Perl2.3%
- Shell1.1%
- Other3.9%
