wake-up-neo.net

Graph-Datenbanken - Wetten das Unternehmen darauf?

Wenn ich mir Neo4j und das 32-Milliarden-Limit anschaue, bin ich besorgt (stellen Sie sich 40 Millionen Benutzer vor, die 500 Fotos hochladen, 500 Freunde haben, 500 Kommentare abgeben usw. und bevor Sie wissen, dass Sie die 32-Milliarden-Marke überschritten haben) Ich muss sicherstellen, dass ich die beste Wahl für die zu verwendende Datenbank treffe.

Nicht auf der Suche nach subjektiven Antworten oder Debatten hier - dh. welches ist besser etc - eher, da ich die Zukunft eines Startups darauf wette, welche Grafikdatenbank verwendet wird , muss ich die Risiken kennen, die die verschiedenen Datenbanken aufweisen, z. B. dass Neo4j nicht mehr als 32 Milliarden Beziehungen hat.

Nun haben einige Unternehmen ihre Graphendatenbanken die "führende Graphendatenbank" genannt. Aber lassen Sie uns über den Hype hinausblicken - welche hat die größte finanzielle Unterstützung? Welche db genießt eine große Community-Unterstützung? Welches Unternehmen hat eine solide Firma hinter sich, die kommerzielle Unterstützung bietet?

Welches ist höchstwahrscheinlich ausgereift genug, sodass Sie mit minimalem Aufwand ganz einfach Facebook erstellen können?

Es ist einfach, eine Diagrammdatenbank für technische Merkmale oder Vertrautheit auszuwählen - aber ich suche mehr als das - ich möchte sicherstellen, dass es noch ein paar Jahre von der Firma gibt. Ich möchte sichergehen, dass ich mich nicht für Neo4j entscheide, basierend auf dem Hype und dem Momentum, das es derzeit (vorübergehend?) Hat ...

Und welche anderen Grafiken können mit Neo4gj konkurrieren, um ein vollwertiges soziales Netzwerk zu erstellen, das Facebook ähnelt (wieder nicht auf der Suche nach einem besseren, nur auf der Suche nach einem soliden Konkurrenten).

Bitte lass dies nicht zu einer subjektiven Debatte zwischen Neo und Dex werden - nur Fakten und solide Antworten bitte.

34

Michael hat mich bis zum Schlag geschlagen, aber lassen Sie mich noch hinzufügen, indem Sie für Neo4j antworten und andere über andere Technologien antworten lassen. 

Der Link unten enthält eine Reihe von Fakten zum Status der Neo4j-Community, zur Produktakzeptanz und zum Unternehmen hinter dem Produkt:

http://blog.neo4j.org/2013/01/2012-year-in-review-happy-2013-it-looks.html

Der nachfolgende Link verweist auf die diesjährige Roadmap, die unter anderem die derzeitige Größengrenze aufhebt. Das Limit ist einfach eine Raum-Leistungs-Optimierung, die zurückgewählt wurde, als das Preis-Leistungs-Verhältnis etwas anders war. Wir werden dieses Jahr die Arbeit erledigen, um einige Zeigergrößen zu vergrößern, und eine Version ohne praktische Obergrenze in den nächsten Monaten veröffentlichen: 

http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html

Es gibt Produktionsinstallationen mit der Hälfte des sozialen Diagramms von Facebook in einem Neo4j-Cluster auf der Rückseite hochaktiver Websites. Der einzige überregionale Amazon-Datenbankcluster, den ich kenne (für jedes Datenbankverwaltungssystem), ist einer, der auf Neo4j ausgeführt wird: 10 Instanzen, die sich zwischen den USA, Asien und Europa erstrecken. Einer der weltweit größten Paketzustelldienste führt das gesamte Paketrouting mit Neo4j durch und routet zu Spitzenzeiten 2000+ Pakete pro Sekunde. Entscheidungen werden in Echtzeit buchstäblich getroffen, wenn Pakete eine Rutsche hinuntergleiten. Sie sind im letzten Herbst live gegangen und Weihnachten konnte für Millionen Menschen vorkommen. Viel mehr. Dies ist eine Auswahl.

Willkommen in der fantastischen Welt der Grafiken! Für welche Lösung Sie sich auch entscheiden, wir sind froh, Sie als Teil der Graphdatenbank-Community zu haben.

Philip

10
Philip Rathle

Haftungsausschluss: Ich arbeite für/mit Neo4j

Ich spreche hier nur von der Reife (nicht von technischen Details) - Neo Technology als Unternehmen mit mehr als 50 Angestellte, 25 Millionen US-Dollar-Finanzierung und einer florierenden Anwenderbasis mit einer halben Million Downloads, jeweils 30.000 neue Datenbanken) Monat und eine aktive Community wird nicht gelöscht. Sie können auch das SO questions ) überprüfen, um die Community-Aktivität anzuzeigen.

Wir haben eine gesunde Menge von Kunden in vielen Domänen von großen Domänen wie Adobe (führt Creative Cloud auf Neo4j aus), Cisco (Org-Management, MDM), sozialen Netzwerken wie Viadeo und vielen Unternehmen für die Jobsuche (GlassDoor und andere) ) für Startups wie fünfzig, die die beliebte App "Paper" auf iOS veröffentlicht haben. 

Unsere Community-Site neo4j.org sollte ein guter Ort sein, um loszulegen. Dort finden Sie Einführungsinhalt sowie Informationen zu Programmiersprachen , Treiber und Bereitstellungen das sollte Ihnen helfen, loszulegen.

Emil, Ian und Jim haben mit O'Reilly ein Einführungsbuch über "Graphdatenbanken" geschrieben, das derzeit als kostenloser E-Book-Download .

Sie sehen also, wir kümmern uns nicht nur um unser eigenes Produkt, sondern auch um das größere Graph-Ökosystem, auch mit vielen Konferenzgesprächen , Meetup-Gruppen (41 weltweit)) und Unterstützung des Open Source-Ökosystems.

Hoffe das hilft dir bei der Entscheidung.

P.S. Zu Ihren Bedenken: Die Größenbeschränkungen (die ohnehin künstlich sind) werden in diesem Jahr erhöht

17
Michael Hunger

Also habe ich das letzte Jahr mit Graphdatenbanken getestet und gearbeitet. Ich denke, nur Sie kennen Ihre Daten gut genug, um eine fundierte Vermutung darüber anstellen zu können, ob Sie Knoten haben werden, die mehr als 32 Milliarden Beziehungen benötigen. Ich würde behaupten, dass es für die meisten Menschen nicht viele Anwendungsfälle gibt, bei denen dies eine Einschränkung ist. Das ist aber nicht absolut.

Neo4j ist ein brillantes Produkt. Gut dokumentiert und mit Leuten wie Maxdemarzi, die hervorragende Blogbeiträge schreiben - wie: http://maxdemarzi.com/ -, die jeden schnell auf die Leistungsfähigkeit und Raffinesse von neo4j bringen werden. (Außerdem ist er ein netter Kerl, der Ihre Fragen beantworten wird, wenn Sie sie haben.)

Wenn es sich bei der Skala um ein Problem handelt, würde ich Ihnen auch empfehlen, einen Blick auf Titan - http://thinkaurelius.github.com/titan/ zu werfen. Die Jungs dahinter sind brillant und es ist für den Massstab gedacht. Es ist nicht so auf dem Markt etabliert wie neo4j, hat aber eine Menge Leistung und gibt Ihnen einige Flexibilität bei den Prioritäten, indem Sie zwischen Cassandra, Hbase und BerkeleyDB für zugrunde liegende Speicher wählen können.

Neo4j ist ein gut finanziertes Unternehmen mit guten Einnahmen. Es geht nirgendwo hin. Titan ist kleiner, aber ich denke, er befindet sich in einer schnellen Aufwärtskurve.

Die Wahrheit ist, dass dies alles ein neuer Raum ist. Sie erhalten nicht so etwas wie Postgres, MySql oder die Unternehmensstärke von Oracle. Machen wir uns nichts vor.

Die Community der Graphdatenbanken ist jedoch relativ klein, freundlich und hilfreich. Es laufen großartige Events - ich war auf der GraphCon-Veranstaltung von Neo4j, die großartig war, und ich war bei einigen Gesprächen der Titan-Jungs, die großartig waren. Wenn Sie jedoch Facebook werden möchten, müssen Sie Ihre eigene Infrastruktur aufbauen. Es gibt eine Skalierung und dann gibt es die Notwendigkeit, eigene Datenzentren zu haben, die die Größe der kleinen Länder haben.

Ein letzter Gedanke. Das Problem von 40 Millionen Benutzern und die zugrunde liegenden Infrastrukturherausforderungen sind für ein gut etabliertes, gut finanziertes Unternehmen ein Problem. Sie erhalten keine 40 Millionen Benutzer und ziehen weder die Finanzierung an, noch generieren Sie die Einnahmen, die für den Aufbau Ihrer eigenen Infrastruktur erforderlich sind. Sie können jetzt planen, wann Sie 40 Millionen Benutzer sind, absolut. Tue es. Das macht den Spaß am Anfang eines Startups. Aber Ihr größeres Problem besteht darin, Ihre erste Million oder sogar zehn Millionen zu erreichen. Für jeden Einsatz dieser Datenbanken können Sie mit einem soliden Produkt am schnellsten vermarkten.

14
Richard Jordan

Mein Rat ist, Ihre Anwendung auf Standard-APIs wie Blueprints zu bauen. Auf der Hauptseite für Blaupausen werden verschiedene verfügbare Implementierungen aufgeführt. Auf diese Weise sind Sie nicht eingesperrt und können die beste Implementierung basierend auf Ihren Anforderungen (Größe, Geschwindigkeit, Preis) und dem Marktzustand zu diesem Zeitpunkt auswählen.

10

Wir arbeiten mit Neo4j seit 2010 zusammen und setzen nicht nur unser Unternehmen darauf, sondern haben auch viel Zeit in ein Open Source-Projekt investiert ( http://www.ohloh.net/p/structr ). Es gibt einen Blogpost vom Februar 2012, in dem Sie die Details lesen können: 

http://structr.org/blog/the-story-behind-structr

Zugegebenermaßen ist unser Unternehmen recht klein. Aber wir haben ungefähr ein Dutzend Projekte mit Neo4j abgeschlossen und sind mit dem Ergebnis wirklich zufrieden.

Die Community hinter Neo4j ist lebendig, offen und immer sehr unterstützend. Sie sollten zu einem der Meetup-Events gehen, um sich ein Bild zu machen. :-)

Wie Richard gesagt hat, stehen die finanziellen Fakten außer Frage. Was ich am beeindruckendsten finde, ist, dass die Leute bei Neo Technology, obwohl sie ein kommerzielles Unternehmen sind, das Einnahmen erzielen muss, wirklich Enthusiasten sind, die wissen und lieben, was sie tun, und sich dem Open Source-Modell wirklich verpflichtet fühlen.

Also ja, ich bin voreingenommen, aber nicht ohne Grund. :-)

6
Axel Morgner

Um die großartigen Antworten hinzuzufügen, müssen Sie auch eine Lizenzierung in Betracht ziehen. Wenn Ihr Projekt vollständig Open Source ist und die GPLv3-Anforderungen erfüllt, ist neo4j ein guter Weg. Wenn Sie es jedoch in einem proprietären System verwenden, müssen Sie eine neo4j-Unternehmenslizenz erwerben oder eine andere Datenbank mit weniger Lizenzbeschränkungen (MIT- oder Apache 2-Lizenzen) wie Titan verwenden.

Dies ist eine großartige Ressource, um Lizenzen zu überprüfen: http://en.wikipedia.org/wiki/Graph_database

1
David Stevens

Nach was Sie gefragt haben und worauf Sie sich konzentrieren sollten, sind zwei verschiedene Dinge. 

Obwohl das Folgende Ihre Frage nicht beantwortet, hoffe ich, dass es Ihnen und anderen Entwicklern hilft zu überlegen, was hier wirklich auf dem Spiel steht:

  • Anforderungen und Ziele sind nicht immer klar - und das ist in Ordnung. Die Dinge ändern sich und Ihr Produkt sollte in der Lage sein, mit diesen Änderungen zu rollen. Das ist die Natur von Start-ups. Daher empfehle ich: sich auf das Produkt zu konzentrieren, nicht auf die Implementierung . Mit anderen Worten, bauen Sie auf eine Abstraktion einer Datenbankimplementierung (z. B. Blueprint - die Neo4j implementiert) und nicht auf eine tatsächliche Implementierung auf, sodass Sie nicht eingesperrt werden oder durch Lizenzprobleme auf der ganzen Linie aufgehalten werden. Sie können die Datenbankimplementierungen bei Bedarf problemlos wechseln. Sie erhalten in Zukunft ein klareres Bild über die Richtigkeit Ihrer ursprünglichen Entscheidung. Seien Sie vor allem bereit, wenn Sie es ändern möchten.
0
BKSpurgeon