When you use MongoDB for the first time, the biggest risk is to apply the same patterns and designs used in the SQL world, in this way you miss the real change that SQL MongoDB requires: change the way of thinking.
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDBJesse Wolgamott
Lone Star Ruby Conference 2010... by Jesse Wolgamott
Dive into the target audiences and differences in NoSQL storage, how to implement them and what this NoSQL thing is all about.
Discuss how SQL has limits when you get to web-scale and how NoSQL bypasses these limits.
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDBJesse Wolgamott
Lone Star Ruby Conference 2010... by Jesse Wolgamott
Dive into the target audiences and differences in NoSQL storage, how to implement them and what this NoSQL thing is all about.
Discuss how SQL has limits when you get to web-scale and how NoSQL bypasses these limits.
GDB - a tough nut to crack: only a few bugs found by PVS-StudioPVS-Studio
GDB is a tool that is hard to live without. Of course, as Brooks says: "The quality in software development is achieved through proper design, not by endless testing". However, proper design doesn't protect from logical errors, typos, null pointers, and so on. That's why various debugging tools, like GDB, come to help. My aim is to show that static code analyzers are also very useful tools which help to detect errors at the early stages of development. It's much better if the bug is fixed in the code before the testing and debugging stage. To demonstrate the benefits of static code analysis, let's delve inside GDB and look for errors, using PVS-Studio.
Having checked ReactOS's code I managed to fulfill three of my wishes at once. Firstly, I had wanted for a long time to write an article on a common project. It's not interesting to check the source code of projects like Chromium: its quality is too high and a lot of resources are spent to maintain it, which are unavailable to common projects. Secondly, it's a good example to demonstrate the necessity of static analysis in a large project, especially when it is developed by a diverse and distributed team. Thirdly, I've got a confirmation that PVS-Studio is becoming even better and more useful.
Past, Present and Future of Data Processing in Apache HadoopCodemotion
MongoDB scales easily to store mass volumes of data. However, when it comes to making sense of it all what options do you have? In this talk, we’ll take a look at 3 different ways of aggregating your data with MongoDB, and determine the reasons why you might choose one way over another. No matter what your big data needs are, you will find out how MongoDB the big data store is evolving to help make sense of your data.
MongoDB is a scalable high-performance open-source document-orientated database which is built for speed, rich document based queries for easy readability, full index support for high performance, replication and failover for high availability, auto sharding for easy scalability and map/reduce for aggregation.
This presentation discusses the most neglected quality axis : code documentation. See good and bad examples, best practices on documenting code and why you should try not to ignore it :)
Presentation date: 2014-11-28
Place: Thessaloniki Java Meetup Group (SKG)
Presentation on MongoDB and Node.JS. We describe how to do basic CRUD operations (insert, remove, update, find) how to aggregate using node.js. We also discuss a bit of Meteor, MEAN Stack and other ODMs and projects on Javascript and MongoDB
Presented by: Jason Mimick
Technical Director, MongoDB
MongoDB Ops Manager is an enterprise-grade end-to-end database management, monitoring, and backup solution. Kubernetes has clearly won the orchestration-platform "wars". In this session we'll take a deep dive on how you can leverage both these technologies to host your MongoDB deployments within your Kubernetes infrastructure whether that's OpenShift, PKS, Azure AKS, or just upstream. This talk will review the core technologies, such as containers, Kubernetes, and MongoDB Ops Manager. You'll also have a chance to see real-live demos of MongoDB running on Kubernetes and managed with MongoDB Ops Manager with the MongoDB Enterprise Kubernetes Operator.
Back to Basics 2017: Mí primera aplicación MongoDBMongoDB
Descubra:
Cómo instalar MongoDB y usar el shell de MongoDB
Las operaciones básicas de CRUD
Cómo analizar el rendimiento de las consultas y añadir un índice
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.
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.
GDB - a tough nut to crack: only a few bugs found by PVS-StudioPVS-Studio
GDB is a tool that is hard to live without. Of course, as Brooks says: "The quality in software development is achieved through proper design, not by endless testing". However, proper design doesn't protect from logical errors, typos, null pointers, and so on. That's why various debugging tools, like GDB, come to help. My aim is to show that static code analyzers are also very useful tools which help to detect errors at the early stages of development. It's much better if the bug is fixed in the code before the testing and debugging stage. To demonstrate the benefits of static code analysis, let's delve inside GDB and look for errors, using PVS-Studio.
Having checked ReactOS's code I managed to fulfill three of my wishes at once. Firstly, I had wanted for a long time to write an article on a common project. It's not interesting to check the source code of projects like Chromium: its quality is too high and a lot of resources are spent to maintain it, which are unavailable to common projects. Secondly, it's a good example to demonstrate the necessity of static analysis in a large project, especially when it is developed by a diverse and distributed team. Thirdly, I've got a confirmation that PVS-Studio is becoming even better and more useful.
Past, Present and Future of Data Processing in Apache HadoopCodemotion
MongoDB scales easily to store mass volumes of data. However, when it comes to making sense of it all what options do you have? In this talk, we’ll take a look at 3 different ways of aggregating your data with MongoDB, and determine the reasons why you might choose one way over another. No matter what your big data needs are, you will find out how MongoDB the big data store is evolving to help make sense of your data.
MongoDB is a scalable high-performance open-source document-orientated database which is built for speed, rich document based queries for easy readability, full index support for high performance, replication and failover for high availability, auto sharding for easy scalability and map/reduce for aggregation.
This presentation discusses the most neglected quality axis : code documentation. See good and bad examples, best practices on documenting code and why you should try not to ignore it :)
Presentation date: 2014-11-28
Place: Thessaloniki Java Meetup Group (SKG)
Presentation on MongoDB and Node.JS. We describe how to do basic CRUD operations (insert, remove, update, find) how to aggregate using node.js. We also discuss a bit of Meteor, MEAN Stack and other ODMs and projects on Javascript and MongoDB
Presented by: Jason Mimick
Technical Director, MongoDB
MongoDB Ops Manager is an enterprise-grade end-to-end database management, monitoring, and backup solution. Kubernetes has clearly won the orchestration-platform "wars". In this session we'll take a deep dive on how you can leverage both these technologies to host your MongoDB deployments within your Kubernetes infrastructure whether that's OpenShift, PKS, Azure AKS, or just upstream. This talk will review the core technologies, such as containers, Kubernetes, and MongoDB Ops Manager. You'll also have a chance to see real-live demos of MongoDB running on Kubernetes and managed with MongoDB Ops Manager with the MongoDB Enterprise Kubernetes Operator.
Back to Basics 2017: Mí primera aplicación MongoDBMongoDB
Descubra:
Cómo instalar MongoDB y usar el shell de MongoDB
Las operaciones básicas de CRUD
Cómo analizar el rendimiento de las consultas y añadir un índice
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.
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.
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.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
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
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Mind map of terminologies used in context of Generative AI
Application Design for MongoDB
1. Application Design
FOR MongoDB
Alessandro Palumbo
apalumbo@byte-code.com
http:/
/it.linkedin.com/in/alessandropalumbo/
http:/
/www.byte-code.com
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
2. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
MongoDB
NoSql
OPEN-source
Document-Oriented
JSON-style documents
from humongous
“huge; enormous”
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
4. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
don’t be relationaL
no joins
WE CAN EMBED
NO FULL
transactions
no SCHEMA
DOCUMENT LEVEL
TRANSACTIONS
IS IT REALLY
AN ISSUE?
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
5. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
friendly fire
DESIGN
PERFORMANCE
(aka RTFM)
ATOMIC
DOCUMENT
OPERATIONS
Write
Concern
READ
PREFERENCE
AVOID
NATURAL
KEYS AS
IDENTIFIERS
DESIGN
FOR
QUERY
DBREFS
VS
MANUAL
REFERENCE
DYNAMIC
SCHEMA
VS
static
languages
EMBEDDED
DATA
vs
References
be aware
of
the trees
BE
CAREFUL
WITH
DATES
PREALLOCATE
FIELDS?
SPLIT DATA
ON
MULTIPLE
COLLECTIONS
TUNING
UPDATES
AND
INSERTS
PURE DRIVER
VS
MAPPING
FRAMEWORKS
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
DOCUMENT
MOVING
SLOWS
YOU
PREPROCESS
HIGH
RESOLUTION
DATA
6. FRIENDLY FIRE
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
7. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
ATOMIC
DOCUMENT
OPERATIONS
OPERATIONS ON MULTIPLE DOCUMENTS
ARE NOT ATOMIC
NO “ALL OR NOTHING”
EMBEDding OR APPLIcaTION TRANSACTIONS
CAN be used to handle the issue
RELATIONAL TRANSACTIONS ARE NOT
TOTALLY SAFE
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
8. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
Write
Concern
“Describes the guarantee that
MongoDB provides when reporting
on the success of a write
operation”
IT IS SET BY THE CLIENT AND CAN BE SET FOR
EACH OPERATION
Errors Ignored
Unacknowledged
Acknowledged (*)
Journaled
Replica Acknowledged
> 1 , majority , custom using tags
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
9. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
Read
Preference
“IT describes how MongoDB clients
route read operations to members
of a replica set”
IT IS SET BY THE CLIENT AND CAN BE SET FOR
EACH OPERATION
primary (*)
primary Preferred
secondary
secondary PREFERRED
nearest
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
10. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
AVOID
NATURAL
KEYS AS
IDENTIFIERS
All collections have an index on
the id field that exists by default.
If ID IS NOT PROVIDED the driver or
the mongod will create an _id
field with an ObjectID value.
ADD AN UNIQUE INDEX ON THE NATURAL KEY,
SOMETIMES THE APPLICATION REALM CAN
EVOLVE IN AN UNEXPECTED WAY
REMEMBER THAT UNIQUE INDEXES FIELDS
MUST BE PART OF THE SHARD KEY IF
SHARDING IS ENABLED
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
12. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
DESIGN
FOR
QUERY
DOCUMENT DESIGN IS FUNCTIONAL TO
THE QUERIES THAT WILL EXISTS IN THE
APPLICATION
REFERENCE OR EMBED DOCUMENTS,
“denormalized” is not always
a bad word
your document design will affect
what kind of OPERATIONS will be safe
or not
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
13. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
EMBEDDED
DATA
vs
References
Embedded data models allow
applications to store related
pieces of information in the same
database record
USUALLY there is a “contains” relation
between the embedding and the embedded
object
The maximum BSON document size is 16
megabytes and embedding may lead to
performance issues if not correctly used
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
14. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
EMBEDDED
DATA
vs
References
Normalized data models describe
relationships using references
between documents
References provides more flexibility
than embedding but remember that
client-side applications will have to
lookup for referenced objects with
multiple queries
NO Referential integrity is supported,
references could point to a not existing
object
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
15. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
DBREFS
VS
MANUAL
REFERENCE
DBRefs are a convention for
representing a document, it will
hold the collection name, the id,
and optionally the db name
MANUAL REFERENCES are just fields
that will hold the id of the
related document, without the
collection name or the db name
MANUAL REFERENCES are suitable
for most of the use cases
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
16. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
BE
CAREFUL
WITH
DATES
ALWAYS Use bson date when is
related to an instant of time or
you will never be able to use
operators on that fields
BSON Date is a 64-bit signed integer
that represents the number of
milliseconds since the Unix epoch
(Jan 1, 1970), Negative values
represent dates before 1970.
The official BSON specification
refers to the BSON Date type as
the UTC datetime.
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
17. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
SPLIT DATA
ON
MULTIPLE
COLLECTIONS
split data on multiple collections
to easily partition your data
(a.k.a. Multitenancy)
use collections as namespaces for
your data
remember once data is partioned it
will be more hard to aggregate if
needed
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
18. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
DYNAMIC
SCHEMA
VS
static
languages
why use dynamic schema if we are
not using a dynamic programming
language?
inheritance is not only a matter
of hierarchy, it could be also a
matter of composition
composition is the key to
introduce dynamic schema in a
static programming language
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
19. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
PURE DRIVER
VS
MAPPING
FRAMEWORKS
using the mongo driver directly
will give you great powers, but
will force you to write a lot of
boilerplate code
MAPPING FRAMEWORKS WILL HELP TO
WRITE LESS CODE, but you will sacrifice
the control on all the aspects of the
persistence
why not take the most from both?
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
21. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
be aware
of
the trees
Indexes in MongoDB are defined at
the collection level and can be on
any field or sub-field of the
document
Indexes are created using a b-tree and can
be of different types
Single Field
Compound
Multikey
Geospatial
TEXT (BETA)
Hashed
THEY COULD BE UNIQUE and sparse
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
22. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
DOCUMENT
MOVING
SLOWS
YOU
MONGODB handle the space
allocation of a RECORD
considering also a PADDING FACTOR
WHEN AN UPDATED DOCUMENT DOES
NOT FIT IN THE RECORD SPACE IT WILL
BE MOVED
DYNAMIC SCHEMA IS THE FIRST CAUSE
OF DOCUMENT MOVING
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
23. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
PREALLOCATE
FIELDS?
FIELDS PREALLOCATION CAN FIX THE
DOCUMENT MOVING ISSUES IN SOME USE
CASES
Default values must be used to
preallocate, this MUST BE HANDLEDin the
application
NULL is not a default value :-) as it has
its own type
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
24. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
PREPROCESS
HIGH
RESOLUTION
DATA
MONGODB let you store the
maximum resolution of your data
MAP REDUCE and aggregation ARE ok
but you could also preprocess and
have aggregated data that you can
use for your queries
MONGODB rocks for business
intelligence
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
25. Alessandro Palumbo - apalumbo@byte-code.com - http:/
/www.byte-code.com
TUNING
UPDATES
AND
INSERTS
MongoDB stores BSON documents
as a sequence of fields and values,
not as aN hash table
WRITING THE FIRST FIELD OF A DOCUMENT (OR
A NESTED DOCUMENT) is considerably
faster than writing THE LAST
Intra-Document Hierarchy could help to
handle the issue
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/
26. Any questions?
Except where otherwise noted, this work is licensed under: http:/
/creativecommons.org/licenses/by/3.0/