~skinny.moey/drizzle/innodb-replication

« back to all changes in this revision

Viewing changes to plugin/haildb/docs/index.rst

  • Committer: Brian Aker
  • Date: 2010-11-08 22:35:57 UTC
  • mfrom: (1802.1.114 trunk)
  • Revision ID: brian@tangent.org-20101108223557-w3xzwp9hjjtjhtc1
MergeĀ inĀ trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
HailDB
 
2
======
 
3
 
 
4
HailDB is a Storage Engine plugin that uses the HailDB library
 
5
(`http://www.haildb.com <http://www.haildb.com>`_) for storage. The HailDB
 
6
library is based off the innodb_plugin. By having HailDB as a separate shared
 
7
library, you are able to upgrade HailDB with new features or bug fixes
 
8
without having to update your whole database server.
 
9
 
 
10
HailDB is intended to replace the inbuilt innobase plugin.
 
11
 
 
12
Current Advantages
 
13
------------------
 
14
 * Crash proof DDL
 
15
   Table definitions are stored inside the HailDB data files and modified
 
16
   inside the same transaction as the DDL operation. You can never get
 
17
   out of sync between tables in HailDB and the table definition.
 
18
 * Simpler engine code
 
19
   The HailDB storage engine code is much smaller and cleaner than the
 
20
   innobase plugin
 
21
 * Smaller and faster auto_increment implementation
 
22
   Without the legacy of auto_increment locking for MySQL replication,
 
23
   we are able to use a simple global atomic variable for each table.
 
24
 * Direct access to the HailDB DATA_DICTIONARY
 
25
   You can directly query the underlying (internal) data dictionary
 
26
 
 
27
Current Limitations
 
28
-------------------
 
29
 * Does not yet support FOREIGN KEYs
 
30
 * No semi-consistent read
 
31
 * No descending indexes
 
32
 * Some DATA_DICTIONARY views have not yet been ported over.
 
33
 * Tables without an explicit PRIMARY KEY get a hidden 64bit auto_increment
 
34
   primary key instead of the internal ROW_ID as a primary key.
 
35
 
 
36
Isolation Levels
 
37
----------------
 
38
 
 
39
HailDB supports: REPEATABLE READ, READ COMMITTED, SERIALIZABLE and READ
 
40
UNCOMMITTED isolation levels.
 
41
 
 
42
Row formats
 
43
-----------
 
44
 
 
45
HailDB can store the rows for a table in one of a few ways. This can be specified as an option to CREATE TABLE (example below).::
 
46
 
 
47
  CREATE TABLE t1 (
 
48
         pk bigint auto_increment primary key,
 
49
         b blob
 
50
  ) ROW_FORMAT='COMPRESSED' ENGINE=InnoDB;
 
51
 
 
52
REDUNDANT
 
53
  Oldest row format. It was the default prior to MySQL 5.0.3. You probably
 
54
  no longer want to use this row format.
 
55
 
 
56
COMPACT
 
57
  Default since MySQL 5.0.3. It uses less space than the REDUNDANT row format
 
58
  for variable length filends and nulls.
 
59
 
 
60
DYNAMIC
 
61
  (Requires Barracuda file format or higher). TEXT and BLOB fields are stored
 
62
  separately to the rest of the row.
 
63
 
 
64
COMPRESSED
 
65
  (Requires Barracuda file format or higher). Similar to Dynamic, but database
 
66
  pages are compressed. This trades off slightly increased CPU usage for smaller
 
67
  on disk tables.