1
0
Fork 0
arangodb/arangod/Documentation/dba-manual.dox

246 lines
9.7 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
/// @brief dba guide guide
///
/// @file
///
/// DISCLAIMER
///
/// Copyright 2012 triagens GmbH, Cologne, Germany
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
/// Copyright holder is triAGENS GmbH, Cologne, Germany
///
/// @author Dr. Frank Celler
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- DBA MANUAL
// -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManual ArangoDB's DBA Manual (@VERSION)
///
/// @NAVIGATE{UserManual,Home,ImpManual}
///
/// @if LATEX
/// <ul>
/// <li>@ref DbaManualBasics</li>
/// <li>@ref DbaManualAuthentication</li>
/// <li>@ref DbaManualDatafileDebugger</li>
/// <li>@ref DbaManualEmergencyConsole</li>
/// <li>@ref ShellCollection</li>
/// <li>@ref ShellIndex</li>
/// <li>@ref IndexCap</li>
/// <li>@ref IndexGeo</li>
/// <li>@ref IndexHash</li>
/// <li>@ref IndexSkiplist</li>
///
/// @latexonly\appendix@endlatexonly
/// <li>@ref Glossary</li>
/// </ul>
/// @else
/// @copydetails DbaManualBasicsTOC
/// @copydetails DbaManualAuthenticationTOC
/// @copydetails DbaManualDatafileDebuggerTOC
/// @copydetails DbaManualEmergencyConsoleTOC
/// @copydetails ShellCollectionTOC
/// @copydetails ShellIndexTOC
/// @copydetails IndexesTOC
/// @endif
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- DBA MANUAL BASCIS
// -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualBasicsTOC
///
/// <ul>
/// <li>@ref DbaManualBasics
/// <ul>
/// <li>@ref DbaManualBasicsDurability</li>
/// <li>@ref DbaManualBasicsMvcc</li>
/// <li>@ref DbaManualBasicsConfig
/// <ul>
/// <li>@ref DbaManualBasicsConfigGlobal</li>
/// <li>@ref DbaManualBasicsConfigCollection</li>
/// </ul>
/// </li>
/// </ul>
/// </li>
/// </ul>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualBasics Administrating ArangoDB
///
/// @EMBEDTOC{DbaManualBasicsTOC}
///
/// @section DbaManualBasicsDurability Mostly Memory/Durability
///////////////////////////////////////////////////////////////
///
/// Database documents are stored in memory-mapped files. Per default, these
/// memory-mapped files are synced regularly but not instantly. This is often a
/// good tradeoff between storage performance and durability. If this level of
/// durabiity is too low for an application, the server can also sync all
/// modifications to disk instantly. This will give full durability but will come
/// with a performance penalty as each data modification will trigger a sync
/// I/O operation.
///
/// @section DbaManualBasicsMvcc AppendOnly/MVCC
////////////////////////////////////////////////
///
/// Instead of overwriting existing documents, a completely new version of the
/// document is generated. The two benefits are:
///
/// - Objects can be stored coherently and compactly in the main memory.
/// - Objects are preserved-isolated writing and reading transactions allow
/// accessing these objects for parallel operations.
///
/// The system collects obsolete versions as garbage, recognizing them as
/// forsaken. Garbage collection is asynchronous and runs parallel to other
/// processes.
///
/// @section DbaManualBasicsConfig Configuration
////////////////////////////////////////////////
///
/// @subsection DbaManualBasicsConfigGlobal Global Configuration
////////////////////////////////////////////////////////////////
///
/// There are certain default values, which you can store in the
/// configuration file or supply on the command line.
///
/// @copydetails triagens::arango::ArangoServer::_defaultMaximalSize
///
/// @copydetails triagens::arango::ArangoServer::_forceSyncShapes
///
/// @subsection DbaManualBasicsConfigCollection Per Collection Configuration
////////////////////////////////////////////////////////////////////////////
///
/// You can configure the durability behavior on a per collection basis.
/// Use the ArangoDB shell to change these properties.
///
/// @copydetails JS_PropertiesVocbaseCol
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- DBA MANUAL AUTHENTICATION
// -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualAuthenticationTOC
///
/// <ul>
/// <li>@ref DbaManualAuthentication
/// <ul>
/// <li>@ref DbaManualAuthenticationCommandLine</li>
/// </ul>
/// </li>
/// </ul>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualAuthentication Authentication and Authorisation
///
/// @EMBEDTOC{DbaManualAuthenticationTOC}
///
/// ArangoDB only provides a very simple authentication interface and
/// no authorisation. We plan to add authorisation features in later
/// releases, which will allow the administrator to restrict access to
/// collections and queries to certain users, given them either read
/// or write access.
///
/// Currently, you can only secure the access to the HTTP client and
/// admin port in a all-or-nothing fashion.
/// The collection @LIT{_users} contains all user and the SHA256 of
/// their passwords. A user can be active or inactive. A typical document
/// of this collection is
///
/// @verbinclude user-document
///
/// @section DbaManualAuthenticationCommandLine Command-Line Options for the Authentication and Authorisation
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- DBA MANUAL DATAFILE DEBUGGER
// -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualDatafileDebuggerTOC
///
/// <ul>
/// <li>@ref DbaManualDatafileDebugger
/// </li>
/// </ul>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualDatafileDebugger Datafile Debugger
///
/// @EMBEDTOC{DbaManualDatafileDebuggerTOC}
///
/// AranagoDB uses append-only journals. Data corruption should only occur when
/// the database server is killed. In this case, the corruption should only
/// occur in the last object(s) being written to the journal.
///
/// If a corruption occurs within a normal datafile, then this can only happen
/// if a hardware fault occurred.
///
/// If a journal or datafile is corrupt, shut down the database server and start
/// the program
///
/// @LIT{arango-dfdb}
///
/// in order to check the consistency of the datafiles and journals.
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- DBA MANUAL EMERGENCY CONSOLE
// -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualEmergencyConsoleTOC
///
/// <ul>
/// <li>@ref DbaManualEmergencyConsole
/// </li>
/// </ul>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page DbaManualEmergencyConsole Emergency Console
///
/// @EMBEDTOC{DbaManualEmergencyConsoleTOC}
///
/// The following command starts a emergency console. See below for a list of
/// frequently used options, see @ref CommandLine "here" for a complete list.
///
/// @note Never start the emergency console for a database which also has a
/// server attached to it. In general the ArangoDB shell is what you want.
///
/// @EXAMPLE{start-emergency-console,emergency console}
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------
// Local Variables:
// mode: c++
// mode: outline-minor
// outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
// End: