ArangoDB v3.3.beta1 发布,多模型 NoSQL 数据库

ArangoDB v3.3.beta1 发布(官方发行说明),这是 3.3 的第二个里程碑版本,主要是新的数据复制引擎的改进,包括:

  • 重新设计更可靠的复制协议

  • 内部架构的重构和优化以更好的支持持续的 异步复制

  • 增加一个全局异步复制 API

  • 自动的主从切换


* introduce `enforceReplicationFactor`: An optional parameter controlling    
if the server should bail out during collection creation if there are not    
enough DBServers available for the desired `replicationFactor`.    
* fixed issue #3516: Show execution time in arangosh    
this change adds more dynamic prompt components for arangosh    
The following components are now available for dynamic prompts,    
settable via the `--console.prompt` option in arangosh:    
- '%t': current time as timestamp    
- '%p': duration of last command in seconds    
- '%d': name of current database    
- '%e': current endpoint    
- '%E': current endpoint without protocol    
- '%u': current user    
The time a command takes can be displayed easily by starting arangosh with `--console.prompt "%p> "`.    
* make the ArangoShell refill its collection cache when a yet-unknown collection    
is first accessed. This fixes the following problem:    
arangosh1> db._collections();  // shell1 lists all collections    
arangosh2> db._create("test"); // shell2 now creates a new collection 'test'    
arangosh1> db.test.insert({}); // shell1 is not aware of the collection created    
// in shell2, so the insert will fail    
* enable JEMalloc background thread for purging and returning unused memory    
back to the operating system (Linux only)    
* incremental transfer of initial collection data now can handle partial    
responses for a chunk, allowing the leader/master to send smaller chunks    
(in terms of HTTP response size) and limit memory usage    
* initial creation of shards for cluster collections is now faster with    
replicationFactor values bigger than 1. this is achieved by an optimization    
for the case when the collection on the leader is still empty    
* potential fix for issue #3517: several "filesystem full" errors in logs    
while there's a lot of disk space    
* added C++ implementations for AQL function `SUBSTRING()`, `LEFT()`, `RIGHT()` and `TRIM()`    
* fixed issue #3395: AQL: cannot instantiate CollectBlock with undetermined    
aggregation method

ArangoDB 是一个开源的分布式原生多模型数据库 (Apache 2 license)。


利用一个引擎,一个 query 语法,一项数据库技术,以及多个数据模型,来最大力度满足项目的灵活性,简化技术堆栈,简化数据库运维,降低运营成本。

ArangoDB原生多模型数据库,指的是兼有图 (graph)、文档 (document)和键/值对 (key/value) 三种数据模型存储软件。其快捷灵活之处在于,它有适用于全部三种数据模型的统一内核和统一数据库查询语言——AQL (ArangoDB Query Language)。其可以涵盖全部三种数据模型,还允许在单个查询中混合使用三种数据模型。


Read original article: 

ArangoDB v3.3.beta1 发布,多模型 NoSQL 数据库