It wasn't clear from the title that this is a db designed for embedded devices (unlike for example SQLite that belongs to the family of in-app embedded databases).
One of the interesting features in this db is wear leveling a technique used for prolonging the service life of flash storage media.
This article seems to be confused or maybe just grinding for SEO.
Eg the section "Difference Between Flash and SSD Storage" doesn't cover the question, just has random flash facts and then makes some confused distinction based on form factor.
SSD is a higher abstraction term covering storage technologies like DRAM, SDRAM, and XPoint in addition to flash, and implies there's a storage management layer that presents a block addressable interface (like SATA or NVMe or USB storage etc). This layer also known as a FTL. The non-flash part is not practically very relevant those are extremely niche or extinct. But the abstraction part is relevant, some flash storage presents as SSD and some doesn't. For the latter the device storage driver stack needs to have more intimate flash device knowledge, and using specific flash device filesystem.
In the context of FlashDB, it supports raw flash without the SSD abstraction. This is to be expected as tiny embedded devices typically have raw flash and not SSDs. Eg here: https://armink.github.io/FlashDB/#/demo-esp8266-spi-flash
From a brief skim of the website, it can be used on very small controllers such as STM32 and ESP8266 (which gives a whole new meaning to the word embedded). It's smaller than SQLite, so mainly for microcontrollers, that is, direct access to the flash memory without a filesystem in between, but also can be used on Linux through the filesystem.
21 comments
[ 2.2 ms ] story [ 41.4 ms ] threadI do realize the use cases can be different, but then say and show that in the comparison.
(I'm trying to be helpful by offering unsolicited advice :) - Brilliant work!
> Very small footprint, ram usage is almost 0;
https://armink.github.io/FlashDB/#/README?id=usage-scenario
What does this mean?
Do they mean "Flash" as in 'flash memory' i.e. SSDs?
The way it's written it seems like "Flash" is some other product, but it's not detailed anywhere.
https://www.cdw.com/content/cdw/en/articles/datacenter/diffe...
I'm not fully hardware savvy so feel free to correct me.
SSD is a higher abstraction term covering storage technologies like DRAM, SDRAM, and XPoint in addition to flash, and implies there's a storage management layer that presents a block addressable interface (like SATA or NVMe or USB storage etc). This layer also known as a FTL. The non-flash part is not practically very relevant those are extremely niche or extinct. But the abstraction part is relevant, some flash storage presents as SSD and some doesn't. For the latter the device storage driver stack needs to have more intimate flash device knowledge, and using specific flash device filesystem.
In the context of FlashDB, it supports raw flash without the SSD abstraction. This is to be expected as tiny embedded devices typically have raw flash and not SSDs. Eg here: https://armink.github.io/FlashDB/#/demo-esp8266-spi-flash
Was the first link on Google, so very possible.
The word "flash" by itself didn't mean anything to me, and especially capitalised as "Flash" made it look like a product name.