Is anyone already implementing such a service?
1,168 karma · joined April 30, 2013
Is anyone already implementing such a service?
No use of AWS specifics which would make developers live easier but doesn’t exist in Azure. SQL Standard instead of effective new datatypes or procedures that are vendor specific.
My favorite quote of the article:
> „Data has gravity“. Moving data can be both time-consuming and costly.
This is a major lock-in that is often ignored.
If you need to scale-out, the ArangoDB packages are more affordable then MongoDB Atlas, as you don't need to spin-up a whole 3 node replica-set to add another shard to your cluster. The smaller instances are cheaper in Atlas, here you benefit from the established cloud service, which can negotiate better conditions with the large cloud providers. However, we will pass on lower cloud costs to customers, so there is hope that we will move closer over time. But, I don't see ArangoDB in direct competition with smaller, pure document-use cases. Most users need the multi-model capabilities and use graphs in combination with document operations.
A lot of users don't care and are used to these tactics. Is there a chance that this will change in the future? I hope so.
More and more products support multiple data models today.
This reduces the number of technologies in your tech stack and allows to combine different access patterns without the need to duplicate and sync data between systems.
CSS is not a programming language. ;-)
Despite that, the list is quite complete and feels reasonable. Did you try to research how languages are used in certain use cases? Which languages compete in a certain domain?
You get 1000+ results.
So you filter by avg.star-rating > 4.0
Still 500+ results.
Those with just one 5 star rating in front of the one with 300 reviews and a 4.8 avg. Annoying.
What I really want:
I would like to filter for products that have at least 5 (relatively long) reviews, an average rating of 4.0 and at least 2 of these review comments mentioning the use case for which I would like to use this product. Maybe I just want the verified purchases to be counted or the reviews of friends and friends of friends...
Using a native multi-model approach you can do both. Simply retrieve all category X products ranked by product rating, limit 50/page or perform advanced lookups - without having to synchronize data from a document or relational model with an additional graph or search engine.
Combining full text search with scorers, graph traversals and/or join operations you could do an ad-hoc query in AQL to get the most relevant products & reviews with a single query.
Multi-model provides choice. In data modeling and querying.
You might want to but you are forced to provide a one star rating instead. :)
Unfortunately, there is no independent organization that believes in this and defines scenarios that are tested in different environments.
They do, just recently the cases of AskBlue (Location aware recommendations) and Thomson Reuters (Fast & Secure Single-View of Everything)
https://www.arangodb.com/why-arangodb/case-studies/
I am very interested in Graph-Cases and appreciate the support of Neo4J for projects like the Panama- or Paradise Papers that show how connected graphs help to understand former hidden relationships. Graphs are very powerful and a great addition to relational or document approaches.
(full disclosure: I worked for ArangoDB 2 years ago.) And, I've used Neo successfully for a fraud detection PoC recently...
And some NoSQL databases speak SQL as well - without being relational.
I like the JSON support in PostgreSQL a lot. Very easy to deal with unstructured JSON data while still using common attributes in a relational format. But there are more cases that one might think about - as a relational guy - that benefit from graph databases, document stores or optimized time-series databases.
It would be so fantastic if he could just start HIS apps and would access a restricted Prime account. My 6 yo is the same and since he was 2 1/2 I switched by iPhone twice. So I don't see the case that it's not important as they will get their own ones when they are 8 or so - that's 5 generations of iPhones.
It is hard to imagine growing up in a totally isolated country and not knowing anything about the outside world.
https://github.com/sindresorhus/awesome is a good starting point.
Great to have exports and png support as well. Bookmarked.
Reading through the release notes and related blog posts lead to several wow's and nods.
Especially the satellite collection feature that allows local joins in cluster mode sounds promising. Can't wait to learn from successful real world implementations.
Hope to find some time to get used to all those new features announced today.
What I have missed in this paper is the impact of customer reviews (a 4.5 ranking has a higher uplift potential than a 5.0 star ranking - according to some studies). And the number of reviews has impact as well. Not enough studies around for a meta analysis?
> However, people may sometimes have “context-based rationality”… If you are clearly and emotionally on one side of an issue, I don’t think we will convince you otherwise.
So true.
Do I have to deploy a new ArangoDB 3.1 and generate some test data myself or is there a demo available for a first impression?
Great move and necessary to compete in the fast growing market of data-center automation. I hope that DC/OS gets as much attention in the open-source community as Kubernetes already does.
A database that you can use as a JSON document store or a graph database - or even both data models combined - within a single query.
Why it's awesome?
I can use one technology for so many different use cases, I'm not limited to one data model and can use a single query language that supports graph traversals and document JOINS.
It's designed to support modern microservice architectures and orchestration - e.g. via Mesosphere DCOS.
Index-free adjacency is an implementation detail - with drawbacks:
If you store the vertices at each node as list of direct pointers, then traversing all neighbors has complexity O(k), if a vertex has k edges. Note that this is the best possible complexity because O(k) is the size of the answer. Deleting a single edge also has the same complexity of O(k) (assuming a doubly linked list), which is much worse.
Furthermore, usually one will want to be able to traverse edges in both directions, which makes it necessary to store direct pointers on both vertices that are incident with an edge. A consequence of this is that deleting a supernode is even worse: To remove all incident edges one has to visit every adjacent vertex – and perform a potentially expensive removal operation for each of them.
In general, a graph database is “a database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data” (Wikipedia) – independent of the way the data is stored internally.
Quoting Donald Knuth / The Art of Computer Programming:
> “Many random number generators in use today are not very good. There is a tendency for people to avoid learning anything about such subroutines; quite often we find that some old method that is comparatively unsatisfactory has blindly been passed down from one programmer to another, and today’s users have no understanding of its limitations.”
* Senior Software Developer C/C++
* Java Developer JEE, SpringData
ArangoDB, Cologne/Germany is seeking experienced software developers to join our database development team. ArangoDB is a multi-purpose, open-source database with flexible data models for documents, graphs, and key-values.
https://www.arangodb.com/jobs/
Contact: jobs@arangodb.com