From 11edda122d021a64b1384f2f886ace826ea9d6ad Mon Sep 17 00:00:00 2001 From: ocelot-inc <pgulutzan@ocelot.ca> Date: Mon, 14 Oct 2013 14:22:27 -0600 Subject: [PATCH] preface.xml tune-up --- doc/user/preface.xml | 154 ++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 82 deletions(-) diff --git a/doc/user/preface.xml b/doc/user/preface.xml index 54eb0aec2f..e7566d7e6c 100644 --- a/doc/user/preface.xml +++ b/doc/user/preface.xml @@ -9,7 +9,7 @@ <title>Tarantool: an overview</title> <para> <productname>Tarantool</productname> is an in-memory NoSQL - database. The code is available for free under the terms of + database management system. The code is available for free under the terms of the <citetitle xlink:href="http://www.gnu.org/licenses/license-list.html#ModifiedBSD">BSD license</citetitle>. Supported platforms are GNU/Linux, Mac OS @@ -20,89 +20,87 @@ <para> The server <emphasis role="strong">maintains all its data in random-access memory</emphasis>, and therefore has very low read - latency. At the same time, a copy of the data - is kept on non-volatile storage (a disk drive), and inserts - and updates are performed atomically. + latency. The server <emphasis role="strong">keeps persistent copies of + the data in non-volatile storage</emphasis>, such as disk, + when users request "snapshots". The server <emphasis role="strong"> + maintains a write-ahead log (WAL)</emphasis> to ensure + consistency and crash safety of the persistent copies. + The server <emphasis role="strong">performs inserts and updates atomically</emphasis> -- + changes are not considered complete until the WAL is written. + The logging subsystem supports group commit. </para> <para> - To ensure atomicity, consistency and crash-safety of the - persistent copy, a write-ahead log (WAL) is maintained, and - each change is recorded in the WAL before it is considered - complete. The logging subsystem supports group commit. - </para> - - <para> - If update and delete rate is high, a constantly growing - write-ahead log file (or files) can pose a disk space problem, - and significantly increase time necessary to restart from disk. - A simple solution is employed: the server <emphasis - role="strong">can be requested to save a concise - snapshot</emphasis> of - its current data. A combination of delayed garbage collection - for data pages and <quote>copy-on-write</quote> technique for - index pages is employed to provide the snapshot process - with a consistent read view, so that the snapshot is taken - in a quick, resource-savvy and non-blocking manner. + When the rate of data changes is high, the write-ahead log file + (or files) can grow quickly. This uses up disk space, and + increases the time necessary to restart the server (because + the server must start with the last snapshot, and then replay + the transactions that are in the log). The solution is to + make snapshots frequently. Therefore the server ensures that + <emphasis role="strong">snapshots are quick, resource-savvy, and non-blocking + </emphasis>. To accomplish this, the server uses delayed garbage + collection for data pages and uses a copy-on-write technique for + index pages. This ensures that the snapshot process has a + consistent read view. </para> <para> <emphasis role="strong">Tarantool is lock-free</emphasis>. Instead of the operating system's concurrency primitives, such - as threads and mutexes, Tarantool uses a cooperative - multitasking environment to simultaneously operate on - thousands of connections. A fixed number of independent - execution threads within the server do not share state, but - exchange data using low overhead message queues. While this - approach limits server scalability to a few CPU cores, - it removes competition for the memory bus and sets - the scalability limit to the top of memory and network - throughput. CPU utilization of a typical highly-loaded + as mutexes, Tarantool uses cooperative + multitasking to handle thousands of connections simultaneously. + There is a fixed number of independent execution threads. + The threads do not share state. Instead they + exchange data using low-overhead message queues. While this + approach limits the number of cores that the server will use, + it removes competition for the memory bus and ensures peak + scalability of memory access and network throughput. + CPU utilization of a typical highly-loaded Tarantool server is under 10%. </para> <para> - Unlike most of NoSQL databases, Tarantool supports primary, - <emphasis role="strong"> secondary keys, multi-part - keys</emphasis>, HASH, TREE and BITSET index types. + Unlike most NoSQL DBMSs, Tarantool supports <emphasis role="strong"> + secondary index keys and multi-part index keys</emphasis> + as well as primary keys. The possible index types are + HASH, TREE, and BITSET. </para> <para> - The key feature of Tarantool is <emphasis - role="strong">support for Lua stored procedures</emphasis>, which + As its key feature, Tarantool supports <emphasis + role="strong">Lua stored procedures</emphasis>, which can access and modify data atomically. - Procedures can be created, modified and dropped at runtime. + Users can create, modify and drop Lua procedures at runtime. </para> <para> - Use of Lua as an extension language does not end with stored - procedures: Lua programs can be used during startup, to define - triggers and background tasks, interact with networked peers. + There is a role not only for Lua procedures, but also for Lua programs. + During startup, Lua programs can be used to define + triggers and background tasks, or interact with networked peers. Unlike popular application development frameworks based on - "reactor" pattern, networking in server-side Lua is - sequential, yet very efficient, as is built on top of the - cooperating multitasking environment used by the server - itself. + a "reactor" pattern, networking in server-side Lua is + sequential, yet very efficient, as it is built on top of the + cooperative multitasking environment that Tarantool itself uses. </para> <para> Extended with Lua, Tarantool typically replaces - not one but a few existing components with a single - well-performing system, changing and simplifying complex - multi-tier Web application architectures. + multiple components of an existing system. Complex + multi-tier Web application architectures + become simpler, and performance is good. </para> <para> - Tarantool supports replication. Replicas may run locally or on - a remote host. Tarantool replication is asynchronous and does - not block writes to the master. When or if the master becomes - unavailable, the replica can be switched to assume the role of - the master without server restart. + Tarantool supports <emphasis role="strong">asynchronous replication + </emphasis>, locally or to a remote host. Replication does not + cause blocking of writes to the master database. + If the master becomes unavailable, a replica can assume the + master role without requiring a restart. </para> <para> - <emphasis role="strong">The software is production-ready</emphasis>. - Tarantool has been created and is actively used at + Tarantool is <emphasis role="strong">in production today</emphasis>. + Tarantool was created by and is actively used at <citetitle xlink:href="http://api.mail.ru">Mail.Ru</citetitle>, - one of the leading Russian web content providers. At Mail.Ru, + one of the leading Russian web content providers. At Mail.Ru the software serves the <quote>hottest</quote> data, such as online users and their sessions, online application properties, mapping between users and their serving shards, @@ -110,12 +108,12 @@ </para> <para> Outside Mail.Ru the software is used by a growing - number of projects in online gaming, digital marketing, social + number of projects in online gaming, digital marketing, and social media industries. While product development is sponsored by Mail.Ru, the - roadmap, bugs database and the development process are fully + roadmap and the bugs database and the development process are fully open. The software incorporates patches from dozens of - community contributors, and most of the programming language drivers - are written and maintained by the community. + community contributors. The Tarantool community writes and maintains + most of the drivers for programming languages. </para> </section> @@ -128,30 +126,21 @@ xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/">DocBook XSL</citetitle> formatting conventions:</para> <para> - UNIX shell command input is prefixed with '$ ' and is - formatted using a fixed-width font: - <programlisting><prompt>$ </prompt>tarantool_box <option>--background</option> - </programlisting> + UNIX shell command input is prefixed with '$ ' and is in + a fixed-width font: + <programlisting><prompt>$ </prompt>tarantool_box <option>--background</option></programlisting> </para> <para> - The same formatting style is used for file names: - <filename>/path/to/var/dir</filename>. + File names are also in a fixed-width font: + <programlisting><filename>/path/to/var/dir</filename></programlisting> </para> - <para> - Text that represents user input is formatted in boldface: - <programlisting> - <prompt>$ </prompt><userinput>your input here</userinput> - </programlisting> - + Text that represents user input is in boldface: + <programlisting><prompt>$ </prompt><userinput>your input here</userinput></programlisting> </para> - <para> - Within user input, replaceable items are printed in italics: - <programlisting> - <prompt>$ </prompt><userinput>tarantool_box <replaceable>--option</replaceable></userinput> - </programlisting> - + Within user input, replaceable items are in italics: + <programlisting><prompt>$ </prompt><userinput>tarantool_box <replaceable>--option</replaceable></userinput></programlisting> </para> </section> <section xml:id="reporting-bugs"> @@ -165,12 +154,13 @@ <link xlink:href="https://launchpad.net/~tarantool-developers">tarantool-developers@lists.launchpad.net</link>. </para> <para> - <emphasis role="strong">Caution:</emphasis> To prevent spam, Launchpad - mailing list software silently drops all mail sent from - non-registered email addresses. Launchpad registration also + <emphasis role="strong">Caution:</emphasis> To prevent spam, the Launchpad + mailing-list software silently drops all mail coming from + non-registered email addresses -- so register with Launchpad + before sending emails. Launchpad registration also allows you to report bugs and create feature requests. - You can always check whether or not your mail has been - delivered to the mailing list in the public list archive, <link + You can check that your mail was delivered by looking at the + mailing list archive, <link xlink:href="https://lists.launchpad.net/tarantool-developers"/>. </para> </section> -- GitLab