SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
[Anti]Patterns with NoSQL
         Luca Bonmassar
NoSQL vs. SQL
            NOSQL DAY ’11
NoSQL / NoAgenda

No specific NoSQL technologies (document, key/value, ...)
No specific NoSQL db features (sharding, replication, ...)
No specific ...
...


                                           NOSQL DAY ’11
Does it solve my problem?
                    NOSQL DAY ’11
Does it solve my problem?




                    NOSQL DAY ’11
Does it solve my problem?


But what is your problem?




                            NOSQL DAY ’11
Does it solve my problem?


But what is your problem?
NoSQL fragmentation (like NoCloud, NoJava,
NoMicrosoft, ...)



                                        NOSQL DAY ’11
[Anti]Patterns
The “dynamic” website

Data mapping

The Alien

The binary Alien

The SQLQueue

Overnormalized

Unpredictable tomorrow
                         NOSQL DAY ’11
Who am I?

Passionate about
technology
Favorite topics: Cloud,
Virtualization, NoSQL
Gamification fan! (or fun?)

                             NOSQL DAY ’11
The “dynamic” website
The “dynamic” website




                   NOSQL DAY ’11
The “dynamic” website

I have a website




                   NOSQL DAY ’11
The “dynamic” website

I have a website
Dynamic contents everywhere




                              NOSQL DAY ’11
The “dynamic” website

I have a website
Dynamic contents everywhere
High DB load


                              NOSQL DAY ’11
The “dynamic” website




                   NOSQL DAY ’11
The “dynamic” website




                   NOSQL DAY ’11
The “dynamic” website
               SELECT username                                                                                    SELECT COUNT(###) WHERE ...
              FROM users WHERE
                sessionid = ###
                                                           SELECT username
                                                          FROM users WHERE
                                                            sessionid = ###
SELECT COUNT("submissions"."puzzle_id")
FROM "submissions" WHERE (puzzle_id IS
  NOT NULL) AND (user_id IS NOT NULL)                                         SELECT COUNT(###) WHERE ...     SELECT COUNT(###) WHERE ...
         GROUP BY puzzle_id ...




         SELECT users.*, count(distinct puzzle_id) FROM
         submissions JOIN users on submissions.user_id                                                                SELECT * FROM submissions
          = users.id where submissions.current_state =                                                                        WHERE ...
                                                                                SELECT avatar.* FROM users
                         "succeeded" ...                                                WHERE ...




                                                                                                             NOSQL DAY ’11
The “dynamic” website
               SELECT username                                                                                    SELECT COUNT(###) WHERE ...
              FROM users WHERE
                sessionid = ###
                                                           SELECT username
                                                          FROM users WHERE
                                                            sessionid = ###
SELECT COUNT("submissions"."puzzle_id")
FROM "submissions" WHERE (puzzle_id IS
  NOT NULL) AND (user_id IS NOT NULL)                                         SELECT COUNT(###) WHERE ...     SELECT COUNT(###) WHERE ...
         GROUP BY puzzle_id ...




         SELECT users.*, count(distinct puzzle_id) FROM
         submissions JOIN users on submissions.user_id                                                                SELECT * FROM submissions
          = users.id where submissions.current_state =                                                                        WHERE ...
                                                                                SELECT avatar.* FROM users
                         "succeeded" ...                                                WHERE ...




                                                                                                             NOSQL DAY ’11
The “dynamic” website




                   NOSQL DAY ’11
The “dynamic” website
               SELECT username                                                                                    SELECT COUNT(###) WHERE ...
              FROM users WHERE
                sessionid = ###
                                                           SELECT username
                                                          FROM users WHERE
                                                            sessionid = ###
SELECT COUNT("submissions"."puzzle_id")
FROM "submissions" WHERE (puzzle_id IS
  NOT NULL) AND (user_id IS NOT NULL)                                         SELECT COUNT(###) WHERE ...     SELECT COUNT(###) WHERE ...
         GROUP BY puzzle_id ...




         SELECT users.*, count(distinct puzzle_id) FROM
         submissions JOIN users on submissions.user_id                                                                SELECT * FROM submissions
          = users.id where submissions.current_state =                                                                        WHERE ...
                                                                                SELECT avatar.* FROM users
                         "succeeded" ...                                                WHERE ...




                                                                                                             NOSQL DAY ’11
The “dynamic” website

Is it that dynamic?
Are there any data
structures that fit better
than relational?


                            NOSQL DAY ’11
Cache, Cache, Cache


Use Ad-Hoc Caching (e.g. Rails Caching)
SQL Table as cache



                                          NOSQL DAY ’11
SQL Table as Cache

When you use SQL Table as
Cache, a kitten somewhere
dies
Use Memcache,
MemcacheDB, Redis


                            NOSQL DAY ’11
Better tools?
                NOSQL DAY ’11
Rethink data structures
SELECT COUNT(*) ...
SELECT COUNT(*) ...
SELECT COUNT(*) ...


submitted++
passed++
failed++
                      NOSQL DAY ’11
Rethink data structures
SELECT *, count(distinct ...)
FROM submissions JOIN
users on ... where
submissions.current_state
= "succeeded" ...
List(5)
List.add / List.replace
                                NOSQL DAY ’11
Data mapping
Data mapping

An original idea: we need a newsfeed!
Users can comment on feed items
Users can reply to comments


                                        NOSQL DAY ’11
What the customer is looking for
                         NOSQL DAY ’11
What the developer is thinking about
                           NOSQL DAY ’11
But how to ...
Eureka!

The item has a feed_id and
a parent_id
You have now a navigable
SQL data structure!


                             NOSQL DAY ’11
Data mapping - alternatives

Do not try this at home! (or any office)
A document db can help
    { feed : 42, user : ‘luca.bonmassar’, data : ‘living the
   dream!’, comments : [{user : ‘jonny’ : ‘make sense!’ }] }


                                          NOSQL DAY ’11
The Alien
The Alien

A type of object stored in a relational database
No (or weak) relations with any other table
Stored in the db because the db == persistency


                                           NOSQL DAY ’11
User Settings

User preferences
user_id, data
Data as BLOB or TEXT


                       NOSQL DAY ’11
The Alien


The Alien is a key/value entity
Use a key/value storage to store it



                                      NOSQL DAY ’11
The binary Alien
The binary Alien

Like the Alien, but the payload is pure binary data
Common solution to store “small” images
Even worse: Base64 encoded binary


                                           NOSQL DAY ’11
The binary Alien

Move the binary Alien to a binary content provider
   S3 or Filesystem are good ones
Let the webserver access/serve them directly


                                          NOSQL DAY ’11
The SQLQueue
The SQLQueue

Distributed components need to exchange data
   Producers / Consumers
   Backlog of work to be completed
SQL database (== persistency) as persistent queue


                                         NOSQL DAY ’11
Mail delivery




                NOSQL DAY ’11
Mail delivery




                NOSQL DAY ’11
Mail delivery




                NOSQL DAY ’11
Mail delivery




                NOSQL DAY ’11
The SQLQueue


No “relations”, like the Alien
Simulating a Queue using AUTO_INCREMENT ids and
transactions



                                     NOSQL DAY ’11
SQLQueue

In some countries,
SQLQueue is considered a
crime against software
Use message queues
(Amazon SQS, MemcacheQ,
StormMQ, RabbitMQ, ... )

                           NOSQL DAY ’11
Overnormalized
Overnormalized




                 NOSQL DAY ’11
Overnormalized

The process of organizing data to minimize redundancy




                                        NOSQL DAY ’11
Overnormalized

The process of organizing data to minimize redundancy
A larger schema is broken into smaller ones




                                         NOSQL DAY ’11
Overnormalized

The process of organizing data to minimize redundancy
A larger schema is broken into smaller ones
   user_id, email




                                         NOSQL DAY ’11
Overnormalized

The process of organizing data to minimize redundancy
A larger schema is broken into smaller ones
   user_id, email
   user_id, phone_num


                                         NOSQL DAY ’11
Overnormalized

The process of organizing data to minimize redundancy
A larger schema is broken into smaller ones
   user_id, email
   user_id, phone_num
   user_id, badge

                                         NOSQL DAY ’11
Overnormalized

PRO:
  reduce redundancy
  less overhead
  each table scale separately


                                NOSQL DAY ’11
Overnormalized
Cons:




                 NOSQL DAY ’11
Overnormalized
Cons:




... JOIN... JOIN... JOIN... JOIN... JOIN... JOIN... JOIN...

                                               NOSQL DAY ’11
Overnormalized

Cache the normalized data
Denormalize / keep a replica of the denormalized view
Use document db or key/value storage for the replica



                                         NOSQL DAY ’11
Unpredictable tomorrow
Unpredictable tomorrow

You are now part of a new Agile(TM) project
You are Agile(TM), so:
   No complete specs
   No complete use cases


                                         NOSQL DAY ’11
How many wonderful things around me

A mobile App w/ internet backend
“Simple” use cases
   User can log in
   User can update their location
   User can get all the many wonderful things they have
   around themselves
                                         NOSQL DAY ’11
How many wonderful things around me


Data Model:
   User
   Places
Aliens!!! Aliens!!! Aliens!!!


                                NOSQL DAY ’11
...but sooner or later...
                    NOSQL DAY ’11
How many wonderful things around me

Users can send/receive friendship invitations
Users can import FB friends, Twitter followers
Users can interact with messages, pokes
Users can check-in into places
Users can share their checkins with friends
...
                                              NOSQL DAY ’11
Unpredictable tomorrow

No silver bullets
Mix technologies
   E.g. relational databases to handle relations
Migrations are painful, but always an option


                                          NOSQL DAY ’11
One more thing
Recap


Does it make sense with the relational paradigm?
Do I need a persistent storage or a relational database?



                                          NOSQL DAY ’11
Thanks! Any Questions?
                 NOSQL DAY ’11
Contacts

luca@coderloop.com
linkedin.com/in/lucabonmassar
twitter.com/lucabonmassar


joind.in/talk/view/2939

                                NOSQL DAY ’11

Más contenido relacionado

La actualidad más candente

GQL CheatSheet 1.1
GQL CheatSheet 1.1GQL CheatSheet 1.1
GQL CheatSheet 1.1
sones GmbH
 
GQL cheat sheet latest
GQL cheat sheet latestGQL cheat sheet latest
GQL cheat sheet latest
sones GmbH
 
07 association of entities
07 association of entities07 association of entities
07 association of entities
thirumuru2012
 
Sqlalchemy sqlの錬金術
Sqlalchemy  sqlの錬金術Sqlalchemy  sqlの錬金術
Sqlalchemy sqlの錬金術
Atsushi Odagiri
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
Allan Huang
 
Rails' Next Top Model
Rails' Next Top ModelRails' Next Top Model
Rails' Next Top Model
Adam Keys
 

La actualidad más candente (20)

GQL CheatSheet 1.1
GQL CheatSheet 1.1GQL CheatSheet 1.1
GQL CheatSheet 1.1
 
Command-Oriented Architecture
Command-Oriented ArchitectureCommand-Oriented Architecture
Command-Oriented Architecture
 
GQL cheat sheet latest
GQL cheat sheet latestGQL cheat sheet latest
GQL cheat sheet latest
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
07 association of entities
07 association of entities07 association of entities
07 association of entities
 
hibernate
hibernatehibernate
hibernate
 
Sqlalchemy sqlの錬金術
Sqlalchemy  sqlの錬金術Sqlalchemy  sqlの錬金術
Sqlalchemy sqlの錬金術
 
Dojo >= 1.7 Kickstart
Dojo >= 1.7  KickstartDojo >= 1.7  Kickstart
Dojo >= 1.7 Kickstart
 
Web Security - Hands-on
Web Security - Hands-onWeb Security - Hands-on
Web Security - Hands-on
 
Introduction to hibernate
Introduction to hibernateIntroduction to hibernate
Introduction to hibernate
 
Introduction to SQL Antipatterns
Introduction to SQL AntipatternsIntroduction to SQL Antipatterns
Introduction to SQL Antipatterns
 
OOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetupOOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetup
 
Mule esb – connecting to ms sql db
Mule esb – connecting to ms sql dbMule esb – connecting to ms sql db
Mule esb – connecting to ms sql db
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
 
Introduction to jOOQ
Introduction to jOOQIntroduction to jOOQ
Introduction to jOOQ
 
Advanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and MonitoringAdvanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and Monitoring
 
Functionality Focused Code Organization
Functionality Focused Code OrganizationFunctionality Focused Code Organization
Functionality Focused Code Organization
 
SOLID Ruby SOLID Rails
SOLID Ruby SOLID RailsSOLID Ruby SOLID Rails
SOLID Ruby SOLID Rails
 
Rails' Next Top Model
Rails' Next Top ModelRails' Next Top Model
Rails' Next Top Model
 
Sql alchemy bpstyle_4
Sql alchemy bpstyle_4Sql alchemy bpstyle_4
Sql alchemy bpstyle_4
 

Destacado

MongoDB Performance Tuning
MongoDB Performance TuningMongoDB Performance Tuning
MongoDB Performance Tuning
MongoDB
 

Destacado (18)

NoSQL and SQL Anti Patterns
NoSQL and SQL Anti PatternsNoSQL and SQL Anti Patterns
NoSQL and SQL Anti Patterns
 
NoSQL vs SQL (by Dmitriy Beseda, JS developer and coach Binary Studio Academy)
NoSQL vs SQL (by Dmitriy Beseda, JS developer and coach Binary Studio Academy)NoSQL vs SQL (by Dmitriy Beseda, JS developer and coach Binary Studio Academy)
NoSQL vs SQL (by Dmitriy Beseda, JS developer and coach Binary Studio Academy)
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
SQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораSQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбора
 
2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach
 
Getting Release Management Right for SQL Server
Getting Release Management Right for SQL ServerGetting Release Management Right for SQL Server
Getting Release Management Right for SQL Server
 
Sql vs. NoSql
Sql vs. NoSqlSql vs. NoSql
Sql vs. NoSql
 
SQL vs. NoSQL Databases
SQL vs. NoSQL DatabasesSQL vs. NoSQL Databases
SQL vs. NoSQL Databases
 
Presto: Distributed SQL on Anything - Strata Hadoop 2017 San Jose, CA
Presto: Distributed SQL on Anything -  Strata Hadoop 2017 San Jose, CAPresto: Distributed SQL on Anything -  Strata Hadoop 2017 San Jose, CA
Presto: Distributed SQL on Anything - Strata Hadoop 2017 San Jose, CA
 
MongoDB Performance Tuning
MongoDB Performance TuningMongoDB Performance Tuning
MongoDB Performance Tuning
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Multi-model database
Multi-model databaseMulti-model database
Multi-model database
 
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document Store
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
 
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More FlexibilityNOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
 
NoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture PatternsNoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture Patterns
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Similar a Patterns / Antipatterns with NoSQL

Slides python elixir
Slides python elixirSlides python elixir
Slides python elixir
Adel Totott
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Apigee | Google Cloud
 

Similar a Patterns / Antipatterns with NoSQL (20)

Introduction to Quill
Introduction to QuillIntroduction to Quill
Introduction to Quill
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
 
JavaTalks: OOD principles
JavaTalks: OOD principlesJavaTalks: OOD principles
JavaTalks: OOD principles
 
Django Multi-DB in Anger
Django Multi-DB in AngerDjango Multi-DB in Anger
Django Multi-DB in Anger
 
Slides python elixir
Slides python elixirSlides python elixir
Slides python elixir
 
Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012
 
Linq
LinqLinq
Linq
 
Design of Remorseful
Design of RemorsefulDesign of Remorseful
Design of Remorseful
 
Automatically Assessing Code Understandability: How Far Are We?
Automatically Assessing Code Understandability: How Far Are We?Automatically Assessing Code Understandability: How Far Are We?
Automatically Assessing Code Understandability: How Far Are We?
 
Why no sql
Why no sqlWhy no sql
Why no sql
 
Play framework
Play frameworkPlay framework
Play framework
 
RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015
 
How to React Native
How to React NativeHow to React Native
How to React Native
 
Connect.js - Exploring React.Native
Connect.js - Exploring React.NativeConnect.js - Exploring React.Native
Connect.js - Exploring React.Native
 
AngularJs
AngularJsAngularJs
AngularJs
 
Java e i database: da JDBC a JPA
Java e i database: da JDBC a JPAJava e i database: da JDBC a JPA
Java e i database: da JDBC a JPA
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
 
Scaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with ScalaScaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with Scala
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Patterns / Antipatterns with NoSQL