NoSQL overview presentation with details on Riak and CouchDB.
Presented at Qbranch CODE Night 2010-04-15.
Thanks to @frli01 for arranging and @xlson for invitation.
Clamdigging: Leveraging ClamAV for Malware Analysis and Detectionmalwareforme
It's 2017: Weren't signature based technologies supposed to be dead by now? To the chagrin of many, signature based detection isn't an antiquated practice just yet. This presentation focuses on a signature based technology that has been around for a very long time: ClamAV, and how it can be practical / useful in today's security space. This talk will explore the current ClamAV capabilities, use cases, signatures, all with an emphasis on detecting malicious Office documents and exploits. Additionally, there will be an introduction to the open source project: 'clam-punch' which is a curated set of signatures for ClamAV to punch miscreants as well as a tool 'clamdigger' to assist analysts in creating their own signatures.
Increasingly Java is being used to build applications that come with low-latency requirements. To meet this latency requirements developers have to have a deeper understanding of the JVM and the hardware so their code works in harmony with it. Recent trends in hard performance problems suggest the biggest challenge is dealing with memory pressure. This session demonstrates the memory cost of using XML parsers such as SAX and compares that with low-latency alternatives.
During the presentation (at JavaOne) John Davies & Kirk Pepperdine demonstrated processing of complex XML messages (7.4k FpML derivative trades which converted to Java using "classic" binding created 25k trades. The demonstration then compacted the 25k trades using C24's binary codec down to under 400 bytes, they then searched for random fields at over 21 million per second on a laptop. Zero objects were created during the search demonstrating the incredible performance that can be achieved with good optimisation. More code and papers can be found at http://sdo.c24.biz
Clamdigging: Leveraging ClamAV for Malware Analysis and Detectionmalwareforme
It's 2017: Weren't signature based technologies supposed to be dead by now? To the chagrin of many, signature based detection isn't an antiquated practice just yet. This presentation focuses on a signature based technology that has been around for a very long time: ClamAV, and how it can be practical / useful in today's security space. This talk will explore the current ClamAV capabilities, use cases, signatures, all with an emphasis on detecting malicious Office documents and exploits. Additionally, there will be an introduction to the open source project: 'clam-punch' which is a curated set of signatures for ClamAV to punch miscreants as well as a tool 'clamdigger' to assist analysts in creating their own signatures.
Increasingly Java is being used to build applications that come with low-latency requirements. To meet this latency requirements developers have to have a deeper understanding of the JVM and the hardware so their code works in harmony with it. Recent trends in hard performance problems suggest the biggest challenge is dealing with memory pressure. This session demonstrates the memory cost of using XML parsers such as SAX and compares that with low-latency alternatives.
During the presentation (at JavaOne) John Davies & Kirk Pepperdine demonstrated processing of complex XML messages (7.4k FpML derivative trades which converted to Java using "classic" binding created 25k trades. The demonstration then compacted the 25k trades using C24's binary codec down to under 400 bytes, they then searched for random fields at over 21 million per second on a laptop. Zero objects were created during the search demonstrating the incredible performance that can be achieved with good optimisation. More code and papers can be found at http://sdo.c24.biz
NoSQL databases such as Redis, MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offer significantly better scalability and performance. However, using a NoSQL database means giving up the benefits of the relational model such as SQL, constraints and ACID transactions. For some applications, the solution is polyglot persistence: using SQL and NoSQL databases together.
In this talk, you will learn about the benefits and drawbacks of polyglot persistence and how to design applications that use this approach. We will explore the architecture and implementation of an example application that uses MySQL as the system of record and Redis as a very high-performance database that handles queries from the front-end. You will learn about mechanisms for maintaining consistency across the various databases.
Introduction to Ceph, an open-source, massively scalable distributed file system.
This document explains the architecture of Ceph and integration with OpenStack.
Embrace NoSQL and Eventual Consistency with RippleSean Cribbs
So, there's this "NoSQL" thing you may have heard of, and this related thing called "eventual consistency". Supposedly, they help you scale, but no one has ever explained why! Well, wonder no more! This talk will demystify NoSQL, eventual consistency, how they might help you scale, and -- most importantly -- why you should care.
We'll look closely at how Riak, a linearly-scalable, distributed and fault-tolerant NoSQL datastore, implements eventual consistency, and how you can harness it from Ruby via the slick Ripple client/ORM. When the talk is finished, you'll have the tools both to understand eventual consistency and to handle it like a pro inside your next Ruby application.
Developing polyglot applications on Cloud Foundry (#oredev 2012)Chris Richardson
Developing web applications used to be simple. Your single war-file web application served up HTML to a desktop browser and used a relational database. Today however, web applications are much more complex: the front-end uses HTML5 and NodeJS, the middle tier is decomposed into multiple services, and the back-end uses a mix of SQL and NoSQL databases. Developing these kind of applications can be challenging since there are so many moving parts that need to be correctly installed and configured. Deployment is even more difficult.
In this talk, you will learn why we need to build applications with this architectural style and how Cloud Foundry, which is modern, multi-lingual, multi-service, extensible open-source PaaS, can help. We will talk about how to develop modern applications that run on Cloud Foundry and cover what’s new and different about the cloud environment. You will learn how your application can consume the various services that are provided by Cloud Foundry. We will discuss the various ways of using Cloud Foundry including the Micro Cloud that runs on a laptop as well as the hosted CloudFoundry.com.
Basho and Riak at GOTO Stockholm: "Don't Use My Database."Basho Technologies
What are common use cases for NoSQL? When should I avoid NoSQL? When is RDBMS just fine?
This presentation, delivered at the GOTO NoSQL Roadshow events in London and Stockholm in November of 2011 by Basho co-founder and COO, Antony Falco, take a no-BS look at the tradeoffs one must make to gain the advantages offered by distributed databases like Riak.
DConf2015 - Using D for Development of Large Scale Primary StorageLiran Zvibel
The talk will discuss using D for a large scale distributed project implementing a primary storage system with strict performance and resources requirements. Will go over the pros and cons of using D and compare our experience to previous similar projects implemented in C and C++ with Python.
We are an experienced group of system programmers, implementing a large software based storage system. We have leveraged D specific features to make sure we have a very sound infrastructure to use, some of the things we did were previously either impossible or impractical using only C or C++ forcing us to use Python for code generation, on the other hand—some D aspects make it more difficult to handle than the other options. I will present what we really like, and what we’ve learned to live with.
NoSQL databases such as Redis, MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offer significantly better scalability and performance. However, using a NoSQL database means giving up the benefits of the relational model such as SQL, constraints and ACID transactions. For some applications, the solution is polyglot persistence: using SQL and NoSQL databases together.
In this talk, you will learn about the benefits and drawbacks of polyglot persistence and how to design applications that use this approach. We will explore the architecture and implementation of an example application that uses MySQL as the system of record and Redis as a very high-performance database that handles queries from the front-end. You will learn about mechanisms for maintaining consistency across the various databases.
New Ceph capabilities and Reference ArchitecturesKamesh Pemmaraju
Have you heard about Inktank Ceph and are interested to learn some tips and tricks for getting started quickly and efficiently with Ceph? Then this is the session for you!
In this two part session you learn details of:
• the very latest enhancements and capabilities delivered in Inktank Ceph Enterprise such as a new erasure coded storage back-end, support for tiering, and the introduction of user quotas.
• best practices, lessons learned and architecture considerations founded in real customer deployments of Dell and Inktank Ceph solutions that will help accelerate your Ceph deployment.
Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. There is neither concept of data tables nor data types. Records are organized in hash table, B+ tree, or fixed-length array.
NoSQL databases such as Redis, MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offer significantly better scalability and performance. However, using a NoSQL database means giving up the benefits of the relational model such as SQL, constraints and ACID transactions. For some applications, the solution is polyglot persistence: using SQL and NoSQL databases together.
In this talk, you will learn about the benefits and drawbacks of polyglot persistence and how to design applications that use this approach. We will explore the architecture and implementation of an example application that uses MySQL as the system of record and Redis as a very high-performance database that handles queries from the front-end. You will learn about mechanisms for maintaining consistency across the various databases.
Introduction to Ceph, an open-source, massively scalable distributed file system.
This document explains the architecture of Ceph and integration with OpenStack.
Embrace NoSQL and Eventual Consistency with RippleSean Cribbs
So, there's this "NoSQL" thing you may have heard of, and this related thing called "eventual consistency". Supposedly, they help you scale, but no one has ever explained why! Well, wonder no more! This talk will demystify NoSQL, eventual consistency, how they might help you scale, and -- most importantly -- why you should care.
We'll look closely at how Riak, a linearly-scalable, distributed and fault-tolerant NoSQL datastore, implements eventual consistency, and how you can harness it from Ruby via the slick Ripple client/ORM. When the talk is finished, you'll have the tools both to understand eventual consistency and to handle it like a pro inside your next Ruby application.
Developing polyglot applications on Cloud Foundry (#oredev 2012)Chris Richardson
Developing web applications used to be simple. Your single war-file web application served up HTML to a desktop browser and used a relational database. Today however, web applications are much more complex: the front-end uses HTML5 and NodeJS, the middle tier is decomposed into multiple services, and the back-end uses a mix of SQL and NoSQL databases. Developing these kind of applications can be challenging since there are so many moving parts that need to be correctly installed and configured. Deployment is even more difficult.
In this talk, you will learn why we need to build applications with this architectural style and how Cloud Foundry, which is modern, multi-lingual, multi-service, extensible open-source PaaS, can help. We will talk about how to develop modern applications that run on Cloud Foundry and cover what’s new and different about the cloud environment. You will learn how your application can consume the various services that are provided by Cloud Foundry. We will discuss the various ways of using Cloud Foundry including the Micro Cloud that runs on a laptop as well as the hosted CloudFoundry.com.
Basho and Riak at GOTO Stockholm: "Don't Use My Database."Basho Technologies
What are common use cases for NoSQL? When should I avoid NoSQL? When is RDBMS just fine?
This presentation, delivered at the GOTO NoSQL Roadshow events in London and Stockholm in November of 2011 by Basho co-founder and COO, Antony Falco, take a no-BS look at the tradeoffs one must make to gain the advantages offered by distributed databases like Riak.
DConf2015 - Using D for Development of Large Scale Primary StorageLiran Zvibel
The talk will discuss using D for a large scale distributed project implementing a primary storage system with strict performance and resources requirements. Will go over the pros and cons of using D and compare our experience to previous similar projects implemented in C and C++ with Python.
We are an experienced group of system programmers, implementing a large software based storage system. We have leveraged D specific features to make sure we have a very sound infrastructure to use, some of the things we did were previously either impossible or impractical using only C or C++ forcing us to use Python for code generation, on the other hand—some D aspects make it more difficult to handle than the other options. I will present what we really like, and what we’ve learned to live with.
NoSQL databases such as Redis, MongoDB and Cassandra are emerging as a compelling choice for many applications. They can simplify the persistence of complex data models and offer significantly better scalability and performance. However, using a NoSQL database means giving up the benefits of the relational model such as SQL, constraints and ACID transactions. For some applications, the solution is polyglot persistence: using SQL and NoSQL databases together.
In this talk, you will learn about the benefits and drawbacks of polyglot persistence and how to design applications that use this approach. We will explore the architecture and implementation of an example application that uses MySQL as the system of record and Redis as a very high-performance database that handles queries from the front-end. You will learn about mechanisms for maintaining consistency across the various databases.
New Ceph capabilities and Reference ArchitecturesKamesh Pemmaraju
Have you heard about Inktank Ceph and are interested to learn some tips and tricks for getting started quickly and efficiently with Ceph? Then this is the session for you!
In this two part session you learn details of:
• the very latest enhancements and capabilities delivered in Inktank Ceph Enterprise such as a new erasure coded storage back-end, support for tiering, and the introduction of user quotas.
• best practices, lessons learned and architecture considerations founded in real customer deployments of Dell and Inktank Ceph solutions that will help accelerate your Ceph deployment.
Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. There is neither concept of data tables nor data types. Records are organized in hash table, B+ tree, or fixed-length array.
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliSteve Maraspin
Seconda parte del seminario su NoSQL al DiTeDi di Udine del 15/12/2012. Presentata un'introduzione sulle basi di dati non relazionali e sulle implicazioni che le loro caratteristiche hanno nello sviluppo di applicazioni enterprise.
Polyglot persistence for Java developers - moving out of the relational comfo...Chris Richardson
Relational databases have long been considered the one true way to persist enterprise data. But today, NoSQL databases are emerging as a viable alternative for many applications. They can simplify the persistence of complex data models and offer significantly better scalability, and performance. But using NoSQL databases is very different than the ACID/SQL/JDBC/JPA world that we have become accustomed to. They have different and unfamiliar APIs and a very different and usually limited transaction model. In this presentation, we describe some popular NoSQL databases – Redis, MongoDB, and Cassandra. You will learn about each database’s data model and Java API. We describe the benefits and drawbacks with using NoSQL databases. Finally, you will learn how the Spring Data project simplifies the development of Java applications that use NoSQL databases.
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...buildacloud
About Basho: Basho makes and distributes Riak CS. Built on Riak, Basho's opensource, scalable datastore used by thousands in production, CS is made for companies that need large file storage that can't go down.
About the speaker: Andy Gross, Basho's Chief Architect, will take you on a tour of RiakCS, talk about how and why Basho built it, and the architecture that underpins it. He'll also highlight various uses case featuring Fortune500 companies who rely on Riak CS.
My supportive slides for a whiteboard based presentation on databases in general. Given at Rudbecks upper secondary school, in Sollentuna, Stockholm 2010-11-12.
See the Transfer website for more information: http://www.transfer.nu/omoss/transferinenglish.jspx
WebSphere Message Broker In Shared Runtime EnvironmentsMårten Gustafson
WebSphere Message Broker in shared runtime environments.
Typical environment configurations and common set-ups with regards to high availability and workload balancing.
What kind of solutions do we see implemented on top of message broker what are the demands for these solutions in terms of availability and isolation?
How do we cater for these needs in a shared runtime environment?
Also takes a look at the organization developing solutions targeting a shared runtime environment and how different organizations pose different requirements and challenges.
Presentation given at IBM Transaction & Messaging conference in Barcelon 2008.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
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.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
PHP Frameworks: I want to break free (IPC Berlin 2024)
NoSQL @ Qbranch -2010-04-15
1. Not only SQL
Mårten Gustafson
Qbranch CODE tech-meet @ 2010-04-15
2. What?
“NoSQL is a movement promoting a loosely
defined class of non-relational data stores that
break with a long history of relational
databases” - Wikipedia
3. What?
“NoSQL is a movement promoting a loosely
defined class of non-relational data stores
that break with a long history of relational
databases” - Wikipedia
Not a single technique
Not a single type of data
Not a single type of use case
5. What’s out there?
Storage type License Implemented in
Amazon Dynamo Key/Value n/a ?
Cassandra Columnfamily ASL 2.0 Java
CouchDB Document ASL 2.0 Erlang
Dynomite Key/Value BSD/MIT-style Erlang
HBase Columnfamily ASL 2.0 Java
MongoDB Document AGPL v3.0 C++
Neo4J Graph AGPL v3.0 / Comm Java
Riak Key/Value ASL 2.0 Erlang
Redis Key/Value BSD/MIT-style C
Scalaris Key/Value ASL 2.0 Erlang
Tokyo Cabinet Key/Value LGPL C
Voldemort Key/Value ASL 2.0 Java
7. Distribution
Masterless Master/Slave Hot standby
Amazon Dynamo X
Cassandra X
CouchDB X
Dynomite X
HBase ?
MongoDB X X
Neo4J*
Riak X
Redis X
Scalaris X
Tokyo Cabinet
Voldemort X
* Neo4J HA coming “soon”
8. Distribution
Masterless Master/Slave
ie
Hot standbyw
Amazon Dynamo X
d v
Cassandra X
ifie
l
CouchDB X
Dynomite X
m p
i
HBase ?
MongoDB
y s X X
Neo4J*
e r
v
Riak X
a
Redis X
is
Scalaris X
h i s
Tokyo Cabinet
Voldemort X
T * Neo4J HA coming “soon”
10. Of the web
“...Django may be built for the Web, but
CouchDB is built of the Web. I’ve never seen
software that so completely embraces the
philosophies behind HTTP. CouchDB
makes Django look old-school in the same way
that Django makes ASP look outdated”
- http://jacobian.org/writing/of-the-web/
11. Of the web
“...CouchDB may succeeded, and it may fail; who
knows. I’m sure of one thing, though — this is
what the software of the future looks like”
- http://jacobian.org/writing/of-the-web/
32. Riak “stuff”
Bucket
Container/keyspace.
Determines number of
replicas for its contents
33. Riak “stuff”
Consistent Hashing
Key hashing technique
used to distribute keys
on the ring
Bucket
Container/keyspace.
Determines number of
replicas for its contents
34. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff”
Gossiping
Consistent Hashing
Key hashing technique
used to distribute keys
on the ring
Bucket
Container/keyspace.
Determines number of
replicas for its contents
35. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff”
Gossiping
Consistent Hashing
Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Covering for a
Bucket failed “neighbor”
node while gone
Container/keyspace.
Determines number of
replicas for its contents
36. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Gossiping Links
Consistent Hashing
Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Covering for a
Bucket failed “neighbor”
node while gone
Container/keyspace.
Determines number of
replicas for its contents
37. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Gossiping Links
Consistent Hashing
Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone
Container/keyspace. efficient summary about
Determines number of objects. Gossiped.
replicas for its contents
38. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Gossiping Links
Node
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone
Container/keyspace. efficient summary about
Determines number of objects. Gossiped.
replicas for its contents
39. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
One slice (part) of the ring.
Node
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone
Container/keyspace. efficient summary about
Determines number of objects. Gossiped.
replicas for its contents
40. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
One slice (part) of the ring.
Node
Auto correction of
out-of-date objects
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Read Repair Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone
Container/keyspace. efficient summary about
Determines number of objects. Gossiped.
replicas for its contents
41. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
One slice (part) of the ring.
Node
Auto correction of
out-of-date objects
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Read Repair Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone Number of copies
Container/keyspace. efficient summary about of the same object
Determines number of
replicas for its contents
objects. Gossiped. Replica in the cluster
42. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
The complete “space”, One slice (part) of the ring.
divided into partitions which
are claimed by vnodes
Ring Node
Auto correction of
out-of-date objects
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Read Repair Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone Number of copies
Container/keyspace. efficient summary about of the same object
Determines number of
replicas for its contents
objects. Gossiped. Replica in the cluster
43. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
The complete “space”, One slice (part) of the ring.
divided into partitions which
Vector Clock
are claimed by vnodes
Conflic detection
technique for objects.
Ring Node
Auto correction of
out-of-date objects
Consistent Hashing One server. Runs
vnodes which claims
partitions.
Read Repair Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone Number of copies
Container/keyspace. efficient summary about of the same object
Determines number of
replicas for its contents
objects. Gossiped. Replica in the cluster
44. Shares state, bucket
and ring knowledge
in the cluster
Riak “stuff” Allows retrieval of
“weakly” linked objects
Partition
Gossiping Links
The complete “space”, One slice (part) of the ring.
Vnode
divided into partitions which
Vector Clock
are claimed by vnodes
Conflic detection
technique for objects.
Ring Node Runs in a node
and claims one
Auto correction of
out-of-date objects
Consistent Hashing One server. Runs
vnodes which claims
partition on the
ring
partitions.
Read Repair Key hashing technique
used to distribute keys
on the ring Hinted Handoff
Merkle Tree Covering for a
Bucket Data structure for
failed “neighbor”
node while gone Number of copies
Container/keyspace. efficient summary about of the same object
Determines number of
replicas for its contents
objects. Gossiped. Replica in the cluster
45. Riak - Takeaways
• No single point of failure
• Choose your levels for:
• availability
• consistency
• partition tolerance
46. But wait, there’s more...
• Binary data + Content-Type = whatever
• MP3’s, Images, Text, ...
• Map/Reduce
• Local data, parallel
50. World view
One document == JSON
One document == One record
Many documents == One database
Many databases == One instance
No schema
51. World view
Documents can
have attachments (binary + mime type)
be rendered differently (HTML, XML)
52. A document
Key, either you
choose it or CouchDB
does it for you
{
"_id": "b098445d587b1f347e48e1a79301de02",
"_rev": "1-80bfd8302e0f08eec2396c8107cafc19",
"platform": {
"browser": "mozilla",
"version": "1.9.1.8"
},
"timestamp": 1270131033337
Revision
} number
63. CouchDB “stuff”
Append only
Hence, won’t corrupt
its data files
64. CouchDB “stuff”
MVCC
Multi version concurrency control.
Writers do not block readers.
Readers do not block writers. Append only
Hence, won’t corrupt
its data files
65. CouchDB “stuff”
BDCRR
MVCC Bi-directional, conflict
resolving, replication
Multi version concurrency control.
Writers do not block readers.
Readers do not block writers. Append only
Hence, won’t corrupt
its data files
66. CouchDB “stuff”
BDCRR
MVCC Bi-directional, conflict
resolving, replication
Multi version concurrency control.
Writers do not block readers.
Readers do not block writers. Append only
Compaction Hence, won’t corrupt
its data files
Append only will cause data files to
grow. Compaction to the rescue, in
the background - for your pleasure.
67. CouchDB “stuff”
BDCRR
MVCC Bi-directional, conflict
resolving, replication
Multi version concurrency control.
Writers do not block readers.
Readers do not block writers. Append only
Compaction Hence, won’t corrupt
its data files
Append only will cause data files to
grow. Compaction to the rescue, in ACID
the background - for your pleasure. Awesome, Cool,
Impressive, Dope
68. CouchDB - Takeaways
• Kick ass replication
• Views are fast
• Can host and serve complete webapps
69. Outro
• Test one or more NoSQL thingys
• Get familiar with Brewers CAP theorem
• Get familiar with the Dynamo paper
70. Over and out.
Mårten Gustafson
@martengustafson
http://marten.gustafson.pp.se/
marten.gustafson@gmail.com
Editor's Notes
* Relational not always most suitable model
* Schema-less gives freedom
* Non-relational gives interesting scalability capabilities (which most provides)
* Most provides REST/JSON API
** Very suitable for web dev’t
** Easy peasy to use, regardless of environment
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
* Hinted handoff
collation - assembling in proper numerical or logical sequence