Skip to content

Graph DB Spike Learning

Randy edited this page Jun 4, 2018 · 1 revision

Graph DB Spike

Overview:

The purpose of the spike is to determine the feasibility of replacing the sql or cassandra device DAO components with a graph DAO (in this case, using OrientDB).

Tasks:

  • a branch was created tempus-elaboration-11 to hold the work
  • the latest orientdb docker image was pulled and ran for development
  • tempus.yml was configured to create orient db params
  • an orient dao annotation was created for leveraging spring autowiring
  • an orient device DAO was created with the ability to save devices to the database

Learning:

The addition of the orient db system works well with our current architecture. It can be modularly added or removed at deploy time as a valid replacement for Cassandra.

The easy clustering of Orient DB also make it a good match for storage scalability.

One challenge would be schema design as the DB would need to efficiently be able to index and cluster (an orient term) the data to support Tempus access patterns.

One large takeaway is the ease of implementation with this database. The database is well documented, supports many database access mechanisms (many language API's, REST), and is easy to develop with locally thanks to the well-built docker image + documentation + the orient db studio (a web gui making it easy to examine DB states).

Conclusion:

While this approach is feasible, the value proposition must be strong to justify the work needed to replace our existing data persistence layer for devices and asset management. That is, this is feasible, but not so naively easy that we should do it just for fun.

Clone this wiki locally