Why relationships are cool but "join" sucksLuca Garulli
Relational DBMS and Document Databases use the "JOIN" operation to connect records and documents. Is there a better way to connect things? This presentation illustrates how OrientDB manages relationships by using the same technique of Graph Databases for super fast traversal.
Switching from the Relational to the Graph modelLuca Garulli
One of the main resistences of RDBMS users to pass to a NoSQL product are related to the complexity of the model: Ok, NoSQL products are super for BigData and BigScale but what about the model?
Why relationships are cool but "join" sucksLuca Garulli
Relational DBMS and Document Databases use the "JOIN" operation to connect records and documents. Is there a better way to connect things? This presentation illustrates how OrientDB manages relationships by using the same technique of Graph Databases for super fast traversal.
Switching from the Relational to the Graph modelLuca Garulli
One of the main resistences of RDBMS users to pass to a NoSQL product are related to the complexity of the model: Ok, NoSQL products are super for BigData and BigScale but what about the model?
210 - Software Population Pyramids: The Current and the Future of OSS Develop...ESEM 2014
Context: Since human power is an essential resource, the number of contributors in a software development community is one of the health indicators of an open source software (OSS) project. For maintaining and increasing the populations in software development communities, both attract- ing new contributors and retaining existing contributors are important. Goal: Our goal is understanding the current status of projects’ population, especially the different experienced contributors’ composition of the projects. Method: We propose software population pyramids, a graphical illustration of the distribution of various experience groups in a software development community. Results: From the study with OSS projects in GitHub, we found that the shapes of software population pyramids varies depending on the current status of OSS development communities. Conclusions: This paper present a software population pyramid of the distribution of various experience groups in a software community population. Our results can be considered as predictors of the near future of a project.
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
Think of provisioning information on real-life objects or straw through Cloud data like persons, related contacts, documents and other stuff. This allows you to build rich applications containing information you normally process in a 2D world like your browsers. By extending it to a 3D world, you are able to process the data in a completely different way. Think of creating teams of people within your organization and group them based on specialties, getting a more clear inside view of your site structure in SharePoint or have a 3D model of the Microsoft Graph entities related objects
Are you working with an existing codebase? Do you want to use the cool libraries, tools or methodology you saw at this conference? This talk will show you how to combine legacy code with bleeding edge technology.
Often the use of new technology and protocols is limited by fear of change in existing applications. Yet, as developers, we want to remain relevant and have fun with all the disruptive changes in our industry.
This talk will drill-down from a high-level architectural view to the actual implementation of modern, strangling services in a legacy monolith, using DDD to define bounded contexts, in a safe and controlled manner.
DIGITAL DISRUPTION: an open platform for digital economy between creative inn...SpagoWorld
This presentation supported the speech entitled "Digital disruption: an open platform to face the digital economy between creative innovation and concreteness" by Gabriele Ruffatti, founder of the SpagoWorld initiative. The speech took place on May 11th, 2013 at ALMA Graduate School at the University of Bologna, within the Business Administration master's program of the Information Systems class. www.spagoworld.org
fOSSa 2013 - Building innovation momentum, getting things started from nexus ...SpagoWorld
The presentation supported the speech by Gabriele Ruffatti (founder of the SpagoWorld initiative and OW2 President) at fOSSa 2013 (Lille, France - November 20th-22nd, 2013), during the track entitled "In massive data we trust, it's good for you". www.spagoworld.org
Open source from disruption to innovation - Can we measure and evaluate the o...SpagoWorld
This presentation supported the speech delivered by Gabriele Ruffatti, founder of the SpagoWorld initiative and founder and OW2 President (www.ow2.org), at OSS 2013 - the International Conference on Open Source Systems (Koper, Slovenia, 25th-28th June 2013).
The first part of the presentation focuses on open source, innovation and next challenges in the context of the "nexus of events".
The second part provides various examples of how Spago4Q (www.spago4q.org) - SpagoBI analytic for quality - supports a quality assurance and trustworthiness program. It includes a preview of the speech to be delivered at IT Confidence 2013 in Rio de Janeiro (Brazil), presenting how Spago4Q is being used as the key tool inside a complete Application Lifecycle Management process. Spago4Q allows the evaluation of corporate performances through a 3D model integrating data coming from three dimensions of analysis: Technical, Economical and Social.
Blockchain Developer Geography 2023 by Electric CapitalMariaShen2
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
More & more organisations are adopting open source principles in order to build software. They recognise that open source projects are a productive & successful way of delivering high quality code that solves complex business problems. These organisations allow their developers to share their work without boundaries, require code reviews to be focussed & open to everyone in the company, encourage documentation to be added to the same code repository & implement rigorous automation to test and deploy their code. By adopting these principles they increase productivity & build better software that is shipped earlier and more often.
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Stefan Richter
There are almost no good books about JavaScript. But you can be sure: This is the language of the future. We build a large HTML5 client. On the server-side we are using Clojure (a lisp on the JVM). On the client-side we are using JavaScript with Google Closure Library. Here we show some of our insights.
This is a presentation I gave at the last HackFwd Build Event. HackFwd is a european pre-seed Investment company focusing on programmers only. A video of the talk will follow in November 2010.
Crypto Developer Locations 2023 by Electric CapitalMariaShen2
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster1508 A/S
Join us for the eagerly anticipated Volume 2 of our Morgenbooster, where we delve deeper into the rapidly evolving landscape of AI in design. This session promises to be an exploratory journey through the latest advancements within AI.
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
Many complex applications scale up by using several different databases, i.e. selecting the best DBMS for each use case. This tends to complicate modern architecture with many products by different vendors, no standards, and a lot of ETL which ultimately causes unpredictable results and a lot of headaches. Multi-Model DBMSs were created to make your life easier, giving you the option of using one NoSQL product with powerful multi-purpose engines capable of handling complex domains. Could one DBMS handle all your needs including speed and scalability in the times of Big Data? Luca will walk you through the benefits and trade-offs of multi-model DBMSs and will show you how easy it is to setup one open source database to handle many different use cases, saving you time and money.
Presented at Data Day Texas - Austin (TX) - USA
More Related Content
Similar to Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova cura: Graph Database
210 - Software Population Pyramids: The Current and the Future of OSS Develop...ESEM 2014
Context: Since human power is an essential resource, the number of contributors in a software development community is one of the health indicators of an open source software (OSS) project. For maintaining and increasing the populations in software development communities, both attract- ing new contributors and retaining existing contributors are important. Goal: Our goal is understanding the current status of projects’ population, especially the different experienced contributors’ composition of the projects. Method: We propose software population pyramids, a graphical illustration of the distribution of various experience groups in a software development community. Results: From the study with OSS projects in GitHub, we found that the shapes of software population pyramids varies depending on the current status of OSS development communities. Conclusions: This paper present a software population pyramid of the distribution of various experience groups in a software community population. Our results can be considered as predictors of the near future of a project.
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
Think of provisioning information on real-life objects or straw through Cloud data like persons, related contacts, documents and other stuff. This allows you to build rich applications containing information you normally process in a 2D world like your browsers. By extending it to a 3D world, you are able to process the data in a completely different way. Think of creating teams of people within your organization and group them based on specialties, getting a more clear inside view of your site structure in SharePoint or have a 3D model of the Microsoft Graph entities related objects
Are you working with an existing codebase? Do you want to use the cool libraries, tools or methodology you saw at this conference? This talk will show you how to combine legacy code with bleeding edge technology.
Often the use of new technology and protocols is limited by fear of change in existing applications. Yet, as developers, we want to remain relevant and have fun with all the disruptive changes in our industry.
This talk will drill-down from a high-level architectural view to the actual implementation of modern, strangling services in a legacy monolith, using DDD to define bounded contexts, in a safe and controlled manner.
DIGITAL DISRUPTION: an open platform for digital economy between creative inn...SpagoWorld
This presentation supported the speech entitled "Digital disruption: an open platform to face the digital economy between creative innovation and concreteness" by Gabriele Ruffatti, founder of the SpagoWorld initiative. The speech took place on May 11th, 2013 at ALMA Graduate School at the University of Bologna, within the Business Administration master's program of the Information Systems class. www.spagoworld.org
fOSSa 2013 - Building innovation momentum, getting things started from nexus ...SpagoWorld
The presentation supported the speech by Gabriele Ruffatti (founder of the SpagoWorld initiative and OW2 President) at fOSSa 2013 (Lille, France - November 20th-22nd, 2013), during the track entitled "In massive data we trust, it's good for you". www.spagoworld.org
Open source from disruption to innovation - Can we measure and evaluate the o...SpagoWorld
This presentation supported the speech delivered by Gabriele Ruffatti, founder of the SpagoWorld initiative and founder and OW2 President (www.ow2.org), at OSS 2013 - the International Conference on Open Source Systems (Koper, Slovenia, 25th-28th June 2013).
The first part of the presentation focuses on open source, innovation and next challenges in the context of the "nexus of events".
The second part provides various examples of how Spago4Q (www.spago4q.org) - SpagoBI analytic for quality - supports a quality assurance and trustworthiness program. It includes a preview of the speech to be delivered at IT Confidence 2013 in Rio de Janeiro (Brazil), presenting how Spago4Q is being used as the key tool inside a complete Application Lifecycle Management process. Spago4Q allows the evaluation of corporate performances through a 3D model integrating data coming from three dimensions of analysis: Technical, Economical and Social.
Blockchain Developer Geography 2023 by Electric CapitalMariaShen2
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
More & more organisations are adopting open source principles in order to build software. They recognise that open source projects are a productive & successful way of delivering high quality code that solves complex business problems. These organisations allow their developers to share their work without boundaries, require code reviews to be focussed & open to everyone in the company, encourage documentation to be added to the same code repository & implement rigorous automation to test and deploy their code. By adopting these principles they increase productivity & build better software that is shipped earlier and more often.
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Stefan Richter
There are almost no good books about JavaScript. But you can be sure: This is the language of the future. We build a large HTML5 client. On the server-side we are using Clojure (a lisp on the JVM). On the client-side we are using JavaScript with Google Closure Library. Here we show some of our insights.
This is a presentation I gave at the last HackFwd Build Event. HackFwd is a european pre-seed Investment company focusing on programmers only. A video of the talk will follow in November 2010.
Crypto Developer Locations 2023 by Electric CapitalMariaShen2
Executive Summary: The U.S. is losing its lead in blockchain developers
- Over 23,343 open source software engineers are responsible for a market worth over $1 trillion currently.
- The U.S. has lost market share to emerging markets such as India and Ukraine.
- The U.S. is losing 2 percent market share per year for the last five years and is now down to 29% market share. This threatens US preeminence in finance and
technology.
- If current growth rates continue, we anticipate 1 million new open source software engineering jobs in blockchain created by 2030. There are likely 3 million new non-technical roles that will also be created by 2030. U.S. losing developer mindshare early means it may be difficult to recapture mindshare as the blockchain sector grows.
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster1508 A/S
Join us for the eagerly anticipated Volume 2 of our Morgenbooster, where we delve deeper into the rapidly evolving landscape of AI in design. This session promises to be an exploratory journey through the latest advancements within AI.
Similar to Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova cura: Graph Database (20)
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
Many complex applications scale up by using several different databases, i.e. selecting the best DBMS for each use case. This tends to complicate modern architecture with many products by different vendors, no standards, and a lot of ETL which ultimately causes unpredictable results and a lot of headaches. Multi-Model DBMSs were created to make your life easier, giving you the option of using one NoSQL product with powerful multi-purpose engines capable of handling complex domains. Could one DBMS handle all your needs including speed and scalability in the times of Big Data? Luca will walk you through the benefits and trade-offs of multi-model DBMSs and will show you how easy it is to setup one open source database to handle many different use cases, saving you time and money.
Presented at Data Day Texas - Austin (TX) - USA
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
The Art of the Pitch: WordPress Relationships and Sales
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova cura: Graph Database
1. Soffri di patologie da
"domini complessi con tante
relazioni"?
C'è una nuova cura:
Graph Database
Luca Garulli –
Founder and CEO
@Orient Technologies Ltd
Author of OrientDB
(c) Luca Garulli
www.twitter.com/lgarulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 1
www.orientechnologies.com
2. 1979
First Relational DBMS available as product
2009
NoSQL movement
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 2
3. 1979
First Relational DBMS available as product
Hey, 30 years in the
IT field is so huge!
2009
NoSQL movement
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 3
4. Before 2009 teams of developers
always fought to select:
Operative System
Programming Language
Middleware (App-Servers)
What about the Database?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 4
5. One of the main resistances of
RDBMS users to pass to a NoSQL product
are related to the
complexity of the model:
Ok, NoSQL products are super for
BigData and BigScale
but...
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 5
6. ...what about the model?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 6
7. What is the NoSQL answer
about managing complex domains?
Key-Value stores ?
Column-Based ?
Document database ?
Graph database !
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 7
8. CAUTION!
This presentation will not use a
social like domain with
the classic paradigm of
friend-of-friendN
where the graph databases
are already widely used...
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 8
9. ...But rather we will explore how
to think «graphically» with one of the
most common domains in the
enterprise world:
The old-classic CRM* domain
* today in 99% of the cases a RDBMS is used
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 9
10. Every developer knows
the Relational Model,
but who knows the
Graph one?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 10
11. Back to school:
Graph Theory crash course
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 11
12. Basic Graph
Luca
Luca
(c) Luca Garulli
Likes
NoSQL
NoSQL
Day
Day
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 12
13. Property Graph Model*
Vertices are
directed
Luca
Luca
Likes
name: Luca
name: Luca
surname: Garulli
surname: Garulli
company: Orient Tech
company: Orient Tech
since: 2013
NoSQL
NoSQL
Day
Day
date: Nov 15° 2013
date: Nov 15° 2013
Vertices and Edges
can have properties
* https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Model
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 13
16. Compliments, this is your diploma in
«Graph Theory»
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 16
17. Now go back
to our domain:
the CRM
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 17
18. Domain: the super minimal CRM
Customer
Customer
Address
Address
Registry system
Order system
Order
Order
(c) Luca Garulli
Stock
Stock
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 18
19. Domain: the super minimal CRM
Customer
Customer
Address
Address
How does
Relational DBMS
manage relationships?
Registry system
Order system
Order
Order
(c) Luca Garulli
Stock
Stock
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 19
20. Relational World: 1-1 Relationships
Primary key
Primary key
Customer
Id
Name
Address
Address
10 Luca
34
11 Jill
Foreign key
Id
Location
34
Rome
44
44
London
34 John
54
54
Moscow
56 Mark
66
66
New Mexico
88 Steve
68
68
Palo Alto
JOIN Customer.Address -> Address.Id
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 20
21. Relational World: 1-N Relationships
Customer
Id
Address
Name
Id
Customer
Location
10 Luca
24
10
Rome
11 Jill
33
10
London
34 John
44
34
Moscow
56 Mark
66
56
Cologne
88 Steve
68
88
Palo Alto
Inverse JOIN Address.Customer -> Customer.Id
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 21
22. Relational World: N-M Relationships
Customer
Id
Name
CustomerAddress
Id
Address
Address
Id
Location
10
Luca
10
24
24
Rome
11
Jill
10
33
33
London
34
John
34
44
44
Moscow
56
Mark
66
Cologne
88
Steve
68
Palo Alto
Additional table with 2 JOINs
(1) CustomerAddress.Id -> Customer.Id and
(2) CustomerAddress.Address -> Address.Id
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 22
23. What’s wrong with the
Relational Model?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 23
24. The JOIN is the evil!
Customer
Id
CustomerAddress
Name
Id
Address
Address
Id
Location
10
Luca
10
24
24
Rome
11
Jill
10
33
33
London
34
John
34
24
44
Moscow
56
Mark
66
Cologne
88
Steve
68
Palo Alto
These are all JOINs executed
everytime you traverse a
relationship!
relationship
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 24
25. A JOIN means searching for a key in
another table
The first rule to improve performance
is indexing all the keys
Index speeds up searches, but slows down
insert, updates and deletes
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 25
26. So in the best case a JOIN is a lookup
into an index
This is done per single join!
If you traverse hundreds of relationships
you’re executing hundreds of JOINs
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 26
27. Index Lookup
is it really that fast?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 27
28. Index Lookup: how does it works?
A-Z
A-L
M-Z
Think to an
Address Book
where we have to find
the Luca’s phone
number
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 28
29. Index Lookup: how does it works?
A-Z
A-L
M-Z
A-L
A-D
M-Z
E-L
M-R
S-Z
Index algorithms are all
similar and based on
balanced trees
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 29
30. Index Lookup: how does it works?
A-Z
A-L
M-Z
A-L
A-D
M-Z
E-L
M-R
A-D
A-B
(c) Luca Garulli
S-Z
E-L
C-D
E-G
H-L
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 30
31. Index Lookup: how does it works?
A-Z
A-L
M-Z
A-L
A-D
M-Z
E-L
M-R
A-D
A-B
E-L
C-D
E-G
H-L
E-G
E-F
(c) Luca Garulli
S-Z
H-L
G
H-J
K-L
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 31
32. Index Lookup: how does it works?
A-Z
A-L
M-Z
A-L
A-D
M-Z
E-L
A-D
A-B
Found!
M-R
S-Z
This lookup took 5
steps and grows
up with the index
size!
E-L
C-D
E-G
H-L
E-G
E-F
H-L
G
H-J
K-L
Luca
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 32
33. An index lookup is executed
for each JOIN
Querying more tables can easily
produce millions of JOINs/Lookups!
Here the rule: more entries
= more lookup steps = slower JOIN
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 33
34. Oh! This is why
performance of my database
drops down when
it becomes bigger,
and bigger,
and bigger!
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 34
35. Is there a better way to
manage relationships?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 35
36. “A graph database is any
storage system
that provides
index-free adjacency”
- Marko Rodriguez
(author of TinkerPop Blueprints)
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 36
37. How does GraphDB manage
index-free relationships?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 37
38. an Open Source (Apache licensed)
document-graph NoSQL dbms
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 38
39. Let’s go back
to the Graph Stuff
How does OrientDB
manage relationships?
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 39
40. OrientDB: traverse a relationship
The Record ID (RID)
is the physical position
RID = #13:35
RID = #13:35
RID = #13:100
RID = #13:100
Luca
Luca
Rome
Rome
label : :‘Customer’
label ‘Customer’
name : :‘Luca’
name ‘Luca’
(c) Luca Garulli
label = ‘Address’
label = ‘Address’
name = ‘Rome’
name = ‘Rome’
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 40
41. OrientDB: traverse a relationship
The Edge’s RID is saved
inside both vertices, as
«out» and «in»
RID = #13:35
RID = #13:35
RID = #13:100
RID = #13:100
RID = #14:54
RID = #14:54
Luca
Luca
out ::[#14:54]
out [#14:54]
label : :‘Customer’
label ‘Customer’
name : :‘Luca’
name ‘Luca’
(c) Luca Garulli
Lives
out: [#13:35]
out: [#13:35]
in: [#13:100]
in: [#13:100]
Label : :‘Lives’
Label ‘Lives’
Rome
Rome
in: [#14:54]
in: [#14:54]
label = ‘Address’
label = ‘Address’
name = ‘Rome’
name = ‘Rome’
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 41
42. OrientDB: traverse a relationship
RID = #13:35
RID = #13:35
RID = #13:100
RID = #13:100
RID = #14:54
RID = #14:54
Luca
Luca
out ::[#14:54]
out [#14:54]
label : :‘Customer’
label ‘Customer’
name : :‘Luca’
name ‘Luca’
(c) Luca Garulli
Lives
out: [#13:35]
out: [#13:35]
in: [#13:100]
in: [#13:100]
Label : :‘Lives’
Label ‘Lives’
Rome
Rome
in: [#14:54]
in: [#14:54]
label = ‘Address’
label = ‘Address’
name = ‘Rome’
name = ‘Rome’
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 42
43. OrientDB: traverse a relationship
RID = #13:35
RID = #13:35
RID = #13:100
RID = #13:100
RID = #14:54
RID = #14:54
Luca
Luca
out ::[#14:54]
out [#14:54]
label : :‘Customer’
label ‘Customer’
name : :‘Luca’
name ‘Luca’
(c) Luca Garulli
Lives
out: [#13:35]
out: [#13:35]
in: [#13:100]
in: [#13:100]
Label : :‘Lives’
Label ‘Lives’
Rome
Rome
in: [#14:54]
in: [#14:54]
label = ‘Address’
label = ‘Address’
name = ‘Rome’
name = ‘Rome’
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 43
44. GraphDB handles relationships as a
physical LINK to the record
assigned when the edge is created
on the other side
RDBMS computes the
relationship every time you query a database
Is not that crazy?!
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 44
45. This means jumping from a
O(log N) algorithm to a near O(1)
traversing cost is not more affected
by database size!
This is huge in the BigData age
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 45
46. OrientDB in the Blueprints micro-benchmark,
on common hw, with a hot cache,
traverses 29,6 Millions
of records in less than 5 seconds
about 6 Millions of nodes traversed per sec!
Do not try this at home
with a RDBMS*!
*unless you live in the Google’s server farm
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 46
47. Create the graph in SQL
$luca> cd bin
$luca> ./console.sh
OrientDB console v.1.3.0-SNAPSHOT (www.orientdb.org)
Type 'help' to display all the commands supported.
orientdb> create vertex Customer set name = ‘Luca’
Created vertex #13:35 in 0.03 secs
orientdb> create vertex Address set name = ‘Rome’
Created vertex #13:100 in 0.02 secs
orientdb> create edge Lives from #13:35 to #13:100
Created edge #14:54 in 0.02 secs
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 47
49. Query the graph in SQL
orientdb> select in(‘Lives’) from Address where name = ‘Rome’
---+------+---------|--------------------+--------------------+--------+
#| RID |@class |label |out_Lives |in |
---+------+---------+--------------------+--------------------+--------+
0| 13:35|Customer |Luca |[#14:54] | |
---+------+---------+--------------------+--------------------+--------+
1 item(s) found. Query executed in 0.007 sec(s).
Incoming vertices
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 49
50. More on query power
orientdb> select sum( out(‘Order’).total ) from Customer
where name = ‘Luca’
orientdb> traverse both(‘Friend’)
from Customer while $depth <= 7
orientdb> select from (
traverse both(‘Friend’)
from Customer while $depth <= 7
) where @class=‘Customer’ and city.name = ‘Udine’
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 50
51. Query vs traversal
Once you’ve a well connected database
in the form of a Super Graph you can
cross records instead of query them!
All you need is some root vertices
where to start traversing
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 51
53. Temporal based graph
Calendar
Calendar
Year
Year
2013
2013
Month
Month
April 2013
April 2013
Day
Day
9/4/2013
9/4/2013
Hour
Hour
9/4/2013
9/4/2013
09:00
09:00
Order
Order
2332
2332
(c) Luca Garulli
Hour
Hour
9/4/2013
9/4/2013
10:00
10:00
Order
Order
2333
2333
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Order
Order
2334
2334
Page 53
55. Mix & Merge graphs
Region
Region
Lazio
Lazio
Country
Country
Italy
Italy
State
State
RM
RM
City
City
Rome
Rome
City
City
Fiumicino
Fiumicino
Location
Location
Order
Order
2332
2332
Order
Order
2333
2333
Order
Order
2334
2334
Calendar
Calendar
Year
Year
2013
2013
(c) Luca Garulli
Hour
Hour
9/4/2013
9/4/2013
09:00
09:00
Month
Month
April 2013
April 2013
Hour
Hour
9/4/2013
9/4/2013
10:00
10:00
Day
Day
9/4/2013
9/4/2013
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 55
56. This is your database
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 56
57. Get last customer bought ‘Barolo’
select last(out(‘Order’).in(‘Customer)) from Stock
where name = ‘Barolo’
#34:22
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 57
58. Get his’s country
select out(‘City’) from #34:22
Udine, Italy
#55:12
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 58
59. Get orders from that country
select in(‘Customer’) from #55:12
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 59
60. Let’s move like a
Spider
on the web
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 60
61. Subscribe using the
code “nosqlday”
to get 20% for all
NoSQLDay attendees!
(c) Luca Garulli
Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License
Page 61