The First MultiModel DBMS with a true Graph Engine
See all
Members (589)
Luca Garulli's profile photo
Marco Briscolini's profile photo
Ricardo Memoria's profile photo
Anders Grindland's profile photo
Wubstr's profile photo
echinopsii - the open source totem's profile photo
Daniele Madama's profile photo
zainab noor's profile photo
André Barbosa's profile photo
Pavel Janečka's profile photo
Diego Gil's profile photo
nataLINO Lattanzi's profile photo
Eugene Tolbakov's profile photo
Nacho Rodriguez's profile photo
Federico Colantoni's profile photo
Korn Kutan's profile photo
nishank rajvanshi's profile photo
Poonam Gupta's profile photo
Achim Friedland's profile photo
Levente György's profile photo
이장원's profile photo
daniele montagni's profile photo
István Pálfy's profile photo
Salvatore Piccione's profile photo

Stream

Join this community to post or comment

Paolo p

Discussione  - 
 
How to (easily) say goodbye to your #RelationalDatabase with #OrientDB Teleporter! http://bit.ly/28NwCbd #NoSQL
The latest version of OrientDB Teleporter makes it possible to define the configuration necessary in order to manage and customize your migration.
3
1
Roberto Franchini's profile photo
Add a comment...

Paolo p

Discussione  - 
 
#GameOfGraphs by #OrientDB - Interactive graph front end brings you everything you need to know about #GameOfThrones http://bit.ly/1svMBSZ
1
Add a comment...

Paolo p

Discussione  - 
 
Documentation for #OrientJS, the official #Nodejs driver for #OrientDB, is now online. Find it @ http://bit.ly/28kKd20 #NoSQL
OrientJS Driver. OrientDB supports all JVM languages for server-side scripting. Using the OrientJS module, you can develop database applications for OrientDB using the Node.js language. It is fast, lightweight and uses the binary protocol, with features including: ...
1
1
Roberto Franchini's profile photo
Add a comment...

Luca Garulli

Discussione  - 
 
What happens when mix Game Of Thrones with OrientDB? Games of Graphs!
http://orientdb.com/orientdb-game-of-graphs/
Game of Graphs is a Graph database exploring the Game of thrones world. Read about characters, connections and everything there is to know about GoT.
1
1
Roberto Franchini's profile photo
Add a comment...

Andrey Lomakin

Discussione  - 
 
Performance degradation as side effect of absence of MaxDirectMemory parameter in OrientDB embedded database.
1
1
Andrey Lomakin's profile photo
Add a comment...

Thomas Knoell

Discussione  - 
 
Hi,

We use OrientDB version 2.1.4 with a remote database setup and have encountered issues summarized next. If anyone can provide some feedback on this it would be greatly appreciated.

Thanks

----------

Date Queries

While this query select from table_a where my_date <= date('2016-04-12 21:25:17','yyyy-MM-dd HH:mm:ss') returns the expected data from the table (including the records where the date is equal to the identified date and time), the following query does not return any matching data: select from table_a where my_date = date('2016-04-12 21:25:17','yyyy-MM-dd HH:mm:ss') although qualifying data exists. The property my_date is of type DATETIME.

Large Resultsets

We have a class with just over 2.4 million entries. It is common for the application (JAVA) to execute queries on the class that return a thousands of rows. The queries in question are filtered on a DATETIME property and look like this: select from table_a where my_date > date('2016-04-14 18:00:52','yyyy-MM-dd HH:mm:ss'). Originally, the DATETIME property did not have an index. Frequently, queries like this resulted in heap memory exceptions and the database server to crash. The crash could be reproduced from the application as well as from OrientDB Studio when executing the same statement as in the application. Here is what we tried to work around this and the results of those attempts:

> Use Index

A non-unique index was applied to the DATETIME property. However, this did not resolve the issue consistently, the out-of-heap error still occurred at times.

> Query against Index

Changing the query to be executed against the index - select rid from index:table_a.my_date where key > date('2016-04-14 18:00:52', 'yyyy-MM-dd HH:mm:ss') had the same result - worked at times but also caused the out-of-heap error.

> Pagination

Using the auto-pagination approach described in the OrientDB documents did work fine and resolved the issue in that there was no heap memory problem anymore, however, it failed to return the correct set of qualifying data. Here are the numbers:

Query: select from table_a where my_date > date('2016-04-14 18:00:52', 'yyyy-MM-dd HH:mm:ss') order by my_date desc limit 1000
Executed in OrientDB Studio (without the limit specification): returned 208,782 rows
Executed with the pagination approach in the application (limit = 1000): returned 27,141 rows.

Even worse, when the limit was changed, it actually returned too much data:

Executed with the pagination approach in the application (limit = 5,000): returned 590,427 rows.
Executed with the pagination approach in the application (limit = 10,000): returned 2,324,682 rows.

The alternative to the auto-pagination approach would be to handle this ourselves using the skip and limit options. We have not yet considered this option because of performance concerns. But maybe there is no alternative.

We also saw that if the pagination was used on an indexed property, the query always returned the same result set and hence never exited the loop.

> Heap Size and Disk Cache Settings

Last but not least we modified the heap size and disk cache buffer settings in server.bat but only had unpredictable results. Furthermore, during the execution of the queries from either the application or OrientDB Studio, the server window shows multiple recommendations, each time with a different set of numbers, for example:

2016-05-16 09:54:13:385 INFO {db=AndrewDB} [TIP] Query 'SELECT FROM table_a WHERE my_date > date('2016-04-14 18:00:52', 'yyyy-MM-dd HH:mm:ss') ORDER BY my_date DESC LIMIT 1000' fetched more than 50000 records: to speed up the execution, create an index or change the query to use an existent index [OProfilerStub]
2016-05-16 09:54:59:276 INFO Database 'AndrewDB' uses 509MB/600MB of DISKCACHE memory, while Heap is not completely used (usedHeap=162MB maxHeap=455MB). To improve performance set maxHeap to 195MB and DISKCACHE to 860MB [OAbstractProfiler$MemoryChecker]
2016-05-16 09:54:59:276 INFO -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx195M 2) MAXDISKCACHE=860 [OAbstractProfiler$MemoryChecker]
2016-05-16 09:56:59:285 INFO Database 'AndrewDB' uses 509MB/600MB of DISKCACHE memory, while Heap is not completely used (usedHeap=202MB maxHeap=455MB). To improve performance set maxHeap to 242MB and DISKCACHE to 813MB [OAbstractProfiler$MemoryChecker]
2016-05-16 09:56:59:285 INFO -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx242M 2) MAXDISKCACHE=813 [OAbstractProfiler$MemoryChecker]
2016-05-16 09:58:59:288 INFO Database 'AndrewDB' uses 509MB/600MB of DISKCACHE memory, while Heap is not completely used (usedHeap=270MB maxHeap=455MB). To improve performance set maxHeap to 324MB and DISKCACHE to 730MB [OAbstractProfiler$MemoryChecker]
2016-05-16 09:58:59:288 INFO -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx324M 2) MAXDISKCACHE=730 [OAbstractProfiler$MemoryChecker]
2016-05-16 10:00:59:292 INFO Database 'AndrewDB' uses 509MB/600MB of DISKCACHE memory, while Heap is not completely used (usedHeap=271MB maxHeap=455MB). To improve performance set maxHeap to 325MB and DISKCACHE to 729MB [OAbstractProfiler$MemoryChecker]
2016-05-16 10:00:59:292 INFO -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx325M 2) MAXDISKCACHE=729 [OAbstractProfiler$MemoryChecker]

It appears that there is no general setting of the values that would work for all situations.
1
Thomas Knoell's profile photoLuca Garulli's profile photo
9 comments
 
l.garulli ///-at--- orientdb.com
Add a comment...

Andrey Lomakin

Discussione  - 
 
OrientDB allows to change disk cache size at runtime. This article describes nuances of given API.
1
Add a comment...

Andrey Lomakin

Discussione  - 
 
Incremental backup API and mechanics underneath of incremental backup.
1
Add a comment...

Luca Garulli

Discussione  - 
 
#OrientDB Guide, mini episodes in Italian by Giuseppe Maggi (sorry for the rest of the world). http://www.html.it/guide/guida-orientdb/ #nosql #graphdb
 ·  Translate
1
Add a comment...

Luca Garulli

Discussione  - 
2
Carlo Pradissitto's profile photoLuca Garulli's profile photo
5 comments
 
There is an army behind v2.2 ;-)
Add a comment...

About this community

document graph NoSQL DBMS

Luca Garulli
owner

Discussione  - 
 
Hi guys,

If you use OrientDB (especially if you use it for free) and you want to give back by letting the world know how OrientDB is working for your use case, you can do this on the G2 Crowd platform. You will receive a $15 Gift Certificate on Amazon. Use this link:

https://www.g2crowd.com/contributor/orientdb-e?rewards=true

Anyone with the link qualifies for the gift card, so feel free to forward it to colleagues who also use OrientDB.

Thanks,
Luca
4
1
Roberto Franchini's profile photo
Add a comment...

Paolo p

Discussione  - 
 
New Release: #OrientDB 2.2.3 - Time to upgrade your production environments! http://bit.ly/28KpmNC #NoSQL
1
Add a comment...

Paolo p

Discussione  - 
 
#OrientDB's New MATCH Statement: Query data to uncover relationships, patterns & complex #graphDB scenarios. http://bit.ly/1YrAFh8 #NOSQL
Author: Luigi Dell’Aquila – @ldellaquila In one of my previous blog posts I wrote about how SQL can be used as a foundation for a richer query language, more powerful …
2
2
Raffaella Ventaglio's profile photoRoberto Franchini's profile photo
Add a comment...

Paolo p

Discussione  - 
 
How much do you know about #GameofThrones? Check out #GameofGraphs, powered by #OrientDB. http://bit.ly/25MboR4
2
2
Roberto Franchini's profile photoLuca Garulli's profile photo
Add a comment...

Andrey Lomakin

Discussione  - 
 
Description of OrientDB "stop the world" issue and it's fix.
1
2
Andrey Lomakin's profile photoCarlo Pradissitto's profile photo
Add a comment...

Thomas Knoell

Discussione  - 
 
When executing OClass.createIndex() from a java application, the index building may take some time based on the amount of data that needs to be processed. The server window shows the progress of the operation. Is there a way to grep that information from the java application or redirect it to the application so it may be used as a feedback to the application user?
1
Luca Garulli's profile photoThomas Knoell's profile photo
2 comments
 
remote
Add a comment...

Andrey Lomakin

Discussione  - 
1
Add a comment...

Andrey Lomakin

Discussione  - 
 
Users often treat ODatabaseDocumenTX object as long living object. Given article describes problems which may such approach may cause.
1
Add a comment...

Luca Garulli

Discussione  - 
 
 
We are looking at driver developers for OrientDB database (http://www.orientdb.com) with good knowledge of at least 2 of the following languages: PHP, Python and C# (.NET platform). The candidate will learn the missing language and will contribute in the long term to the development/support of other drivers, like Golang.
Good knowledge of TCP/IP and HTTP protocols is a big bonus. In short term perspective this developer will analyse existing community drivers, fix existing issues and implement new API together with the OrientDB core team.
Furthermore, the candidate has to stay updated with the new trending frameworks and evaluate what to support as a new connector for OrientDB.
So in nutshell we are looking for developers with the insane passion for the polyglot programming and studying of the next cool framework.
Required english level is upper intermediate.
1
Add a comment...

Luca Garulli

Discussione  - 
2
1
Nicolas Embleton's profile photodaniele montagni's profile photo
 
Beautiful!
Add a comment...