Small fixes.

This commit is contained in:
Philippe Pittoli 2025-04-20 11:54:06 +02:00
parent d113026d40
commit 7cf7104757
2 changed files with 15 additions and 14 deletions

View file

@ -30,4 +30,4 @@ subtexth = 0.2
"files and" "directories" at 1/2 between FS.e and FS.w + (0, h)
"logical blocks" "ex: 0x10" at 1/2 between DRI.e and DRI.w + (0, h)
"physical blocks, AHCI commands" "ex: READ 0x2058 (LBA)" at 1/2 between DEV.e and DEV.w + (0, h)
"physical blocks, AHCI commands" "ex: READ 0x2058" at 1/2 between DEV.e and DEV.w + (0, h)

View file

@ -70,7 +70,7 @@ An experiment is described and analyzed to understand the performance that can b
.br
.po +11.5c
.nf
Document sync'ed with DODB \*[VERSION]
Document synched with DODB \*[VERSION]
.fi
.br
.po
@ -154,10 +154,10 @@ other database designs were created\*[*].
.FOOTNOTE1
A lot of designs won't be mentioned here.
The actual history of databases is often quite unclear since the categories of databases are sometimes vague, underspecified.
As mentioned, SQL is not a silver bullet and a lot of developers shifted towards other solutions, that's the important part.
As mentioned, SQL is not a silver bullet and a lot of developers have turned to other solutions, that's the important part.
.FOOTNOTE2
The NoSQL movement started because the stated goals of many actors from the early Web boom were different from SQL.
The need for very fast operations far exceeded what was practical at the moment with SQL.
The need for very fast operations far exceeded what was practical at the time with SQL.
This led to the use of more basic methods to manage data such as
.I "key-value stores" ,
which simply associate a value with an
@ -168,7 +168,7 @@ In this case, there is no need for the database to have
data may be untyped, the entries may even have different attributes.
Since homogeneity is not necessary anymore, databases have fewer (or different) constraints.
Document-oriented databases are a sub-class of key-value stores, where metadata can be extracted from the entries for further optimizations.
And that's exactly what is being done in Document Oriented DataBase (DODB).
And as the name suggests, that's exactly what is being done in DODB (Document Oriented DataBase).
.CITATION1
The stated goal of DODB is to provide a
@ -186,18 +186,18 @@ Or as people might call it:
.KS
.BULLET
.B "DODB is simple" :
each database entry is written in a plain file, serialized in JSON.
each database entry is serialized then written in a plain file.
DODB is implemented in only a thousand lines of code in total, despite including optional features and optimized alternative implementations to make the library efficient and cover most cases.
.KE
DODB doesn't strive to be minimalistic but avoids intermediary language and low-level optimizations.
DODB doesn't strive to be minimalistic but avoids intermediary language and doesn't need low-level optimizations.
Storing data is writing a file, indexing data is making symbolic links.
It is that simple.
.KS
.BULLET
.B "DODB is easy-to-use" :
the API is high-level and doesn't take any superflous parameter.
the API is high-level and doesn't take any superfluous parameter.
Creating a database only requires a path, updating an entry only requires the new version of the entry, and so on.
Everything is designed to be enjoyable for the developers.
.KE
@ -205,7 +205,7 @@ Everything is designed to be enjoyable for the developers.
In its current form and on commodity hardware, DODB aims for projects with up to a few hundred million entries\*[*] and a few hundred thousand requests per second.
.FOOTNOTE1
There is no real hard limits but the underlying filesystem, DODB can accept billions of entries.
There are no real hard limits but the underlying filesystem, DODB can accept billions of entries.
.br
See the section
.dq "Limits of DODB" .
@ -215,21 +215,21 @@ DODB may be a great starting point to implement more sophisticated features for
.UL "Contrary to SQL" ,
DODB has a very narrow scope: to provide a library enabling to store, to retrieve, to modify and to delete data.
In this way, DODB transforms any application in a database manager.
In this way, DODB turns any application into a database manager.
DODB doesn't provide an interactive shell, there is no request language to perform arbitrary operations on the database, no statistical optimizations of the requests based on query frequencies, etc.
Instead, DODB reduces the complexity of the infrastructure, stores data in plain files and enables simple manual scripting with widespread unix tools.
Simplicity is key.
Traditional SQL databases have a snowballing effect on code complexity even for applications with basic requirements.
Traditional SQL databases have a snowball effect on code complexity even for applications with basic requirements.
Data description in tables and relations is not intuitive and requires to adapt the application to the database.
DODB stores whole documents instead, which simply means to serialize data structures already used in the application.
DODB stores whole documents instead, which essentially means serializing data structures already used in the application.
.UL "Contrary to other NoSQL databases" ,
DODB isn't an application but a library.
Developers store their data themselves without depending on
. I yet-another-all-in-one
massive tool.
The library writes (and removes) data on a storage device, has a few retrieval and update mechanisms and that's it\*[*].
The library writes (and deletes) data to a storage device, has a few retrieval and update mechanisms and that's it\*[*].
.FOOTNOTE1
The lack of features
.I is
@ -1216,7 +1216,8 @@ Finally, the driver sends AHCI commands to request the devices.
.QE
.FOOTNOTE1
Working only with blocks (from 0 to x) is called
.dq "Logical block addressing" .
.dq "Logical Block Addressing"
(LBA).
Before that, other schemes were used such as
.I cylinder-head-sector
(CHS) but this is fairly obsolete, hard disks do not use this anymore.