//////////////////////////////////////////////////////////////////////////////// /// @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 /// /// @else /// @copydetails DbaManualBasicsTOC /// @copydetails DbaManualAuthenticationTOC /// @copydetails DbaManualDatafileDebuggerTOC /// @copydetails DbaManualEmergencyConsoleTOC /// @copydetails ShellCollectionTOC /// @copydetails ShellIndexTOC /// @copydetails IndexesTOC /// @endif //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- DBA MANUAL BASCIS // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @page DbaManualBasicsTOC /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @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 /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @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 /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @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 /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @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: