[Herddb-dev] R: R: R: Herddb entry on dbdb.io

Alessandro Luccaroni - Diennea alessandro.luccaroni at diennea.com
Tue Sep 10 17:55:29 CEST 2019


Page updated: https://dbdb.io/db/herddb

PS: the administrator of dbdb.io (Andy Pavlo) gave me the right to edit the HerdDB page, so if we need to add info in the future ping me

Ale

Da: herddb-dev-bounces at lists.herddb.org <herddb-dev-bounces at lists.herddb.org> Per conto di Alessandro Luccaroni - Diennea
Inviato: martedì 27 agosto 2019 17:49
A: Herddb developers <herddb-dev at lists.herddb.org>
Oggetto: [Herddb-dev] R: R: Herddb entry on dbdb.io

Ok, removed the “Built upon Apache BookKeeper” From the “Storage Organization” answer

Ale

Da: herddb-dev-bounces at lists.herddb.org<mailto:herddb-dev-bounces at lists.herddb.org> <herddb-dev-bounces at lists.herddb.org<mailto:herddb-dev-bounces at lists.herddb.org>> Per conto di Enrico Olivelli
Inviato: martedì 27 agosto 2019 17:43
A: Herddb developers <herddb-dev at lists.herddb.org<mailto:herddb-dev at lists.herddb.org>>
Oggetto: Re: [Herddb-dev] R: Herddb entry on dbdb.io


Il mar 27 ago 2019, 17:07 Alessandro Luccaroni - Diennea <alessandro.luccaroni at diennea.com<mailto:alessandro.luccaroni at diennea.com>> ha scritto:
Merged your last notes with my previous updated list:

Checkpoints =  "Consistent" "Blocking" (HerdDB supports periodic checkpoints, every 15 minutes by default. At checkpoints, active page ids are written to disk with their current log sequence numbers. At the same time all dirty pages are discarded and their records used to build new pages, among other new or updated records. Checkpoints can be tuned to be either as fast as possible or as clean as possible. Fast checkpoints block write operations for less time, whereas clean checkpoints optimize memory usage (fewer dirty pages left in memory) and speeds up searches (fewer dirty pages left on disk).) (https://github.com/diennea/herddb/wiki/Data-storage https://github.com/diennea/herddb/wiki/Checkpoints-configuration)
Concurrency Control = " Deterministic Concurrency Control" (Before accessing records, clients acquire read or write locks. Every transaction that modifies a record holds the new data in a local buffer copy, and this new version of the record is not visible to other transactions until that one is committed (Pessimistic Row Level Locking).)
Foreign Keys = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)
Data Model = "Relational"  (https://github.com/diennea/herddb/wiki/SQL-Support)
Indexes =  "B-Link" "BRIN" (Block Range Index implementation is not strictly speaking the official BRIN implementation you can find in literature, so we can talk about “BRIN-like” indexes)
Isolation Levels = "Read Committed" (https://github.com/diennea/herddb/wiki/SQL-Support)
Joins = "Nested Loop Join" "Sort-Merge Join" "Hash Join" (https://github.com/diennea/herddb/wiki/SQL-Support)
Logging = "Physical Logging" (Build upon Apache BookKeeper)
Query Compilation = "Not Supported"
Query Execution = "Tuple-at-a-Time Mode"
Query Interface = "SQL" "Command-line/Shell" "Custom API" (https://github.com/diennea/herddb/wiki/SQL-Support)
Storage Architecture = "Disk-oriented" (https://github.com/diennea/herddb/wiki/Data-storage)
Storage Model = "N-ary Storage Model (Row/Record)" (HerdDB’s internal architecture stores a table as a set of key-value entries. This is implemented in Java by a very large map of binary data. Each row is translated from column-oriented to key-value format by tearing apart the “primary key” part (one or multiple columns) from the “value” part (other columns).) (https://github.com/diennea/herddb/wiki/Data-storage)
Storage Organization = "Log-structured" (Built upon Apache BookKeeper.
This is partially true, I won't say that




At any given time, some part of data is stored in a memory buffer and some other on disk. No data will be lost on JVM crashes, because transaction logs are the source-of-truth and the whole database can be recovered from them plus a checkpoint. When a row is stored on disk it is assigned to a "data page"; on its first mutation, it is detached from its data page and that page is marked as “dirty”. At checkpoints, all dirty pages are dismissed and their records used to build new pages, among other new or updated records. Records modified/inserted/deleted in the scope of a transaction are never written to disk and they are not present in the main buffer until that transaction is committed, so that there always is a consistent and committed data snapshot. Every transaction uses its own local buffer to store temporary data.) (https://github.com/diennea/herddb/wiki/Data-storage) (https://github.com/diennea/herddb/wiki/Data-storage)
Stored Procedures = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)
System Architecture =  "Shared-Nothing" (Built upon Apache Zookeeper and Apache BookKeeper.) (https://github.com/diennea/herddb/wiki/Replication)
Views = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)

What do you think?

Ale

Da: herddb-dev-bounces at lists.herddb.org<mailto:herddb-dev-bounces at lists.herddb.org> <herddb-dev-bounces at lists.herddb.org<mailto:herddb-dev-bounces at lists.herddb.org>> Per conto di Enrico Olivelli
Inviato: martedì 27 agosto 2019 17:00
A: Herddb developers <herddb-dev at lists.herddb.org<mailto:herddb-dev at lists.herddb.org>>
Oggetto: Re: [Herddb-dev] Herddb entry on dbdb.io<http://dbdb.io>

Alessandro
Overall looks good

Last answers inline below

Enrico
Il gio 27 giu 2019, 16:09 Alessandro Luccaroni - Diennea <alessandro.luccaroni at diennea.com<mailto:alessandro.luccaroni at diennea.com>> ha scritto:
Hi all,
I was thinking about sending an email to Carnagie Mellon Database Group about the entry of Herddb on https://dbdb.io/db/herddb

I’ve grouped up a bunch of information about Herd, can you check if everything seems correct?

Checkpoints =  "Consistent" (https://github.com/diennea/herddb/wiki/Data-storage https://github.com/diennea/herddb/wiki/Checkpoints-configuration)
Foreign Keys = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)
Data Model = "Relational"  (https://github.com/diennea/herddb/wiki/SQL-Support)
Indexes =  "B-Link" "BRIN" (https://github.com/diennea/herddb/blob/master/herddb-utils/src/main/java/herddb/index/blink/BLink.java https://github.com/diennea/herddb/tree/master/herddb-core/src/main/java/herddb/index/brin)
Isolation Levels = "Read Committed" (https://github.com/diennea/herddb/wiki/SQL-Support)
Joins = "Nested Loop join" (https://github.com/diennea/herddb/wiki/SQL-Support)
Query Interface = "SQL" "Command-line/Shell" (https://github.com/diennea/herddb/wiki/SQL-Support)
Storage Architecture = "Hybrid"
Storage Model = "Key/Value" "N-ary Storage Model (Row/Record)" (https://github.com/diennea/herddb/wiki/Data-storage)
Storage Organization = "Log-structured" "Heaps" (https://github.com/diennea/herddb/wiki/Data-storage)
Stored Procedures = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)
System Architecture =  "Shared-Nothing" (https://github.com/diennea/herddb/wiki/Replication)
Views = "Not Supported" (https://github.com/diennea/herddb/wiki/SQL-Support)

I’m still in doubt about some other definition, see below with some “option” using the dbdb.io<http://dbdb.io> “nomenclature”:

“Concurrency Control”

1)      Deterministic Concurrency Control

This one is the best

2)      Multi-version Concurrency Control (MVCC)

3)      Optimistic Concurrency Control (OCC)

4)      Timestamp Ordering

5)      Two-Phase Locking (Deadlock Detection)

6)      Two-Phase Locking (Deadlock Prevention)

“Query Compilation”

1)      Code Generation

2)      JIT Compilation

3)      Not Supported


This is better

4)      Stored Procedure Compilation

“Query Execution”

1)      Materialized Model

2)      Tuple-at-a-Time Model

This one

3)      Vectorized Model

But we could also use some terminology that is not currently cover (for example currently there are no DBMS mapped with either BRIN or B-Link indexes, but we support them).

Alessandro Luccaroni
Platform Manager @ Diennea - MagNews
Tel.: (+39) 0546 066100 Int. 924 - Mob.: (+39) 393 7273519
Viale G.Marconi 30/14 - 48018 Faenza (RA) - Italy


________________________________

CONFIDENTIALITY & PRIVACY NOTICE
This e-mail (including any attachments) is strictly confidential and may also contain privileged information. If you are not the intended recipient you are not authorised to read, print, save, process or disclose this message. If you have received this message by mistake, please inform the sender immediately and destroy this e-mail, its attachments and any copies. Any use, distribution, reproduction or disclosure by any person other than the intended recipient is strictly prohibited and the person responsible may incur in penalties.
The use of this e-mail is only for professional purposes; there is no guarantee that the correspondence towards this e-mail will be read only by the recipient, because, under certain circumstances, there may be a need to access this email by third subjects belonging to the Company.
_______________________________________________
herddb-dev mailing list
herddb-dev at lists.herddb.org<mailto:herddb-dev at lists.herddb.org>
http://lists.herddb.org/mailman/listinfo/herddb-dev

________________________________

CONFIDENTIALITY & PRIVACY NOTICE
This e-mail (including any attachments) is strictly confidential and may also contain privileged information. If you are not the intended recipient you are not authorised to read, print, save, process or disclose this message. If you have received this message by mistake, please inform the sender immediately and destroy this e-mail, its attachments and any copies. Any use, distribution, reproduction or disclosure by any person other than the intended recipient is strictly prohibited and the person responsible may incur in penalties.
The use of this e-mail is only for professional purposes; there is no guarantee that the correspondence towards this e-mail will be read only by the recipient, because, under certain circumstances, there may be a need to access this email by third subjects belonging to the Company.
_______________________________________________
herddb-dev mailing list
herddb-dev at lists.herddb.org<mailto:herddb-dev at lists.herddb.org>
http://lists.herddb.org/mailman/listinfo/herddb-dev

________________________________

CONFIDENTIALITY & PRIVACY NOTICE
This e-mail (including any attachments) is strictly confidential and may also contain privileged information. If you are not the intended recipient you are not authorised to read, print, save, process or disclose this message. If you have received this message by mistake, please inform the sender immediately and destroy this e-mail, its attachments and any copies. Any use, distribution, reproduction or disclosure by any person other than the intended recipient is strictly prohibited and the person responsible may incur in penalties.
The use of this e-mail is only for professional purposes; there is no guarantee that the correspondence towards this e-mail will be read only by the recipient, because, under certain circumstances, there may be a need to access this email by third subjects belonging to the Company.

________________________________

CONFIDENTIALITY & PRIVACY NOTICE
This e-mail (including any attachments) is strictly confidential and may also contain privileged information. If you are not the intended recipient you are not authorised to read, print, save, process or disclose this message. If you have received this message by mistake, please inform the sender immediately and destroy this e-mail, its attachments and any copies. Any use, distribution, reproduction or disclosure by any person other than the intended recipient is strictly prohibited and the person responsible may incur in penalties.
The use of this e-mail is only for professional purposes; there is no guarantee that the correspondence towards this e-mail will be read only by the recipient, because, under certain circumstances, there may be a need to access this email by third subjects belonging to the Company.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.herddb.org/pipermail/herddb-dev/attachments/20190910/040708eb/attachment-0001.html>


More information about the herddb-dev mailing list