Neo4j is a graph database. It is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables. A graph (mathematical lingo for a network) is a flexible data structure that allows 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.
Neo4j is released under a dual free software/commercial license model (which basically means that it’s “open source” but if you’re interested in using it in commercially, then you must buy a commercial license).
Neo4j has been in commercial development for 8 years and in production for over 5 years. It is a mature and robust graph database that provides:
* an intuitive graph-oriented model for data representation. Instead of static and rigid tables, rows and columns, you work with a flexible graph network consisting of nodes, relationships and properties.
* a disk-based, native storage manager completely optimized for storing graph structures for maximum performance and scalability.
* massive scalability. Neo4j can handle graphs of several billion nodes/relationships/properties on a single machine and can be sharded to scale out across multiple machines.
* a powerful traversal framework for high-speed traversals in the node space.
* a small footprint. Neo4j is a single <500k jar with one dependency (the Java Transaction API).
* a simple and convenient object-oriented API.
* optional layers to expose Neo4j as an RDF store, i.e. easily inject / extract data as RDF, express meta model semantics using OWL and query the node space using SPARQL. When it comes to scalability numbers, remember that several triples are usually mapped to a single node. (currently being developed under the umbrella of the OpenMetadir project)
RESTORE DATABASE Example. MS SQL is a pain, pain, pain.
Hint: Use e.g.
RESTORE FILELISTONLY FROM DISK='C:\MyData.bak'
to get the necessary information.
Here the command from the cited blog entry:
ALTER DATABASE MyData
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE MyData
FROM DISK = 'C\:BackupMyData.bak'
WITH MOVE 'MyData_Data' TO 'C:\Data\datafile.mdf',
MOVE 'MyData_Log' TO 'C:\Data\logfile.ldf',
REPLACE
Very interesting approach!
"Apache Empire-db is an Open Source relational data persistence component which allows database vendor independent dynamic query definition as well as safe and simple data retrieval and updating. Compared to most other solutions like e.g. Hibernate, TopLink, iBATIS or JPA implementations, Empire-db takes a considerably different approach, with a special focus on compile-time safety, reduced redundancies and improved developer productivity."
The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing, including:
* Hadoop Core, our flagship sub-project, provides a distributed filesystem (HDFS) and support for the MapReduce distributed computing framework.
* HBase builds on Hadoop Core to provide a scalable, distributed database.
* Pig is a high-level data-flow language and execution framework for parallel computation. It is built on top of Hadoop Core.
* ZooKeeper is a highly available and reliable coordination system. Distributed applications use ZooKeeper to store and mediate updates for critical shared state.
* Hive is a data warehouse infrastructure built on Hadoop Core that provides data summarization, adhoc querying and analysis of datasets.
What CouchDB is
* A document database server, accessible via a RESTful JSON API.
* Ad-hoc and schema-free with a flat address space.
* Distributed, featuring robust, incremental replication with bi-directional conflict detection and management.
* Query-able and index-able, featuring a table oriented reporting engine that uses Javascript as a query language.
What it is Not
* A relational database.
* A replacement for relational databases.
* An object-oriented database. Or more specifically, meant to function as a seamless persistence layer for an OO programming language.
Relational databases define a strict structure and provide a rigid way to maintain data for a software application. Apache's open source CouchDB offers a new method of storing data, in what is referred to as a schema-free document-oriented database model. Instead of the highly structured data storage of a relational model, CouchDB stores data in a semi-structured fashion, using a JavaScript-based view model for generating structured aggregation and report results from these semi-structured documents. CouchDB has been developed from the ground up with Web applications as the primary focus and has its sights on becoming the de-facto database for Web application development.
A library for using Memcached as a second level distributed cache in Hibernate.
* Based on the excellent spymemcached client
* Includes support for the Whalin (danga) memcached client
* Supports entity and query caching.
* See the Configuration page
* See how easy it is to configure in Grails
The project provides extensions to Hibernate to provide complete auditing capabilities. It uses a set of tables in the DB that do not depend on the object model
Das Problem …
PHP-Scripte werden nach einer bestimmten Laufzeit abgebrochen (normalerweise nach 30 Sekunden), und so funktioniert ein Backup mit diversen Tools nur bis zu einer bestimmten Größe.
Braucht das Script länger als die 30 Sekunden, so wird es vom Server einfach abgebrochen, und man kommt nicht mehr an sein Backup heran. Gleiches gilt für das Wiedereinspielen eines Backups.
Wer einmal ein Dumpfile von Hand in viele kleinere Einzelabschnitte zerlegt hat, um eine Datenbank wieder herzustellen, der weiß genau, wovon wir reden.
MySQLDumper ist die Lösung …
MySQLDumper umgeht den Timeout-Error mit Hilfe eines kleinen Tricks: Er liest nur eine bestimmte Anzahl von Datensätzen aus der Tabelle aus, merkt sich, wie weit er gekommen ist, und ruft sich anschließend selbst auf. Dadurch erhält das Script bei jedem Aufruf wieder die vollen 30 Sekunden und umgeht so den Timeout-Error. Das gleiche Prinzip benutzt MySQLDumper auch beim Wiederherstellen der Daten.
MySQLDumper kann die Daten beim Sichern sofort packen. Auch das Wiederherstellungsscript kann direkt aus dieser gepackten Datei lesen, ohne dass sie auf dem Server entpackt werden muss! Natürlich kann man die Datei auch ungepackt lassen, aber spätestens beim Hochladen eines Backups weiß man dies zu schätzen.
DbFit is a set of FIT fixtures which enables FIT/FitNesse tests to execute directly against a database. This enables developers to manipulate database objects in a relational tabular form, making database testing and management much easier then with xUnit-style tools. The library is free to use, released under GNU GPL.