~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/installing/from_source.rst

This patch completes the first step in the splitting of
the XA resource manager API from the storage engine API,
as outlined in the specification here:

http://drizzle.org/wiki/XaStorageEngine

* Splits plugin::StorageEngine into a base StorageEngine
  class and two derived classes, TransactionalStorageEngine
  and XaStorageEngine.  XaStorageEngine derives from
  TransactionalStorageEngine and creates the XA Resource
  Manager API for storage engines.

  - The methods moved from StorageEngine to TransactionalStorageEngine
    include releaseTemporaryLatches(), startConsistentSnapshot(), 
    commit(), rollback(), setSavepoint(), releaseSavepoint(),
    rollbackToSavepoint() and hasTwoPhaseCommit()
  - The methods moved from StorageEngine to XaStorageEngine
    include recover(), commitXid(), rollbackXid(), and prepare()

* Places all static "EngineVector"s into their proper
  namespaces (typedefs belong in header files, not implementation files)
  and places all static methods corresponding
  to either only transactional engines or only XA engines
  into their respective files in /drizzled/plugin/

* Modifies the InnoDB "handler" files to extend plugin::XaStorageEngine
  and not plugin::StorageEngine

The next step, as outlined in the wiki spec page above, is to isolate
the XA Resource Manager API into its own plugin class and modify
plugin::XaStorageEngine to implement plugin::XaResourceManager via
composition.  This is necessary to enable building plugins which can
participate in an XA transaction *without having to have that plugin
implement the entire storage engine API*

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Installing From Source
2
 
======================
3
 
 
4
 
Dependencies
5
 
------------
6
 
 
7
 
Minimal Requirements
8
 
^^^^^^^^^^^^^^^^^^^^
9
 
To compile Drizzle with the most basic set of pluginsyou will need to following
10
 
dependencies installed:
11
 
 
12
 
 * autoconf
13
 
 * automake
14
 
 * bison
15
 
 * flex
16
 
 * gettext
17
 
 * gperf
18
 
 * intltool
19
 
 * libboost-date-time-dev
20
 
 * libboost-dev
21
 
 * libboost-filesystem-dev
22
 
 * libboost-iostreams-dev
23
 
 * libboost-program-options-dev
24
 
 * libboost-regex-dev
25
 
 * libboost-test-dev
26
 
 * libboost-thread-dev
27
 
 * libpcre3-dev
28
 
 * libreadline5-dev | libreadline-dev
29
 
 * libtool
30
 
 * protobuf-compiler
31
 
 * python-sphinx
32
 
 * uuid-dev
33
 
 * zlib1g-dev (>= 1:1.1.3-5)
34
 
 
35
 
Full Dependencies
36
 
^^^^^^^^^^^^^^^^^
37
 
Additionally, if you wish to build all of the plugins, you will need to install
38
 
these too:
39
 
 
40
 
 * libcurl4-gnutls-dev
41
 
 * libgcrypt11-dev
42
 
 * libgearman-dev (>= 0.10)
43
 
 * libhaildb-dev (>= 2.3.1)
44
 
 * libmemcached-dev (>= 0.39)
45
 
 * libpam0g-dev
46
 
 * libprotobuf-dev (>= 2.1.0)
47
 
 * libtokyocabinet-dev (>= 1.4.23)
48
 
 * systemtap-sdt-dev
49
 
 * libnotifymm-dev
50
 
 * doxygen
51
 
 * pandora-build
52
 
 
53
 
Obtaining The Source
54
 
--------------------
55
 
The latest source release can always be found on our `LaunchPad site
56
 
<https://launchpad.net/drizzle>`_, alternatively the bzr source from our stable
57
 
trunk can be obtained by doing:
58
 
 
59
 
.. code-block:: bash
60
 
 
61
 
   bzr branch lp:drizzle
62
 
 
63
 
Compiling The Source
64
 
--------------------
65
 
Compiling is as simple as doing the following inside the source:
66
 
 
67
 
.. code-block:: bash
68
 
 
69
 
   ./config/autorun.sh
70
 
   ./configure
71
 
   make
72
 
   make install
73