Small fixes.
This commit is contained in:
parent
d113026d40
commit
7cf7104757
2 changed files with 15 additions and 14 deletions
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Add table
Reference in a new issue