Tuesday, 30 April 2013

XDGBench: 3rd party benchmark results against graph databases

London, April 30th 2013

Tokyo Institute of Technology and IBM Research published an interesting research about a benchmark between Graph Databases in the Clouds called:

"XGDBench: A Benchmarking Platform for Graph Stores in Exascale Clouds"

This research conducts a performance evaluation of four famous graph data stores AllegroGraph, Fuseki, Neo4j, an OrientDB using XGDBench on Tsubame 2.0 HPC cloud environment. XGDBench is an extension of famous Yahoo! Cloud Serving Benchmark (YCSB).

OrientDB is the faster Graph Database among the 4 products tested. In particular OrientDB is about 10x faster (!) than Neo4j in all the tests.

Look at the Presentation (25 slides) and Research PDF.

Monday, 29 April 2013

New "Orient Technologies" Division

London, April 29th 2013

NuvolaBase ltd moved all the activities related to OrientDB product to the new "Orient Technologies" division: www.orientechnologies.com. In this way NuvolaBase company will be focused on the Cloud Database only (powered by OrientDB) while Orient Technologies will offer training, support, consulting and commercial products.

Orient Technologies web site


NuvolaBase Team

Thursday, 4 April 2013

OrientDB: new GraphDB Engine in beta

London, April 4th 2013

After about one month spent on development and test the NuvolaBase team has released the new GraphDB Engine!

The new Engine uses some novel techniques based on the idea of a dynamic Graph that change shape at run-time based on the settings and content. The new Engine is much faster than before and needs less space in memory and disk. Below the main improvements:

  1. avoid creation of edges as document if haven't properties. With Graphs wit no properties on edges this can save more than 50% of space on disk and therefore memory with more chances to have a big part of database in cache. Furthermore this speed up traversal too because requires one record load less. As soon as the first property is set the edge is converted transparently
  2. Vertex "in" and "out" fields aren't defined in the schema anymore because can be of different types and change at run-time adapting to the content:
    1. no connection = null (no space taken)
    2. 1 connection = store as LINK (few bytes)
    3. >1 connections = use the Set of LINKS (using the MVRBTreeRIDSet class)
  3. binding of Blueprints "label" concept to OrientDB sub-classes. If you create an edge with label "friend", then the edge sub-type "friend" will be used (created by the engine transparently). This means:
    1. 1 field less in document (the field "label") and therefore less space and the ability to use the technique 1 (see above)
    2. edges are stored on different files at file system level because are used different clusters
    3. better partitioning against multiple disks (and in the future more parallelism)
    4. direct queries like "select from friend" rather than "select from E" and then filtering the result-set looking for the edge with the wanted label property
  4. multiple properties for edges of different labels. Not anymore a "in" and "out" in Vertex but "out_friend" to store all the outgoing edges of class "friend". This means faster traversal of edges giving one or multiple labels avoiding to scan the entire Set of edges to find the right one
  5. with such dynamic Graph in future we could support also HyperGraph in a flash

Such new Engine needed new API or a radical change to the current Raw API breaking the compatibility with the past. Well, we decided to change strategy by re-implementing the Blueprints Graph layer as new GraphDB Engine. So the new GraphDB Engine IS the OrientDB's Blueprints implementation.

Why? Mainly because:
  1. Blueprints is the de facto standard for Graph Databases made by TinkerPop team
  2. TinkerPop team is amazing with a lot of technologies built on top of Blueprints layer
  3. Latest release of Blueprints added some new features to allow the implementations to use the underlying engine in more powerful way
  4. Blueprints API and all the TinkerPop stack is very well documented with a lot of examples and a new Book that is coming
The new GraphDB engine depends on OrientDB 1.4.0-SNAPSHOT, so we can't push it to TinkerPop repository because no SNAPSHOT are allowed as dependencies. As soon as we release OrientDB 1.4 we're going to merge it with official TinkerPop Blueprint's repository.

Starting from OrientDB 1.4 the GraphDB API to use are the Blueprints. Period. I'm sure this will make happy some users because Raw API are horrible and you've to work at document level using the OGraphDatabase class for any operations against vertices and edges (not really Object Oriented).

Waiting for the official release you can enjoy by cloning and start using the new GraphDB Engine from the master branch of NuvolaBase's Blueprints fork: https://github.com/nuvolabase/blueprints. It passes all the Blueprints Test Cases.

To open databases created with previous releases uses:

OrientGraph graph = new OrientGraph("local:/temp/mydb");
graph.setUseLightweightEdges(false);
graph.setUseVertexFieldsForEdgeLabels(false);
graph.setUseCustomClassesForEdges(false);

In the next days will be released a new tool to convert the databases to the new format.


Luca Garulli
CEO at NuvolaBase.com
the Company behind OrientDB
Follow me on http://twitter.com/lgarulli

Friday, 4 January 2013

NuvolaBase Cloud - Support platform

Today the NuvolaBase Team released the Issue Tracker to manage support requestes as issues, bugs and feedbacks.

The tool is fully integrated with the dashboard and share the same login. To enter in the issue tracker click on the new "support" menu to create a new request or checking the status of your issues.




Your opinion is important, so let us know any ideas.

Wednesday, 2 January 2013

What's next in 2013?

London, January 2nd 2013.


Together in 2012 we did great things like:
  • 7 (seven!) official releases: 1.0rc8, 1.0rc9, 1.0, 1.0.1, 1.1, 1.2 and latest 1.3!
  • so many bugs fixed
  • a lot of new features
  • the switch from Google Code -> GitHub
  • received much more contributions than 2011
  • we've more contributors that help us
So what's next?

OrientDB is an Open Source project licensed with Apache 2 license. This means that is FREE for any purpose. This is great for users, but less for who is working everyday to OrientDB. The project is much bigger than 3 years ago and the management of the community, the development of the product, test and release needs more resources than in the past.

Furthermore companies asking us a professional support for production system, courses, etc. Not all the companies can have OrientDB skilled people those can put the hands on the code, so for most of the cases the professional support is needed. We all believe in the Open Source model and we work to OrientDB for passion, but doesn't matter how much a NoSQL product is good if there is no professional support.

This is the main reason why we created NuvolaBase company: to offer a professional support against OrientDB. If you've a company or you're a consultant why don't join us as certified OrientDB developer/DBA? Or why don't join us as a Partner? This will help us to support better users and customers offering a wider range of countries where to find OrientDB experts.

Another thing companies asked us are Enterprise tools. When you've multiple OrientDB servers up and running it could be hard to manage them all together. So we designed OrientDB Enterprise Edition as a professional Open Source project. It's based on OrientDB but will have Enterprise features like a visual web cockpit to monitor the OrientDB Servers, manage the cluster and collecting metrics to help users to tune OrientDB in simple way. This product will be released on February and it will have a price. Clients could access to the sources in a private repository (someone call this model as "Professional Open-Source").

Since the release of the first OrientDB Enterprise Edition the Professional Support will be provided ONLY against official OrientDB Enterprise versions. If you subscribed a Support contract don't worry: you will receive the OrientDB Enterprise for FREE.

Why offering support only against official OrientDB Enterprise Editions? Mainly because for us it's easier to work against stable releases than helping users with snapshots or self-patched versions.

Are you worried about OrientDB will be a Commercial product?

Don't worry, such commercial features are only for Companies that want such kind of features/services. The new "OrientDB Community" edition (the current one) will always be FREE licensed with Apache license.

The new year is begun and the OrientDB team is returning to work at 100% to the next v1.4 and v2.0 with your contribution.

Happy new year,
NuvolaBase staff

Saturday, 22 December 2012

Released OrientDB 1.3 with new SQL functions and better performance


London, November, 21st 2012

NuvolaBase is glad to announce this new release 1.3 and the new Web Site of OrientDB: http://www.orientdb.org!

Sorry for the delay about this official email, but we did extra work after the switch from Google Code to GitHub. Thank you to all the contributors helped us in this migration, specially Adrian Madrid for the adapted WiKi pages. In the next days we're going to improve the documentation by involving all the authors of Drivers to contribute with a short tutorial and a quick reference for the usage of the driver.


What's new with 1.3?
  • SQL: new eval() function to execute expressions
  • SQL: new if() and ifnull() functions
  • SQL: supported server-side configuration for functions
  • SQL: new DELETE VERTEX and DELETE EDGE commands
  • SQL: execution of database functions from SQL commands
  • SQL: new create cluster command
  • Graph: bundled 2 algorithms: Dijkstra and ShortestPath between vertices
  • Performance: improved opening time when a connections is reused from pool
  • Performance: better management of indexes in ORDER BY
  • Schema: new API to handle custom fields
  • HTTP/REST: new support for fetch-plan and limit in "command"
  • Moved from Google Code to GitHub: https://github.com/nuvolabase/orientdb
  • Many bugs fixed


Issues
To report an issue please follow the suggestions posted in the group, in particular attach the following information:
  • OrientDB version. Please don't forget this! If it's a SNAPSHOT please tell if it's from SVN (revision number) or from MAVEN
  • Operative System
  • 32-bit or 64-bit
  • JVM version
  • RAM
  • Dump of configuration and profiler

Professional Services
All the professional services are provided by NuvolaBase.com Ltd.
Partnership
We built a new Partnership Agreement for companies interested to sell NuvolaBase or OrientDB services as "reseller" or "services partner". Please contact info@nuvolabase.com to have more information about it.

Roadmap
The roadmap has been updated -> https://github.com/nuvolabase/orientdb/issues/milestones. The next release will be the 1.4 planned for January 2013 and then the long awaited 2.0 with the new distributed architecture with auto-sharding and parallel queries.

Thanks to all the committers, the contributors and final users.

NuvolaBase Dashboard - How to change DB password

NuvolaBase hosted OrientDB personal databases come with 3 default users called "admin", "reader" and "writer".
The default password when you create a new database is "admin".
 
With the new dashboard it's now possible, and it's recommended, to change your personal database account's password.
It's very easy, let me see you how to do that.

Once logged into the dashboard:


click on the button named "Database info" on the database name you want to modify.

Then fill the text field named "Set DB password" with a secure passphrase and click on the "save" button.

The password will be strongly hashed for security and then saved into your database. Anything will be saved elsewhere, so your password will remain absolutely secret. Even us at NuvolaBase cannot determine which password you choose (it's the same for your dashboard account password).

Click on the "Studio" button to access your personal database with your new account password. Chose "admin" as username.

You can now access your private OrientDB instance in the cloud.
Enjoy!