Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
T
tarantool
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
core
tarantool
Commits
11edda12
Commit
11edda12
authored
11 years ago
by
ocelot-inc
Browse files
Options
Downloads
Patches
Plain Diff
preface.xml tune-up
parent
f20eb0b7
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/user/preface.xml
+72
-82
72 additions, 82 deletions
doc/user/preface.xml
with
72 additions
and
82 deletions
doc/user/preface.xml
+
72
−
82
View file @
11edda12
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<title>
Tarantool: an overview
</title>
<title>
Tarantool: an overview
</title>
<para>
<para>
<productname>
Tarantool
</productname>
is an in-memory NoSQL
<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
<citetitle
xlink:href=
"http://www.gnu.org/licenses/license-list.html#ModifiedBSD"
>
BSD
xlink:href=
"http://www.gnu.org/licenses/license-list.html#ModifiedBSD"
>
BSD
license
</citetitle>
. Supported platforms are GNU/Linux, Mac OS
license
</citetitle>
. Supported platforms are GNU/Linux, Mac OS
...
@@ -20,89 +20,87 @@
...
@@ -20,89 +20,87 @@
<para>
<para>
The server
<emphasis
role=
"strong"
>
maintains all its data in
The server
<emphasis
role=
"strong"
>
maintains all its data in
random-access memory
</emphasis>
, and therefore has very low read
random-access memory
</emphasis>
, and therefore has very low read
latency. At the same time, a copy of the data
latency. The server
<emphasis
role=
"strong"
>
keeps persistent copies of
is kept on non-volatile storage (a disk drive), and inserts
the data in non-volatile storage
</emphasis>
, such as disk,
and updates are performed atomically.
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>
<para>
<para>
To ensure atomicity, consistency and crash-safety of the
When the rate of data changes is high, the write-ahead log file
persistent copy, a write-ahead log (WAL) is maintained, and
(or files) can grow quickly. This uses up disk space, and
each change is recorded in the WAL before it is considered
increases the time necessary to restart the server (because
complete. The logging subsystem supports group commit.
the server must start with the last snapshot, and then replay
</para>
the transactions that are in the log). The solution is to
make snapshots frequently. Therefore the server ensures that
<para>
<emphasis
role=
"strong"
>
snapshots are quick, resource-savvy, and non-blocking
If update and delete rate is high, a constantly growing
</emphasis>
. To accomplish this, the server uses delayed garbage
write-ahead log file (or files) can pose a disk space problem,
collection for data pages and uses a copy-on-write technique for
and significantly increase time necessary to restart from disk.
index pages. This ensures that the snapshot process has a
A simple solution is employed: the server
<emphasis
consistent read view.
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.
</para>
</para>
<para>
<para>
<emphasis
role=
"strong"
>
Tarantool is lock-free
</emphasis>
.
<emphasis
role=
"strong"
>
Tarantool is lock-free
</emphasis>
.
Instead of the operating system's concurrency primitives, such
Instead of the operating system's concurrency primitives, such
as
threads and
mutexes, Tarantool uses
a
cooperative
as mutexes, Tarantool uses cooperative
multitasking
environment to
simultaneously
operate on
multitasking
to handle thousands of connections
simultaneously
.
thousands of connections. A
fixed number of independent
There is a
fixed number of independent
execution threads.
execution threads within the server
do not share state
, but
The threads
do not share state
. Instead they
exchange data using low
overhead message queues. While this
exchange data using low
-
overhead message queues. While this
approach limits
server scalability to a few CPU cores
,
approach limits
the number of cores that the server will use
,
it removes competition for the memory bus and
sets
it removes competition for the memory bus and
ensures peak
the
scalability
limit to the top
of memory and network
scalability of memory
access
and network
throughput.
throughput.
CPU utilization of a typical highly-loaded
CPU utilization of a typical highly-loaded
Tarantool server is under 10%.
Tarantool server is under 10%.
</para>
</para>
<para>
<para>
Unlike most of NoSQL databases, Tarantool supports primary,
Unlike most NoSQL DBMSs, Tarantool supports
<emphasis
role=
"strong"
>
<emphasis
role=
"strong"
>
secondary keys, multi-part
secondary index keys and multi-part index keys
</emphasis>
keys
</emphasis>
, HASH, TREE and BITSET index types.
as well as primary keys. The possible index types are
HASH, TREE, and BITSET.
</para>
</para>
<para>
<para>
The
key feature
of
Tarantool
i
s
<emphasis
As its
key feature
,
Tarantool
support
s
<emphasis
role=
"strong"
>
support for
Lua stored procedures
</emphasis>
, which
role=
"strong"
>
Lua stored procedures
</emphasis>
, which
can access and modify data atomically.
can access and modify data atomically.
Procedure
s can
be
create
d
, modif
ied
and drop
ped
at runtime.
User
s can create, modif
y
and drop
Lua procedures
at runtime.
</para>
</para>
<para>
<para>
Use of Lua as an extension language does not end with stored
There is a role not only for Lua procedures, but also for Lua programs.
procedures:
Lua programs can be used
during startup,
to define
During startup,
Lua programs can be used to define
triggers and background tasks, interact with networked peers.
triggers and background tasks,
or
interact with networked peers.
Unlike popular application development frameworks based on
Unlike popular application development frameworks based on
"reactor" pattern, networking in server-side Lua is
a "reactor" pattern, networking in server-side Lua is
sequential, yet very efficient, as is built on top of the
sequential, yet very efficient, as it is built on top of the
cooperating multitasking environment used by the server
cooperative multitasking environment that Tarantool itself uses.
itself.
</para>
</para>
<para>
<para>
Extended with Lua, Tarantool typically replaces
Extended with Lua, Tarantool typically replaces
not one but a few existing components with a sing
le
multiple components of an existing system. Comp
le
x
well-performing system, changing and simplifying complex
multi-tier Web application architectures
multi-tier Web application architectures
.
become simpler, and performance is good
.
</para>
</para>
<para>
<para>
Tarantool supports
replication. Replicas may run locally or
on
Tarantool supports
<emphasis
role=
"strong"
>
asynchronous replicati
on
a remote host. Tarantool replication is asynchronous and does
</emphasis>
, locally or to a remote host. Replication does not
not
block writes to the master
. When or if the master becomes
cause
block
ing of
writes to the master
database.
unavailable,
the
replica can
be switched to
assume the
role of
If the master becomes
unavailable,
a
replica can assume the
the
master without
server
restart.
master
role
without
requiring a
restart.
</para>
</para>
<para>
<para>
<emphasis
role=
"strong"
>
The software is
production
-read
y
</emphasis>
.
Tarantool is
<emphasis
role=
"strong"
>
in
production
toda
y
</emphasis>
.
Tarantool
h
as
been
created and is actively used at
Tarantool
w
as created
by
and is actively used at
<citetitle
xlink:href=
"http://api.mail.ru"
>
Mail.Ru
</citetitle>
,
<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>
the software serves the
<quote>
hottest
</quote>
data, such as online users and their sessions, online application
data, such as online users and their sessions, online application
properties, mapping between users and their serving shards,
properties, mapping between users and their serving shards,
...
@@ -110,12 +108,12 @@
...
@@ -110,12 +108,12 @@
</para>
</para>
<para>
<para>
Outside Mail.Ru the software is used by a growing
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
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
open. The software incorporates patches from dozens of
community contributors
, and most of the programming language driver
s
community contributors
. The Tarantool community writes and maintain
s
are written and maintained by the community
.
most of the drivers for programming languages
.
</para>
</para>
</section>
</section>
...
@@ -128,30 +126,21 @@
...
@@ -128,30 +126,21 @@
xlink:href=
"http://docbook.sourceforge.net/release/xsl/current/doc/"
>
DocBook
xlink:href=
"http://docbook.sourceforge.net/release/xsl/current/doc/"
>
DocBook
XSL
</citetitle>
formatting conventions:
</para>
XSL
</citetitle>
formatting conventions:
</para>
<para>
<para>
UNIX shell command input is prefixed with '$ ' and is
UNIX shell command input is prefixed with '$ ' and is in
formatted using a fixed-width font:
a fixed-width font:
<programlisting><prompt>
$
</prompt>
tarantool_box
<option>
--background
</option>
<programlisting><prompt>
$
</prompt>
tarantool_box
<option>
--background
</option></programlisting>
</programlisting>
</para>
</para>
<para>
<para>
Th
e
s
ame
formatting style is used for file names
:
Fil
e
n
ame
s are also in a fixed-width font
:
<filename>
/path/to/var/dir
</filename>
.
<programlisting>
<filename>
/path/to/var/dir
</filename>
</programlisting>
</para>
</para>
<para>
<para>
Text that represents user input is formatted in boldface:
Text that represents user input is in boldface:
<programlisting>
<programlisting><prompt>
$
</prompt><userinput>
your input here
</userinput></programlisting>
<prompt>
$
</prompt><userinput>
your input here
</userinput>
</programlisting>
</para>
</para>
<para>
<para>
Within user input, replaceable items are printed in italics:
Within user input, replaceable items are in italics:
<programlisting>
<programlisting><prompt>
$
</prompt><userinput>
tarantool_box
<replaceable>
--option
</replaceable></userinput></programlisting>
<prompt>
$
</prompt><userinput>
tarantool_box
<replaceable>
--option
</replaceable></userinput>
</programlisting>
</para>
</para>
</section>
</section>
<section
xml:id=
"reporting-bugs"
>
<section
xml:id=
"reporting-bugs"
>
...
@@ -165,12 +154,13 @@
...
@@ -165,12 +154,13 @@
<link
xlink:href=
"https://launchpad.net/~tarantool-developers"
>
tarantool-developers@lists.launchpad.net
</link>
.
<link
xlink:href=
"https://launchpad.net/~tarantool-developers"
>
tarantool-developers@lists.launchpad.net
</link>
.
</para>
</para>
<para>
<para>
<emphasis
role=
"strong"
>
Caution:
</emphasis>
To prevent spam, Launchpad
<emphasis
role=
"strong"
>
Caution:
</emphasis>
To prevent spam, the Launchpad
mailing list software silently drops all mail sent from
mailing-list software silently drops all mail coming from
non-registered email addresses. Launchpad registration also
non-registered email addresses -- so register with Launchpad
before sending emails. Launchpad registration also
allows you to report bugs and create feature requests.
allows you to report bugs and create feature requests.
You can
always check whether or no
t your mail
h
as
been
You can
check tha
t your mail
w
as
delivered by looking at the
delivered to the mailing list in the public
list archive,
<link
mailing
list archive,
<link
xlink:href=
"https://lists.launchpad.net/tarantool-developers"
/>
.
xlink:href=
"https://lists.launchpad.net/tarantool-developers"
/>
.
</para>
</para>
</section>
</section>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment