How to set Neo4j community edition as a reliable service? - neo4j

I have set up neo4j on EC2. Now I want to be able to access it from remote.
I want to it to be high-performance, for which seems I need to create cluster.
The neo4j documentation says that the clustering features are available in Neo4j Enterprise Edition.
I want to know that is there anything I can do with the community edition?

Clustering, which is good for both "high performance" (load balancing) and fault tolerance, is not supported by the community edition.
That means that with the community edition you only have a single server available to handle the load and that you have a single point of failure. That does not mean that the community edition is necessarily "low performance", however, and many people are happy with it for pretty large DBs. It all depends on what you are trying to use it for.

Related

Can I install neo4j at each users computer?

I am using neo4j as server solution but was thinking of also using it in other situations.
Is it, from a technical, installation, licensing perspective etc, possible to install neo4j at each users own computer for local storage of data?
I would like to incorporate the neo4j db installation as part of my own software installation process to avoid technical problems for the end user.
It will probably only be very small set of data in each database so performance is probably not an issue in this case.
It is not clear why you want every user to have their own local neo4j installation (since, for example, their local DBs will not contain the same data).
But, if you really wanted to, there is no problem (technically or legally) with installing the community edition of neo4j on multiple machines.
In this You Tube Video, about 30 minutes into it, "Neo4j Licensing: Which Edition Is Right For You" Rik Van Bruggen mention that one must contact neo4j if one want to distribute neo4j together with other software. One possible solution, according to the video, is an OEM agreement. One need to discuss the commercial terms.
He also says that it is not allowed to be done with the Community Edition
It also written at neo4j.com/licensing that
"I want to include Neo4j in software that I’m shipping. What are my options?
Neo4j offers a mature OEM program tailored to your needs. Learn more →"

How to set up Neo4J 3.x community edition backup without stopping the database?

I want to set up automatic online backups of Neo4J 3.x community edition. I understand that this option is available only for the enterprise editions. But is there any way I could do it for the community edition?
Do I have to stop the database and do the dumps? What if I do the dumps on the running DB?
Is there any trick I could do to back up my data?
Thanks!
Neo4J Community Edition does not allow live backup
As mentioned by #ChristopheWillemsen, that feature is available only in the Enterprise version. It is 100% impossible to do backups without bringing the database down in Community.
More information is available at the online operations manual page for backing up, as well as the notation that this is an Enterprise-only feature (note the "Enterprise Edition" tag in the chapter heading).
https://neo4j.com/docs/operations-manual/current/backup/
You need Neo4j Enterprise Edition for that. Neo4j Enterprise is actually open source as well, why not just use Neo4j Enterprise under the open source license. You won't get production support - then again you don't get that with community anyway.

Neo4j Community vs Enterpise Edition in query processing

I'm asking about differences between both edition of Neo4j: Community and Enterprise if it's any feature which speed up queries like graph traversing in Enterpise Edition?
I'm wondering because while comparing execution query times between Neo4j Community and MySQL, MySQL gave better results, link to discusion:
Neo4j slower than MySQL in performing recursive query
Thanks in advance for any suggestions!
Neo4j enterprise has currently a few features that make it faster in querying (e.g. a more scalable page-cache and a better lock-manager).
For Neo4j 3.2 a faster Cypher runtime will be available in Neo4j enterprise.
I put also some more feedback / questions into the linked discussion.

Azure Could Computing high availoability vs NEO4J high availability?

We are planning to use Azure Storage in a virtual Environment. Azure already offers very high availability, load balancing and replication of data around the world. If we install NEO4j Graph (using Java embedded) in a IIS server with high availability. Do we still need to design and use the NEO4j high availability architecture?
We still need the backup option of NEO4J (enterprise license for sure) but it would be nice not to get in the business of load balancing and replication. Azure Cloud does a very good job already. Thank you!
Best,
George Moon
The short answer is probably yes.
Windows Azure provide you infrastructure that allow you to build high availability system, it won't make any system high available by magic.
As NEO4J is state-full, each node (with only one node Azure don't give you any SLA, you instance will be down) will need to share some state and the way to do it will be dependent on how NEO4J is working. So you will need to rely on NEO4J mechanism to do it.
I don't know how NEO4J is working but you won't be able to skip designing an high available architecture around NEO4J using Windows Azure infra.
Cloud may be a magic buzz word that can make things append on management level, but when we are on hard real world level Harry magic wand doesn't exist.

Why is Microsoft stack said to be costly? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Many people suggest to develop web applications in open source technologies.
And one of the reason is the cost involved in hosting and the licensing of software.
How costly can it be to build and deploy an application in asp.net mvc compared to any other open source technology?
I don't think they're talking about the time required to develop on the Microsoft stack. They're talking about the cost of:
tools (Visual Studio, Resharper);
operating systems (Windows Vista, Windows Server); and
databases (SQL Server 2005/2008).
And yes you could use Mono + Linux but that's a feature-incomplete implementation (at this point) and presents greater risk than the Microsoft-certified solution. Plus MonoDevelop isn't as good as Visual Studio. I think Mono is still fairly limited as a production option.
Microsoft has a program for startups (called BizSpark) that can effectively eliminate those costs for startups (less than $1m annual revenue iirc) but get beyond that and it can get real expensive. Based on some of Jeff's comments I have to wonder if Stackoverflow is deliberately staying below this level (by only accepting a certain amount of ad placements) to avoid this. Note: he hasn't said that. That's just a question that occurred to me.
But compare that to say a PHP or Java development stack:
Dev machine: Windows, Linux (free), Mac or whatever;
MySQL (Free) running on Linux;
Apache or nginx (both free);
etc.
That being said, the concept of using really cheap boxes, while popular, isn't universally better. You'll use a lot more power that way (compared to higher spec servers). And higher spec severs will tend to work out cheaper in commercial licensing costs than buying software for lots of cheap boxes. So you have to be careful in comparing commercial vs non-commercial solutions.
Take a look at Scaling Up vs. Scaling Out: Hidden Costs.
I don't want to get into the issue of the cost of development because there are too many factors to make any unqualified statements. Like any other stack, there are probably things it's good at and things it could be better at.
All the discussions here about cost assume that you're going to buy your own server (which is pretty much crazy for 99% of the world). Third-party hosting services are generally pretty cheap, and it doesn't matter whether you go for Microsoft or Linux or whatever. Let the hosting service deal with all that crap, and go with the stack that is easiest for you to use.
Unless you qualify for BizSpark or maybe the Empower program, you will need to buy licenses for Windows Server, SQL Server, Visual Studio, Windows 7 (or Vista, XP). For a startup that can be cost prohibitive.
That depends entirely on which Microsoft products you license for your project. For example, SQL Server 2008 Enterprise alone costs $24,000. If you can get by with the Express addition, however, it is free.
http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx
Then you need the OS (again several choices) and development tools (yet again more options at different prices).
Summary: If you are building a small app it is not very expensive. There are free versions of most parts of the stack except the OS. And if you are using a hosted solution, the OS cost is even hidden. If you are going large and doing it all yourself, it can be extremely expensive.
On a totally different side of the spectrum, check out the prices at GoDaddy.com for shared hosting (and there are probably other hosts as well). On the 7-buck-a-month plan you get ASP.NET v1.0/2.0/3.0/3.5 and two MS SQL databases. Serious devs will say, "who would use shared hosting?" but seriously, put some hosting up there and hit it hard. You will see that the response times are nice, app deployment is easy (but you do not get full control, so you have to use medium-trust security and other stuff), and you get 1,500 GB of monthly transfer and 150 GB of disk space.
So that's the full MS stack for $7 a month. Of course, everything is shared (even the MSSql instances), but for MANY apps it is a perfect solution. Shared hosting is a joke in certain cases, but colocated servers and all that stuff is a joke for many startups that have no particularly interesting technology needs.
For basic web apps they're strictly talking about Windows itself. Linux is free, so hosting is cheaper for Linux-based hosting than for Windows-based hosting. However, the entire Microsoft stack beyond the initial Windows license is completely free, so long as you stick with the "Express" flavors of all parts. SQL Server 2008 Express is more akin to a straight mySQL deployment than SQL Server 2008 Standard Edition is.
Download: MS Web Platform (free tools)
For enterprise applications, they're talking about the enterprise-class toolsets. SQL Server 2008 Standard or Enterprise edition costs thousands of dollars. Visual Studio 2008 Pro costs hundreds. However, if you're comparing to Linux, you really don't need any of that; anyone who needs that stuff is already working with the Microsoft stack at a heavy level anyway. The Express stack will get most people very far.
I don't know Microsoft's specific licensing policies (I can assume they are pretty reasonable), but I can tell you that developer tools are often more pricey than you'd imagine when you start licensing for your company.
Often when you start buying developer licenses for teams of, say, 20-50 you are starting to talk about millions of dollars up front costs. $100,000 per developer wouldn't be unheard of (not counting the often mandatory annual support fees which can double that number easily).
I wouldn't think this would happen with Microsoft because Microsoft developers are such a wide market, but I wouldn't be surprised if specific MS developer licenses for all your assorted tools--database, MSDN subscription, enterprise servers (which will probably be required by the database or something), ... got to be rather pricey once you started multiplying them by 20 - 50 seats.
If you want to use ASP.NET you need
IIS
A server with Windows (for IIS)
Visual Studio
A work station with Windows for Visual Studio
If you want to use PHP, Perl, Mono, Ruby... you need
A web server that supports the technology wanted. May be Apache, IIS...
An OS that supports your weberver
A workstation with any Linux, Window or mac
So if you chose to use an Open technology, you have the choice to work with what you want.
If you want to use .NET you have to work with Windows.

Resources