1
0
Fork 0
arangodb/CHANGELOG

389 lines
15 KiB
Plaintext

v1.1.beta1 (2012-XX-XX)
-----------------------
* WARNING:
- the user has changed from "arango" to "arangodb", the start script has changed from
"arangod" to "arangodb", the database directory has changed from "/var/arangodb" to
"/var/lib/arangodb" to be compliant with various Linux policies
- In 1.1, we have introduced types for collections: regular documents go into document
collections, and edges go into edge collections. The prefixing (db.xxx vs. edges.xxx)
is gone in 1.1. edges.xxx can still be used to access collections, however, it will
not determine the collection type anymore. To create an edge collection 1.1, you can
use db._createEdgeCollection(). And there's also db._createDocumentCollection().
db._create() is also still there and will create a document collection.
* having the OpenSSL library installed is now a prerequisite to compiling ArangoDB
removed the --enable-ssl configure option
* added AQL function TO_LIST
* issue #224: add optional Content-Id for batch requests
* issue #221: more documentation on AQL explain functionality. Also added
ArangoStatement.explain() client method
* added db._createStatement() method on server as well (was previously available
on the client only)
* issue #219: continue in case of "document not found" error in PATHS() function
* issue #213: make waitForSync overridable on specifc actions
* changed AQL optimiser to use indexes in more cases. Previously, indexes might
not have been used when in a reference expression the inner collection was
specified last. Example: FOR u1 IN users FOR u2 IN users FILTER u1._id == u2._id
Previously, this only checked whether an index could be used for u2._id (not
possible). It was not checked whether an index on u1._id could be used (possible).
Now, for expressions that have references/attribute names on both sides of the
above as above, indexes are checked for both sides.
* issue #204: extend the CSV import by TSV and by user configurable
seperator character(s)
* issue #180: added support for batch operations
* added startup option --server.backlog-size
this allows setting the value of the backlog for the listen() system call.
the default value is 10, the maximum value is platform-dependent
* introduced new configure option "--enable-maintainer-mode" for
ArangoDB maintainers. this option replaces the previous compile switches
--with-boost-test, --enable-bison, --enable-flex and --enable-errors-dependency
the individual configure options have been removed. --enable-maintainer-mode
turns them all on.
* removed potentially unused configure option --enable-memfail
* fixed issue #197: HTML web interface calls /_admin/user-manager/session
* fixed issue #195: VERSION file in database directory
* fixed issue #193: REST API HEAD request returns a message body on 404
* fixed issue #188: intermittent issues with 1.0.0
(server-side cursors not cleaned up in all cases, pthreads deadlock issue)
* issue #189: key store should use ISO datetime format bug
* issue #187: run arango-upgrade on server start
* fixed issue #183: strange unittest error
* fixed issue #182: manual pages
* fixed issue #181: use getaddrinfo
* moved default database directory to "/var/lib/arangodb" in accordance with
http://www.pathname.com/fhs/pub/fhs-2.3.html
* fixed issue #179: strange text in import manual
* fixed issue #178: test for aragoimp is missing
* fixed issue #177: a misleading error message was returned if unknown variables
were used in certain positions in an AQL query.
* fixed issue #176: explain how to use AQL from the arangosh
* issue #175: re-added hidden (and deprecated) option --server.http-port. This
option is only there to be downwards-compatible to Arango 1.0.
* fixed issue #174: missing Documentation for `within`
* fixed issue #170: add db.<coll_name>.all().toArray() to arangosh help screen
* fixed issue #169: missing argument in Simple Queries
* added program arango-upgrade. This program must be run after installing ArangoDB
and after upgrading from a previous version of ArangoDB. The arango-upgrade script
will ensure all system collections are created and present in the correct state.
It will also perform any necessary data updates.
* issue #153: edge collection should be a flag for a collection
collections now have a type: the type can be queried in Javascript using the
<collection>.type() method. When new collections are created using
db._create(), they will be document collections by default. To explicitly
create a document collection, use db._createDocumentCollection(). To
create an edge collection, use db._createEdgeCollection(). The previous
functionality to create edge collections via edges._create() has been removed.
The distinction between document and edge collections is now done at runtime
using a collection's type value, and not by addressing collections via two
different base objects (db.* and edges.*).
The Javascript objects ArangoEdges and ArangoEdgesCollection have been removed
completely.
All internal and test code has been adjusted for this, however, client code
that uses edges.* must be adjusted to use db.* instead.
* issue #150: call V8 garbage collection on server periodically
* issue #110: added support for partial updates
The REST API for documents now offers an HTTP PATCH method to partially update
documents. Overwriting/replacing documents is still available via the HTTP PUT method
as before. The Javascript API in the shell also offers a new update() method in extension to
the previously existing replace() method.
v1.0.1 (2012-09-30)
-------------------
* added AQL function TO_LIST
* draft for issue #165: front-end application howto
* updated mruby to cf8fdea4a6598aa470e698e8cbc9b9b492319d
* fix for issue #190: install doesn't create log directory
* fix for issue #194: potential race condition between creating and dropping collections
* fix for issue #193: REST API HEAD request returns a message body on 404
* fix for issue #188: intermittent issues with 1.0.0
* fix for issue #163: server cannot create collection because of abandoned files
* fix for issue #150: call V8 garbage collection on server periodically
v1.0.0 (2012-08-17)
-------------------
* fix for issue #157: check for readline and ncurses headers, not only libraries
v1.0.beta4 (2012-08-15)
-----------------------
* fix for issue #152: fix memleak for barriers
v1.0.beta3 (2012-08-10)
-----------------------
* fix for issue #151: Memleak, collection data not removed
* fix for issue #149: Inconsistent port for admin interface
* fix for issue #163: server cannot create collection because of abandoned files
* fix for issue #157: check for readline and ncurses headers, not only libraries
* fix for issue #108: db.<collection>.truncate() inefficient
* fix for issue #109: added startup note about cached collection names and how to
refresh them
* fix for issue #156: fixed memleaks in /_api/import
* fix for issue #59: added tests for /_api/import
* modified return value for calls to /_api/import: now, the attribute "empty" is
returned as well, stating the number of empty lines in the input. Also changed the
return value of the error code attribute ("errorNum") from 1100 ("corrupted datafile")
to 400 ("bad request") in case invalid/unexpected JSON data was sent to the server.
This error code is more appropriate as no datafile is broken but just input data is
incorrect.
* fix for issue #152: Memleak for barriers
* fix for issue #151: Memleak, collection data not removed
* value of --database.maximal-journal-size parameter is now validated on startup. If
value is smaller than the minimum value (currently 1048576), an error is thrown and
the server will not start. Before this change, the global value of maximal journal
size was not validated at server start, but only on collection level
* increased sleep value in statistics creation loop from 10 to 500 microseconds. This
reduces accuracy of statistics values somewhere after the decimal points but saves
CPU time.
* avoid additional sync() calls when writing partial shape data (attribute name data)
to disk. sync() will still be called when the shape marker (will be written after
the attributes) is written to disk
* issue #147: added flag --database.force-sync-shapes to force synching of shape data
to disk. The default value is true so it is the same behavior as in version 1.0.
if set to false, shape data is synched to disk if waitForSync for the collection is
set to true, otherwise, shape data is not synched.
* fix for issue #145: strange issue on Travis: added epsilon for numeric comparion in
geo index
* fix for issue #136: adjusted message during indexing
* issue #131: added timeout for HTTP keep-alive connections. The default value is 300
seconds. There is a startup parameter server.keep-alive-timeout to configure the value.
Setting it to 0 will disable keep-alive entirely on the server.
* fix for issue #137: AQL optimizer should use indexes for ref accesses with
2 named attributes
v1.0.beta2 (2012-08-03)
-----------------------
* fix for issue #134: improvements for centos RPM
* fixed problem with disable-admin-interface in config file
v1.0.beta1 (2012-07-29)
-----------------------
* fixed issue #118: We need a collection "debugger"
* fixed issue #126: Access-Shaper must be cached
* INCOMPATIBLE CHANGE: renamed parameters "connect-timeout" and "request-timeout"
for arangosh and arangoimp to "--server.connect-timeout" and "--server.request-timeout"
* INCOMPATIBLE CHANGE: authorization is now required on the server side
Clients sending requests without HTTP autorization will be rejected with HTTP 401
To allow backwards compatibility, the server can be started with the option
"--server.disable-authentication"
* added options "--server.username" and "--server.password" for arangosh and arangoimp
These parameters must be used to specify the user and password to be used when
connecting to the server. If no password is given on the command line, arangosh/
arangoimp will interactively prompt for a password.
If no user name is specified on the command line, the default user "root" will be
used.
* added startup option "--server.ssl-cipher-list" to determine which ciphers to
use in SSL context. also added SSL_OP_CIPHER_SERVER_PREFERENCE to SSL default
options so ciphers are tried in server and not in client order
* changed default SSL protocol to TLSv1 instead of SSLv2
* changed log-level of SSL-related messages
* added SSL connections if server is compiled with OpenSSL support. Use --help-ssl
* INCOMPATIBLE CHANGE: removed startup option "--server.admin-port".
The new endpoints feature (see --server.endpoint) allows opening multiple endpoints
anyway, and the distinction between admin and "other" endpoints can be emulated
later using privileges
* INCOMPATIBLE CHANGE: removed startup options "--port", "--server.port", and
"--server.http-port" for arangod.
These options have been replaced by the new "--server.endpoint" parameter
* INCOMPATIBLE CHANGE: removed startup option "--server" for arangosh and arangoimp.
These options have been replaced by the new "--server.endpoint" parameter
* Added "--server.endpoint" option to arangod, arangosh, and arangoimp.
For arangod, this option allows specifying the bind endpoints for the server
The server can be bound to one or multiple endpoints at once. For arangosh
and arangoimp, the option specifies the server endpoint to connect to.
The following endpoint syntax is currently supported:
- tcp://host:port or http@tcp://host:port (HTTP over IPv4)
- tcp://[host]:port or http@tcp://[host]:port (HTTP over IPv6)
- ssl://host:port or http@tcp://host:port (HTTP over SSL-encrypted IPv4)
- ssl://[host]:port or http@tcp://[host]:port (HTTP over SSL-encrypted IPv6)
- unix://path/to/socket or http@unix:///path/to/socket (HTTP over UNIX socket)
If no port is specified, the default port of 8529 will be used.
* INCOMPATIBLE CHANGE: removed startup options "--server.require-keep-alive" and
"--server.secure-require-keep-alive".
The server will now behave as follows which should be more conforming to the
HTTP standard:
* if a client sends a "Connection: close" header, the server will close the
connection
* if a client sends a "Connection: keep-alive" header, the server will not
close the connection
* if a client does not send any "Connection" header, the server will assume
"keep-alive" if the request was an HTTP/1.1 request, and "close" if the
request was an HTTP/1.0 request
* (minimal) internal optimisations for HTTP request parsing and response header
handling
* fixed Unicode unescaping bugs for \f and surrogate pairs in BasicsC/strings.c
* changed implementation of TRI_BlockCrc32 algorithm to use 8 bytes at a time
* fixed issue #122: arangod doesn't start if <log.file> cannot be created
* fixed issue #121: wrong collection size reported
* fixed issue #98: Unable to change journalSize
* fixed issue #88: fds not closed
* fixed escaping of document data in HTML admin front end
* added HTTP basic authentication, this is always turned on
* added server startup option --server.disable-admin-interface to turn off the
HTML admin interface
* honor server startup option --database.maximal-journal-size when creating new
collections without specific journalsize setting. Previously, these
collections were always created with journal file sizes of 32 MB and the
--database.maximal-journal-size setting was ignored
* added server startup option --database.wait-for-sync to control the default
behavior
* renamed "--unit-tests" to "--javascript.unit-tests"
v1.0.alpha3 (2012-06-30)
------------------------
* fixed issue #116: createCollection=create option doesn't work
* fixed issue #115: Compilation issue under OSX 10.7 Lion & 10.8 Mountain Lion
(homebrew)
* fixed issue #114: image not found
* fixed issue #111: crash during "make unittests"
* fixed issue #104: client.js -> ARANGO_QUIET is not defined
v1.0.alpha2 (2012-06-24)
------------------------
* fixed issue #112: do not accept document with duplicate attribute names
* fixed issue #103: Should we cleanup the directory structure
* fixed issue #100: "count" attribute exists in cursor response with "count:
false"
* fixed issue #84 explain command
* added new MRuby version (2012-06-02)
* added --log.filter
* cleanup of command line options:
** --startup.directory => --javascript.startup-directory
** --quite => --quiet
** --gc.interval => --javascript.gc-interval
** --startup.modules-path => --javascript.modules-path
** --action.system-directory => --javascript.action-directory
** --javascript.action-threads => removed (is now the same pool as --server.threads)
* various bug-fixes
* support for import
* added option SKIP_RANGES=1 for make unittests
* fixed several range-related assertion failures in the AQL query optimiser
* fixed AQL query optimisations for some edge cases (e.g. nested subqueries with
invalid constant filter expressions)
v1.0.alpha1 (2012-05-28)
------------------------
Alpha Release of ArangoDB 1.0