1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
/* vim: set filetype=c.doxygen : */
/*! \mainpage WiredTiger Overview
\section overview_intro Introduction
The WiredTiger Data Store is an extensible platform for data management. This documentation describes the public interface to WiredTiger used by developers to construct applications.
We follow SQL terminology: a database is set of tables that are managed together. Tables logically consist of rows, each row has a key and a value. Tables may optionally have an associated schema, which splits the key/value pair into a set of columns. Tables may also have associated indices, each of which is ordered by some set of columns.
WiredTiger supports column-oriented storage in addition to traditional row-oriented storage. Instead of storing all fields from a row together, WiredTiger can efficiently store and access sets of columns (including single columns) separately. The same programming interface is used to access row- and column-oriented data, making it possible to change the data layout to improve throughput without rewriting applications.
Applications will generally use the following classes to access and manage data:
- a WT_CONNECTION represents a connection to a database. Most applications
will only open one connection to a database for each process. The first
process to open a connection to a database will access the database in its
own address space. Subsequent connections (if allowed) will communicate
with the first process over a socket connection to perform their
operations.
- a WT_SESSION represents a context in which database operations are
performed. Sessions are opened on a specified connection, and applications
must open a single session for each thread accessing the database.
- a WT_CURSOR represents a cursor over a collection of data. Cursors are
opened in the context of a session (which may have an associated
transaction), and can query and update records. In the common case, a
cursor is used to access records in a table. However, cursors can be used
on subsets of tables (such as a single column or a projection of multiple
columns), as an interface to statistics, configuration data or
application-specific data sources.
Handles and operations are configured using strings, which keeps the set of methods in the API relatively small and makes the interface very similar regardless of the programming language used in the application. WiredTiger supports the C, C++, Java and Python programming languages (among others).
\section overview_details Programmer's Reference
For full details about using WiredTiger, see:
- \subpage architecture
- \ref using
- \ref wt "API Reference"
- \subpage sql_mapping
\section overview_examples Examples
The <a href="examples.html">Examples Page</a> introduces the API and shows
how to use it to achieve a variety of tasks.
*/
|