ClickHouse/docs/en/operations/table_engines/log_family.md
BayoNet f48d27beda Docapi 3818 stripe log (#4191)
* Update of english version of descriprion of the table function `file`.

* New syntax for ReplacingMergeTree.
Some improvements in text.

* Significantly change article about SummingMergeTree.
Article is restructured, text is changed in many places of the document. New syntax for table creation is described.

* Descriptions of AggregateFunction and AggregatingMergeTree are updated. Russian version.

* New syntax for new syntax of CREATE TABLE

* Added english docs on Aggregating, Replacing and SummingMergeTree.

* CollapsingMergeTree docs. English version.

* 1. Update of CollapsingMergeTree. 2. Minor changes in markup

* Update aggregatefunction.md

* Update aggregatefunction.md

* Update aggregatefunction.md

* Update aggregatingmergetree.md

* GraphiteMergeTree docs update.
New syntax for creation of Replicated* tables.
Minor changes in *MergeTree tables creation syntax.

* Markup fix

* Markup and language fixes

* Clarification in the CollapsingMergeTree article

* DOCAPI-4821. Sync between ru and en versions of docs.

* Fixed the ambiguity in geo functions description.

* Example of JOIN in ru docs

* Deleted misinforming example.

* Fixed links to IN operators.

* Updated the description of ALTER MODIFY.

* [RU] Updated ALTER MODIFY description.

* Fixed anchors.

* DOCAPI-3818: The Family of Log engines. StripeLog. Tocs sync.

* DOCAPI-3818: Edits after review by Ivan Blinkov.
2019-02-04 17:52:31 +03:00

1.9 KiB

#Log Engine Family

These engines were developed for scenarios when you need to write many tables with the small amount of data (less than 1 million rows).

Engines of the family:

Common properties

Engines:

  • Store data on a disk.

  • Append data to the end of file when writing.

  • Do not support mutation operations.

  • Do not support indexes.

    This means that SELECT queries for ranges of data are not efficient.

  • Do not write data atomically.

    You can get a table with corrupted data if something breaks the write operation, for example, abnormal server shutdown.

Differences

The Log and StripeLog engines support:

  • Locks for concurrent data access.

    During INSERT query the table is locked, and other queries for reading and writing data both wait for unlocking. If there are no writing data queries, any number of reading data queries can be performed concurrently.

  • Parallel reading of data.

    When reading data ClickHouse uses multiple threads. Each thread processes separated data block.

The Log engine uses the separate file for each column of the table. The StripeLog stores all the data in one file. Thus the StripeLog engine uses fewer descriptors in the operating system, but the Log engine provides a more efficient reading of the data.

The TinyLog engine is the simplest in the family and provides the poorest functionality and lowest efficiency. The TinyLog engine does not support a parallel reading and concurrent access and stores each column in a separate file. It reads the data slower than both other engines with parallel reading, and it uses almost as many descriptors as the Log engine. You can use it in simple low-load scenarios.

Original article