The Assimilation Monitoring Project is a highly scalable discovery-driven monitoring system. It integrates continuous discovery of servers, services, service dependencies, switch connections, and lots of other things into the monitoring process. The discovery is "stealthy" and will never set off any network security alarms. Adding servers doesn't measurably increase monitoring load, and the system is expected to easily scale into the 100K server range. The discovery work is distributed among all the nanoprobes (agents), which run scripts that spit out JSON. The central system (CMA) stores these strings and runs optional plugins to create graph nodes.
Bitsy is a small, fast, embeddable, durable in-memory graph database that implements the Blueprints API. It is an ACID database that recovers cleanly from power failures and crashes. Designed for multi-threaded OLTP applications, Bitsy implements optimistic concurrency control and stores data in human-readable JSON-encoded text files. Common management tasks such as online backups can be done over JMX. The speed and simplicity of Bitsy relies on three design principles: No Seek, No Socket, NoSQL.
HyperGraphDB is a general purpose, extensible, portable, distributed, embeddable data storage mechanism. Designed specifically for artificial intelligence and semantic web projects, it can also be used as an embedded object-oriented database for projects of all sizes. It is a Java-based product built on top of the Berkeley DB storage library. It can be used as a single in-process database bound to a location on the local disk or within a "cloud" of networked database instances communicating and sharing data in a P2P (peer-to-peer) fashion. Key features include storage of generalized hypergraphs, an open, extensible type system, basic query system and graph traversal algorithms, out-of-the-box support for Java object storage, thread-safe transactions, and a P2P framework for data distribution.
Neo4j is a graph database, a fully transactional database that stores data structured as graphs. A graph is a flexible data structure that allows for a more agile and rapid style of development. You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables, yet enjoys all the benefits of a fully transactional, enterprise-strength database. The community edition is GPLv3 licensed, while the advanced and enterprise editions are AGPLv3 licensed.
OrientDB is a NoSQL DBMS which can store 150,000 documents per second on common hardware. Even with a document-based database, the relationships are managed as in graph databases, with direct connections among records. You can traverse entire or parts of trees and graphs of records in a few milliseconds. It supports schema-less, schema-full, and schema-mixed modes, has a strong security profiling system based on users and roles, and supports SQL between the query languages. Thanks to the SQL layer, it's straightforward to use for people skilled in the relational world.
Pixy is a declarative graph query language that works on any Blueprints-compatible graph database. The Blueprints API provides a common interface to over a dozen graph databases, including Neo4J, Titan, Infinite Graph, OrientDB, DEX, and Bitsy. Pixy enables complex pattern matching and logic programming on graph databases by translating PROLOG-style rules and goals to Gremlin pipelines that represent graph traversal operations. Queries in Pixy can also be seemlessly integrated into Gremlin expressions. The combination of Pixy and Gremlin gives the programmer the full power of two graph querying paradigms, viz. graph pattern matching and graph traversal.
WhiteDB is a fast, lightweight graph/N-tuples shared memory database library with a focus on speed, portability, and ease of use. There is no server process. Data is read and written directly from/to shared memory. No sockets are used between WhiteDB and the application program. It supports indexes (T-tree), persistence through logging and memory dumps, concurrency through locking, limited queries (conjunctive only), JSON, CSV and RDF support, Python bindings, command line utility tools, and JSON REST tools.