diff --git a/Documentation/Manual/NewFeatures14.md b/Documentation/Manual/NewFeatures14.md index 9a6c5038d4..ee261972d5 100644 --- a/Documentation/Manual/NewFeatures14.md +++ b/Documentation/Manual/NewFeatures14.md @@ -12,6 +12,11 @@ ArangoDB 1.4. ArangoDB 1.4 also contains several bugfixes that are not listed here - see the @EXTREF{https://github.com/triAGENS/ArangoDB/blob/devel/CHANGELOG,CHANGELOG} for details. +Foxx {#NewFeatures14Foxx} +------------------------- + +TODO + Multiple Databases {#NewFeatures14MultipleDatabases} ---------------------------------------------------- @@ -126,7 +131,7 @@ working earlier without waiting for the operation to finish. Asynchronous requests are queued on the server and executed by the server as soon as possible. The maximum size of the queue can be bounded by using the startup option -`-scheduler.maximal-queue-size`. +`--scheduler.maximal-queue-size`. The results of asynchronously executed requests are either dropped immediately by the server (i.e. _fire and forget_) or are stored in memory for later retrieval by the @@ -139,3 +144,68 @@ Replication{#NewFeatures14Replication} -------------------------------------- See @ref UserManualReplication for details. + +Web Interface Improvements {#NewFeatures14WebInterface} +------------------------------------------------------- + +The web interface now provides a graph viewer on the **Graphs** tab. The graph viewer +can be used to explore and navigate an existing ArangoDB graph. It supports both +graphs in the `_graphs` system collection as well as user-defined graphs that are +composed of an arbitrary vertex and edge collection. + +The **Dashboard** tab in the web interface provides an overview of server figures, which +can be adjusted to user needs. New figures are polled by the web interface in a +configurable interval, and can be graphed as time-series. + +The new **API** provides the full documentation of ArangoDB's built-in HTTP API. +This allows browsing the ArangoDB API locally without the need to refer to the +arangodb.org website for documentation. + +The **Applications** tab in the web interface provides an improved overview of installed +and available Foxx applications. + +The **AQL Editor** now provides some example queries and allows saving user-defined queries +for later reuse. + +The details view of collections in the web interface now shows more detailed figures +and also a collection's available indexes. Indexes can be created and deleted directly +from the web interface now. + +Command-Line Options added {#NewFeatures14Options} +-------------------------------------------------- + +The following command-line options have been added for _arangod_ in ArangoDB 1.4: + + * `--scheduler.maximal-queue-size`: limits the size of the asynchronous request + execution queue. Please have a look at @ref NewFeatures14Async for more details. + + * `--server.authenticate-system-only`: require authentication only for requests + going to internal APIs, that is URLs starting with `/_` (e.g. `/_api/...`). + + * `--server.disable-replication-applier`: start the server with all replication + appliers disabled. This might be useful if you want to fix a replication setup problem. + + * `--server.disable-replication-logger`: start the server with all replication + loggers disabled. This might be useful if you want to fix a replication setup problem. + + * `--log.requests-file`: log incoming HTTP requests to a file + + * `--log.content-filter`: restrict log output to messages containing a specific + string only. This is a debugging option. + + * `--log.source-filter` (renamed from `--log.filter`): restrict trace/debug log + output to messages originated by specific C/C++ source files. This is a debugging option. + + +The following command-line options have been added for _arangosh_ in 1.4: + + * `--server.database`: allows specifying the database name for the connection + + * `--prompt`: allows setting a user-defined prompt in arangosh. A `%d` in the + prompt will be replaced with the name of the current database. + + +The following command-line options have been added for _arangoimp_ in 1.4: + + * `--server.database`: allows specifying the database name for the connection + diff --git a/Documentation/Manual/NewFeatures14TOC.md b/Documentation/Manual/NewFeatures14TOC.md index b3f44add6d..c566612803 100644 --- a/Documentation/Manual/NewFeatures14TOC.md +++ b/Documentation/Manual/NewFeatures14TOC.md @@ -2,7 +2,10 @@ TOC {#NewFeatures14TOC} ======================= - @ref NewFeatures14Introduction + - @ref NewFeatures14Foxx - @ref NewFeatures14MultipleDatabases - @ref NewFeatures14Endpoints - @ref NewFeatures14Async - @ref NewFeatures14Replication + - @ref NewFeatures14WebInterface + - @ref NewFeatures14Options diff --git a/Documentation/Manual/Upgrading14.md b/Documentation/Manual/Upgrading14.md index 198ae2677b..26d7355e3c 100644 --- a/Documentation/Manual/Upgrading14.md +++ b/Documentation/Manual/Upgrading14.md @@ -7,7 +7,113 @@ Upgrading to ArangoDB 1.4 {#Upgrading14} Upgrading {#Upgrading14Introduction} ==================================== -1.4 is currently alpha, please do not use in production. +1.4 is currently beta, please do not use in production. + +Filesystem layout changes {#Upgrading14FileSystem} +-------------------------------------------------- + +The introduction of the "multiple databases" feature in ArangoDB 1.4 +has caused some changes in how ArangoDB organises data in the filesystem. +The changes may be relevant when upgrading from an earlier version of +ArangoDB to 1.4. + +If you upgrade from an existing ArangoDB 1.3 to 1.4, or from an older +version of 1.4 to the beta or stable 1.4 version, ArangoDB will move some +files and directories in the database and the applications directory around +so the result matches the required new layout. + +As usual when upgrading an existing ArangoDB instance, it may be necessary +to force the upgrade by starting the server once with the `--upgrade` option. + +This will automatically make the server run the upgrade tasks, which will +move files around if required. + +It is good practice to do a full backup of your data and applications directories +before upgrading. + +Please note that if you have your own scripts or procedures in place that directly +work on ArangoDB files or directories, you might need to ajdust them so they +use the new file and directory locations of ArangoDB 1.4. + +Changes in the data directory +----------------------------- + +If you only access the database and collection files via ArangoDB commands and +don't ever access the files in it separately, you may want to skip this section. +You should read on if you work on/with the files in the database directory with +tools other than ArangoDB (e.g. Unix commands, backup tools). + +Before 1.4, there was only one database in an ArangoDB instance, and ArangoDB +stored the data of all collections in directories directly underneath the main +data directory. + +This "old" filesystem layout looked like this: + + / + / + / + ... + +With multiple databases in 1.4, the filesystem layout is now: + + / + databases/ + / + / + / + / + / + / + +As you can see above, there is now an intermediate directory named _databases_ +inside the data directory, and each database resides in its own sub-directory +underneath the _databases_ directory. + +Database directory names use a numeric id part, e.g. `database-12345`. +To tell which database directory belongs to which database, you can check the file +`parameter.json` inside a database directory (by the way: collections work the same, +and you can determine the name of a collection by looking into the `parameter.json` +file in a collection's directory). + +Changes in the apps directory +----------------------------- + +Due to the multiple databases feature, there are also changes with respect to where +Foxx applications need to be organised in the filesystem. If you have not yet used +Foxx in ArangoDB already, you can safely skip this section. + +Foxx applications in previous versions of ArangoDB resided in the application directory, +with each Foxx application being contained in a directory directly underneath the main +application directory like this: + + apps/ + / + / + ... + +With multiple databases in ArangoDB 1.4, Foxx applications can be installed per database. +This requires Foxx applications to reside in database-specific directories. + + apps/ + databases/ + / + / + / + ... + / + / + ... + ... + system/ + / + ... + +The directories of individual applications will thus be moved underneath the correct +database sub-directory in the directory `apps/databases`. +There is also the option of using so-called *system applications*. These are not +database-specific but shared between all databases. ArangoDB is shipped with one +system application named *aardvark*, which is ArangoDB's web-based admin interface. + Troubleshooting {#Upgrading14Troubleshooting} ============================================= @@ -39,6 +145,29 @@ the same IP address, so ArangoDB will try to bind to the same address twice Other obvious bind problems at startup may be caused by ports being used by other programs, or IP addresses changing. +Problem: Find out the storage location of a database / collection +----------------------------------------------------------------- + +To tell which directory belongs to which named database and which collection, you +can use a Bash script like this: + + cd /path/to/data/directroy + for db in `find databases -mindepth 1 -maxdepth 1 -type d`; + do + echo -n "- database directory \"$db\", name "; + grep -o -E "name\":\"[^\"]+\"" "$db"/parameter.json | cut -d ":" -f 2; + + for c in `find $db/ -mindepth 1 -maxdepth 1 -type d`; + do + echo -n " - collection directory \"$c\", name "; + grep -E -o "name\":\"[^\"]+\"" "$c/parameter.json" | cut -d ":" -f 2; + done; + + echo; + done + +The above script should print out the names of all databases and collections +with their corresponding directory names. Removed Features {#Upgrading14RemovedFeatures} ==============================================