This document provides an overview of NoSQL for SQL Server developers using Couchbase. It introduces Brant Burnett, the presenter, and his credentials working with Couchbase. The content will compare SQL and NoSQL concepts like databases, data types, queries and indexing. It will also provide a live demo of an ASP.NET Core microservice querying and indexing Couchbase. Finally, the presenter will take questions from the audience.
Moving Windows Applications to the CloudRightScale
RightScale Webinar: March 10, 2011 – This webinar will give you insight into how Windows instances can be dynamically configured using RightScale and equip you to move your Windows applications to the cloud.
A Global In-memory Data System for MySQLDaniel Austin
This is my presentation from Percona Live! London last year. I describe my Big Data system built on MySQL/NDB and show that we can preserve the relational model for most Big Data purposes in the real world.
Java script nirvana in netbeans [con5679]Ryan Cuprak
JavaOne 2016
NetBeans is not just a Java IDE. It supports JavaScript as a first-class citizen and provides a complete integrated development environment. It also provides project types for server-side JavaScript (Node.js) as well as web browsers and mobile (Apache Cordova). In addition, it supports Grunt, Mocha and Selenium, Angular and Knockout, and more. This session provides an update on NetBeans 8.1 and demonstrates the top new JavaScript features. You will see a Node.js application in action, look at the support for JavaScript unit testing, and also see how easy it is to debug an Apache Cordova application running on a tethered iPhone.
Resumo das principais funcionalidades para developers, bem como novos recursos para administradores como o grid link for rac e o active cache. também abordamos recursos de grid como o coherence
Play Architecture, Implementation, Shiny Objects, and a ProposalMike Slinn
ScalaCourses.com has been serving online Scala and Play training material to students for over two years. ScalaCourses.com teaches courses on the same technology stack that the web site runs on. The Cadenza application that powers ScalaCourses.com is a Play Framework 2 application, written in Scala and using Akka, Slick, AWS and Postgres. Some of the architectural features in Cadenza that allow a modest-sized Play application to serve large amounts of multimedia data efficiently is discussed, including technical details of how to work with an immutable domain model that can be modified.
Over the last 2+ years the underlying technology has changed a lot; a brief history of Play Framework will be recounted, and how that impacted Cadenza. The talk concludes with a proposal regarding Play Framework's future.
Access Data from XPages with the Relational ControlsTeamstudio
Did you know that Domino and XPages allows for the easy access of relational data? These exciting capabilities in the Extension Library can greatly enhance the capability of your applications and allow access to information beyond Domino. Howard and Paul will discuss what you need to get started, what controls allow access to relational data, and the new @Functions available to incorporate relational data in your Server Side JavaScript programming.
This presentation, given at the Fort Worth .NET User Group on 19 Sept. 2017, talks about serverless technology: What it is, when it's best to use, its features and limitations. It specifically focuses on Azure Functions and Azure Logic Apps.
Moving Windows Applications to the CloudRightScale
RightScale Webinar: March 10, 2011 – This webinar will give you insight into how Windows instances can be dynamically configured using RightScale and equip you to move your Windows applications to the cloud.
A Global In-memory Data System for MySQLDaniel Austin
This is my presentation from Percona Live! London last year. I describe my Big Data system built on MySQL/NDB and show that we can preserve the relational model for most Big Data purposes in the real world.
Java script nirvana in netbeans [con5679]Ryan Cuprak
JavaOne 2016
NetBeans is not just a Java IDE. It supports JavaScript as a first-class citizen and provides a complete integrated development environment. It also provides project types for server-side JavaScript (Node.js) as well as web browsers and mobile (Apache Cordova). In addition, it supports Grunt, Mocha and Selenium, Angular and Knockout, and more. This session provides an update on NetBeans 8.1 and demonstrates the top new JavaScript features. You will see a Node.js application in action, look at the support for JavaScript unit testing, and also see how easy it is to debug an Apache Cordova application running on a tethered iPhone.
Resumo das principais funcionalidades para developers, bem como novos recursos para administradores como o grid link for rac e o active cache. também abordamos recursos de grid como o coherence
Play Architecture, Implementation, Shiny Objects, and a ProposalMike Slinn
ScalaCourses.com has been serving online Scala and Play training material to students for over two years. ScalaCourses.com teaches courses on the same technology stack that the web site runs on. The Cadenza application that powers ScalaCourses.com is a Play Framework 2 application, written in Scala and using Akka, Slick, AWS and Postgres. Some of the architectural features in Cadenza that allow a modest-sized Play application to serve large amounts of multimedia data efficiently is discussed, including technical details of how to work with an immutable domain model that can be modified.
Over the last 2+ years the underlying technology has changed a lot; a brief history of Play Framework will be recounted, and how that impacted Cadenza. The talk concludes with a proposal regarding Play Framework's future.
Access Data from XPages with the Relational ControlsTeamstudio
Did you know that Domino and XPages allows for the easy access of relational data? These exciting capabilities in the Extension Library can greatly enhance the capability of your applications and allow access to information beyond Domino. Howard and Paul will discuss what you need to get started, what controls allow access to relational data, and the new @Functions available to incorporate relational data in your Server Side JavaScript programming.
This presentation, given at the Fort Worth .NET User Group on 19 Sept. 2017, talks about serverless technology: What it is, when it's best to use, its features and limitations. It specifically focuses on Azure Functions and Azure Logic Apps.
Cassandra Summit 2014: Deploying Cassandra for Call of DutyDataStax Academy
Presenters: Seán O Sullivan, Service Reliability Engineer & Tim Czerniak, Software Engineer at Demonware
This presentation covers the eight-month evaluation process we underwent to migrate some of Call of Duty’s core services from MySQL to Cassandra. We will outline our requirements, the process we followed for the evaluation, decisions we made around our schema, configuration and hardware, and some issues we encountered.
Stay productive while slicing up the monolith Markus Eisele
DevNexus 2017
Microservices-based architectures are en-vogue. The last couple of
years we have learned how the thought-leaders implement them, and
every other week we have heard about how containers and
Platform-as-a-Service offerings make them ultimately happen.
The problem is that the developers are almost forgotten and left alone
with provisioning and continuous delivery systems, containers and
resource schedulers, and frameworks and patterns to help slice
existing monoliths. How can we get back in control and efficiently
develop them without having to provision complete production-like
environments locally, by hand?
All the new buzzwords, frameworks, and hyped tools have made us forget
ourselves—Java developers–and what it means to be productive and have
fun building systems. The problem that we set out to solve is: how can
we run real-world Microservices-based systems on our local development
machines, managing provisioning, and orchestration of potentially
hundreds of services directly from a single command line tool, without
sacrificing productivity enablers like hot code reloading and instant
turnaround time?
During this talk, you’ll experience first-hand how much fun it can be
to develop large-scale Microservices-based systems. You will learn a
lot about what it takes to fail fast and recover and truly understand
the power of a fully integrated Microservices development environment.
CIS13: Big Data Platform Vendor’s Perspective: Insights from the Bleeding EdgeCloudIDSummit
Aaron T. Myers (ATM), Software Engineer, Cloudera, Inc.
The era of “Big Data for the masses” is upon us. Despite the mindshare Big Data has been receiving – driven by the development and distribution of Apache Hadoop, the first commercialized release was only in December of 2011 by Cloudera, Inc. Cloudera remains the leading Hadoop platform provider in the market today. Now, with a diverse enterprise and government early adopter customer list, through Cloudera we can get a bird’s eye view of the leading authentication issues beginning to emerge from these companies headed out of the sandbox and into full production.
Speaker Aaron T. Myers (ATM) was one of Cloudera’s earliest engineers and maintains a core focus on Apache Hadoop core, specifically focused on HDFS and Hadoop’s security features. ATM is an Apache Hadoop PMC Member and Committer.
Architecting for failure - Why are distributed systems hard?Markus Eisele
Devnexus 2017
As we architect our systems for greater demands, scale, uptime, and performance, the hardest thing to control becomes the environment in which we deploy and the subtle but crucial interactions between complicated systems. And microservices obviously are the way to go forward with those complicated systems. But what makes it so hard to build them? And why should you embrace failure instead of doing what we can do best: Preventing failure. This talk introduces you to the problem domain of a distributed system which consists of a couple of microservices. It shows how to build, deploy and orchestrate the chaos and introduces you to a couple of patterns to prevent and compensate failure.
Configuring and maintaining a continuous integration environment is quite a bit of work. It requires ongoing resources both in terms of manpower and hardware infrastructure. As an application evolves so does the number of ongoing projects. The challenge is creating a scalable continuous integration environment which does not impede development and can handle the complexities of Java EE testing. This session covers how to setup and configure a cloud-based continuous integration environment for Java EE applications.
The presentation will focus on demonstrating how to use Atlassian Bamboo running on AWS to build and test a Maven/Gradle Java EE project that uses Arquillian for testing. Topics that will be covered include creating a custom AWS VM for use with Bamboo, creating an Amazon VPC (Virtual Private Cloud) along with test database using Amazon RDS. The presentation will delve into the specifics of testing EJBs, WebSocket endpoints, RESTful web services, as well as performing load testing in this environment. Security, cost control, and build monitoring will be covered as well.
Different application domains including sensor networks, social networks, science, financial services, condition monitoring systems demand the storage of a vast amount of data in the petabytes area. Prominent candidates are Google, Facebook, Yahoo!, Amazon just to name a few.
This data volume can't be tackled with convential relational database technologies anymore, either from a technical or licensing point of view or both. It demands a scale-out environment, which allows reliable, scalable and distributed processing. This trend in Big Data management is more and more approached with NoSQL solutions like Apache HBase on top of Apache Hadoop.
This session discusses big data management and their scalability challenges in general with a short introduction into Apache Hadoop/HBase and a case study on the co-existence of Apache Hadoop/HBase with Firebird in a sensor data aquisition system.
The DBA landscaping and tooling is changing rapidly and the DBA need to keep up with the new technologies related to SQL Azure, Big Data and NoSQL. SQL Server 2016 is brining many new features that will help you become that modern DBA. This sessions will demo the new features help you get ready for the change that is coming in the world of Data.
Cassandra Summit 2014: Deploying Cassandra for Call of DutyDataStax Academy
Presenters: Seán O Sullivan, Service Reliability Engineer & Tim Czerniak, Software Engineer at Demonware
This presentation covers the eight-month evaluation process we underwent to migrate some of Call of Duty’s core services from MySQL to Cassandra. We will outline our requirements, the process we followed for the evaluation, decisions we made around our schema, configuration and hardware, and some issues we encountered.
Stay productive while slicing up the monolith Markus Eisele
DevNexus 2017
Microservices-based architectures are en-vogue. The last couple of
years we have learned how the thought-leaders implement them, and
every other week we have heard about how containers and
Platform-as-a-Service offerings make them ultimately happen.
The problem is that the developers are almost forgotten and left alone
with provisioning and continuous delivery systems, containers and
resource schedulers, and frameworks and patterns to help slice
existing monoliths. How can we get back in control and efficiently
develop them without having to provision complete production-like
environments locally, by hand?
All the new buzzwords, frameworks, and hyped tools have made us forget
ourselves—Java developers–and what it means to be productive and have
fun building systems. The problem that we set out to solve is: how can
we run real-world Microservices-based systems on our local development
machines, managing provisioning, and orchestration of potentially
hundreds of services directly from a single command line tool, without
sacrificing productivity enablers like hot code reloading and instant
turnaround time?
During this talk, you’ll experience first-hand how much fun it can be
to develop large-scale Microservices-based systems. You will learn a
lot about what it takes to fail fast and recover and truly understand
the power of a fully integrated Microservices development environment.
CIS13: Big Data Platform Vendor’s Perspective: Insights from the Bleeding EdgeCloudIDSummit
Aaron T. Myers (ATM), Software Engineer, Cloudera, Inc.
The era of “Big Data for the masses” is upon us. Despite the mindshare Big Data has been receiving – driven by the development and distribution of Apache Hadoop, the first commercialized release was only in December of 2011 by Cloudera, Inc. Cloudera remains the leading Hadoop platform provider in the market today. Now, with a diverse enterprise and government early adopter customer list, through Cloudera we can get a bird’s eye view of the leading authentication issues beginning to emerge from these companies headed out of the sandbox and into full production.
Speaker Aaron T. Myers (ATM) was one of Cloudera’s earliest engineers and maintains a core focus on Apache Hadoop core, specifically focused on HDFS and Hadoop’s security features. ATM is an Apache Hadoop PMC Member and Committer.
Architecting for failure - Why are distributed systems hard?Markus Eisele
Devnexus 2017
As we architect our systems for greater demands, scale, uptime, and performance, the hardest thing to control becomes the environment in which we deploy and the subtle but crucial interactions between complicated systems. And microservices obviously are the way to go forward with those complicated systems. But what makes it so hard to build them? And why should you embrace failure instead of doing what we can do best: Preventing failure. This talk introduces you to the problem domain of a distributed system which consists of a couple of microservices. It shows how to build, deploy and orchestrate the chaos and introduces you to a couple of patterns to prevent and compensate failure.
Configuring and maintaining a continuous integration environment is quite a bit of work. It requires ongoing resources both in terms of manpower and hardware infrastructure. As an application evolves so does the number of ongoing projects. The challenge is creating a scalable continuous integration environment which does not impede development and can handle the complexities of Java EE testing. This session covers how to setup and configure a cloud-based continuous integration environment for Java EE applications.
The presentation will focus on demonstrating how to use Atlassian Bamboo running on AWS to build and test a Maven/Gradle Java EE project that uses Arquillian for testing. Topics that will be covered include creating a custom AWS VM for use with Bamboo, creating an Amazon VPC (Virtual Private Cloud) along with test database using Amazon RDS. The presentation will delve into the specifics of testing EJBs, WebSocket endpoints, RESTful web services, as well as performing load testing in this environment. Security, cost control, and build monitoring will be covered as well.
Different application domains including sensor networks, social networks, science, financial services, condition monitoring systems demand the storage of a vast amount of data in the petabytes area. Prominent candidates are Google, Facebook, Yahoo!, Amazon just to name a few.
This data volume can't be tackled with convential relational database technologies anymore, either from a technical or licensing point of view or both. It demands a scale-out environment, which allows reliable, scalable and distributed processing. This trend in Big Data management is more and more approached with NoSQL solutions like Apache HBase on top of Apache Hadoop.
This session discusses big data management and their scalability challenges in general with a short introduction into Apache Hadoop/HBase and a case study on the co-existence of Apache Hadoop/HBase with Firebird in a sensor data aquisition system.
The DBA landscaping and tooling is changing rapidly and the DBA need to keep up with the new technologies related to SQL Azure, Big Data and NoSQL. SQL Server 2016 is brining many new features that will help you become that modern DBA. This sessions will demo the new features help you get ready for the change that is coming in the world of Data.
DevOps is changing today's software development world by helping us build better software, faster. However most of the knowledge and experience with DevOps is based around application software and ignores the database. We will examine how the concepts and principles of DevOps can be applied to database development by looking at both automated comparison analysis as well as migration script management. Automated building, testing, and deployment of database changes will be shown.
About the Presenter
Steve Jones is a Microsoft SQL Server MVP and has been working with SQL Server since version 4.2 on OS/2. After working as a DBA and developer for a variety of companies, Steve co-founded the community website SQLServerCentral.com in 2001. Since 2004, Steve has been the full-time editor of the site, ensuring it continues to be a great resource for SQL Server professionals. Over the last decade, Steve has written hundreds of articles about SQL Server for SQLServerCentral.com, SQL Server Standard magazine, SQL Server Magazine, and Database Journal.
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseEric Bragas
In this presentation, we take a look at the components of a modern ETL platform using the latest and greatest Azure technologies to leverage PaaS services for parallel data loading, distributed data processing, and SQL databases as a semantic layer. Originally presented for the Orange County SQL Saturday, April 2018.
OpenStack Days East -- MySQL Options in OpenStackMatt Lord
In most production OpenStack installations, you want the backing metadata store to be highly available. For this, the de facto standard has become MySQL+Galera. In order to help you meet this basic use case even better, I will introduce you to the brand new native MySQL HA solution called MySQL Group Replication. This allows you to easily go from a single instance of MySQL to a MySQL service that's natively distributed and highly available, while eliminating the need for any third party library and implementations.
If you have an extremely large OpenStack installation in production, then you are likely to eventually run into write scaling issues and the metadata store itself can become a bottleneck. For this use case, MySQL NDB Cluster can allow you to linearly scale the metadata store as your needs grow. I will introduce you to the core features of MySQL NDB Cluster--which include in-memory OLTP, transparent sharding, and support for active/active multi-datacenter clusters--that will allow you to meet even the most demanding of use cases with ease.
Using Redgate, AKS and Azure to bring DevOps to your databaseRed Gate Software
Practical solutions on how to bring DevOps to your database including:
- The importance of getting your database code into source control
- How to test your database changes
- Tools you can use to automate build and test processes
- How to build an automated deployment process for your database with Redgate tools
- How to embrace using Azure Kubernetes Services (AKS) in your deployment pipeline
- Deploying your entire pipeline as and when it is needed from Dev to Prod saving your organisation money
Using Redgate, AKS and Azure to bring DevOps to your DatabaseRed Gate Software
Join Hamish Watson and Rob Sewell to learn practical solutions on how to bring DevOps to your database, including:
• The importance of getting your database code into source control
• How to test your database changes
• Tools you can use to automate build and test processes
• How to build an automated deployment process for your database with Redgate tools
• How to embrace using Azure Kubernetes Services (AKS) in your deployment pipeline
• Deploying your entire pipeline as and when it is needed from Dev to Prod saving your organisation money
Database upgrades and data in general are often the most complicated part of your deployment process, so having a robust deployment path and checks before getting to production is very important.
The demos will showcase practical solutions that can help you and your team bring DevOps to your database using SQL Source Control, infrastructure as code, docker containers and SQL Change Automation – all leading up to a fully automated test and deployment process.
This will be a fun-filled fast paced hour and you will learn some new skills which will bring immediate benefit to your organization.
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup
Serverless architecture is the next big shift in computing - completely abstracting the underlying infrastructure and focusing 100% on the business logic.
Today we can create applications directly in our browser and leave the decision how they are hosted and scaled to the cloud provider. Moreover, this approach give us incredible control over the granularity of our applications since most of the time we are dealing with single function at a time.
In this presentation we will cover:
• Introduce Serverless Architectures
• Talk about the advantages of Serverless Architectures
• Discuss in details in event-driven computing
• Cover common Serverless approaches
• See practical applications with Azure Functions
• Compare AWS Lambda and Azure Functions
• Talk about open source alternatives
• Explore the relation between Microservices and Serverless Architectures
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009eLiberatica
This is a presentation held at eLiberatica 2009.
http://www.eliberatica.ro/2009/
One of the biggest events of its kind in Eastern Europe, eLiberatica brings community leaders from around the world to discuss about the hottest topics in FLOSS movement, demonstrating the advantages of adopting, using and developing Open Source and Free Software solutions.
The eLiberatica organizational committee together with our speakers and guests, have graciously allowed media representatives and all attendees to photograph, videotape and otherwise record their sessions, on the condition that the photos, videos and recordings are licensed under the Creative Commons Share-Alike 3.0 License.
SQL vs. NoSQL. It's always a hard choice.Denis Reznik
This will be an interesting and sometimes fun session with a small demo. This session will answer some of your questions and force you to think about new questions. It will not be very technical, so it's ok for choose another more technical session from the schedule :) But if will decide to come, I can assure you, that you will not be disappointed. We will do a thought experiment with one famous public high-loaded website, will look at advantages and disadvantages of SQL and NoSQL databases, and will choose the best database engine for it.
This talk will cover lessons learned at Community Engine regarding MongoDB, including: why we moved away from an Hybrid solution using SQL and MongoDB; an outline of the technologies and what we learned using MongoDB on Amazon Web Services; the MongoDB C# driver; MongoDB with SOLR for Full Text Search; how we do migration, deployment and more.
Slides from my talk at Big Data Conference 2018 in Vilnius
Doing data science today is far more difficult than it will be in the next 5-10 years. Sharing, collaborating on data science workflows in painful, pushing models into production is challenging.
Let’s explore what Azure provides to ease Data Scientists’ pains. What tools and services can we choose based on a problem definition, skillset or infrastructure requirements?
In this talk, you will learn about Azure Machine Learning Studio, Azure Databricks, Data Science Virtual Machines and Cognitive Services, with all the perks and limitations.
Microsoft Azure zmienia się. Jego częśc poświęcona bazie danych (Windows Azure SQL Database) zmienia się jeszcze szybciej. Podczas tej sesji chciałbym pokazac tym, którzy nie widzieli, oraz przypomniec tym, którzy już coś wiedzą - o co chodzi z WASD, jakie zmiany nastapiły i czego możemy po tej bazie oczekiwać. Dla odważnych będzie okazja podłączenia się do konta w chmurze i przetestowania ych rozwiązań samemu.
With the recent release of SQL Server 2016 SP1 providing a consistent programming surface area has generated quite a buzz in the SQL Server community. SQL Server 2016 SP1 allows businesses of all sizes to leverage full feature set such as In-Memory technologies on all editions of SQL Server to get enterprise grade performance. This presentation focuses on the new improvements, new limits on the lower editions, differentiating factors and key scenarios enabled by SQL Server 2016 SP1 which makes SQL Server 2016 SP1 an obvious choice for the customers. This session was delivered to PASS VC DBA fundamentals chapter for everyone to learn about these exciting new improvements announced with SQL Server 2016 SP1 to ensure they are leveraging them to maximize performance and throughput of your SQL Server environment.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
2. Who is this guy?
• Brant Burnett - @btburnett3
• Systems Architect at CenterEdge Software
• .NET since 1.0, SQL Server since 7.0
• MCSD, MCDBA
• Experience from desktop apps to large
scale cloud services
3. NoSQL Credentials
• Couchbase user since 2012 (v1.8)
• Couchbase Expert
• Open source contributions:
• Couchbase .NET SDK
• Couchbase.Extensions for .NET Core
• Couchbase LINQ provider (Linq2Couchbase)
• CouchbaseFakeIt
• couchbase-index-manager
5. Agenda
What’s NoSQL?
Why NoSQL?
Some popular NoSQL options
SQL Server to Couchbase Mindmap
Live Demo: ASP.NET Core Microservice
Querying and Indexing Couchbase
8. NoSQL Document
Databases
• Get and set documents by key
• Imagine a giant folder full of JSON
files
• If you know the filename, you can
get or update the content
• Often offer map/reduce or query
functionality
10. Why NoSQL?
Scalability
• Horizontal scaling
• Scaling SQL horizontally is difficult
• NoSQL is designed for horizontal scaling
• Couchbase shards horizontally automatically
and transparently
• Scaling vertically has limits
• Scaling SQL usually has downtime
• Big Data!
This Photo by Unknown Author is licensed under CC BY
11. Why NoSQL?
Availability
• Multi-node design protects against
failure
• COUCH = Cluster of Unreliable
Commodity Hardware
• Zero down time upgrades
• Zero down time scaling
12. Why NoSQL?
Performance
• Designed for very high throughput
• Multi-node architecture shares the load
• Can be more cost effective than read-
replicas
• Couchbase has a memory-first architecture
• No more separate memory cache!
13. Why NoSQL? Agility
• Most NoSQL systems are “schema-less”
• Schema changes can slow the team
• Schema changes can cause downtime for SQL
• Updating large tables can lock the whole
table until complete
• Many modern architectures don’t really need
database-enforced schema anymore
This Photo by Unknown Author is licensed under CC BY-SA
14. Okay, so why SQL?
• Small scale
• On-premise, single server
• ACID transactions are required
• a.k.a. two-phase commit
• Transaction logs
• High-consistency DB backups
• Keeping it old school
15. Which NoSQL system
is right for me?
I prefer Couchbase, but
here’s some (hopefully)
unbiased info
17. Disclaimer
• I am primarily a Couchbase user
• Please let me know if I’ve made any mistakes
• Most of the information here comes from
Matthew Groves (@mgroves)
This Guy
18. Evaluation
Criteria
Querying
•Quality of query support
•Ease of query language
Scaling
•Ease of scaling
•Cost effectiveness of scaling
Usability
•Ease of installation
•Ease of maintenance
•Ease of development
Speed
•How fast is it?
Deployment
•OS choices
•Cloud provider choices
Support
•Support options
•Licensing
•Community
•Longevity
19. Querying
• Proprietary JSON-based query
• Text search
• .NET and .NET Core SDK
• LINQ provider in .NET
This Photo by Unknown Author is licensed under CC BY-SA
24. Support
• MongoDB, Inc.
• Open-source (AGPL & Apache)
• Huge community / popularity
This Photo by Unknown Author is licensed under CC BY
25. Querying
• N1QL (SQL for JSON)
• MapReduce
• Full Text Search (FTS)
• .NET and .NET Core SDK
• Linq2Couchbase
This Photo by Unknown Author is licensed under CC BY-SA
26. Scaling
• Single node type
• Multi-master / "masterless"
• Auto-sharding
• Replication
• XDCR
27. Usability
• Built in web console
• .NET SDK idioms
• N1QL is just SQL
• Scaling
• mongoose and ottoman
This Photo by Unknown Author is licensed under CC BY-SA
30. Support
• Couchbase, Inc.
• Open-source (Apache 2)
• Active community
This Photo by Unknown Author is licensed under CC BY
31. Querying
• REST focused
• MapReduce views
• Mango query language (2.x)
This Photo by Unknown Author is licensed under CC BY-SA
32. Scaling
• Single node type
• Multi-master
• HAProxy
• Sharding configuration
• Replication
33. Usability
• Built in Futon / Fauxton
• Scaling / Replication work
• Cluster Setup Wizard (2.x)
• There is no "official" .NET SDK
• .NET SDKs are REST wrappers
This Photo by Unknown Author is licensed under CC BY-SA
37. Querying
• SQL (limited)
• Stored Procedures (JS)
• Triggers (JS)
• UDFs (JS)
• .NET and .NET Core SDK
This Photo by Unknown Author is licensed under CC BY-SA
38. Scaling
• Handled by Azure
• Geographic distribution / affinity
• Consistency options
• Guaranteed zero data loss during
failovers
39. Usability
• Azure doing work for you
• .NET and .NET Core SDK
• Local emulator
• Transactions (with sprocs)
• Mongo compatible API
This Photo by Unknown Author is licensed under CC BY-SA
46. SQL is English for
Relational Database
SQL Invented by Don
Chamberlin & Raymond
Boyce at IBM
N1QL is English for JSON
N1QL was invented by
Gerald Sangudi at
Couchbase
SQL
Instance
Database
Table
Row
Column
Index
Datatypes
N1QL
Cluster
Bucket
Bucket, Keyspace
Document
Attribute
Index
JSON Datatypes
SQL
Input and Output: Set(s) of
Tuples
N1QL
Input and Output:
Set(s) of JSON
N1QL STMT
CREATE BUCKET
None
CREATE INDEX
None
SELECT
INSERT
UPDATE
DELETE
MERGE
Subqueries
JOIN
GROUP BY
ORDER BY
OFFSET, LIMIT
EXPLAIN
PREPARE
EXECUTE
GRANT ROLE
REVOKE ROLE
FLUSH
Tuples
SQL Model
Set of
JSON
N1QL Model
Set of
Tuples
Set of
JSON
N1QL Tooling
Web Console
Monitoring
Profiling
Dev workbench
SDK
Simba, CdataSQL Tooling
ODBC, JDBC, .NET
Hibernate, Entity Framework
N1QLResources
http://query.couchbase.com
SQL Indexes
Primary Key
Secondary Key
Composite
Range Partitioned
Expression
(Functional)
Spatial
Search
N1QL Indexes
Primary
Secondary
Composite
Partial
Expression (Functional)
Array Index
Replica(HA)
Adaptive
Spatial
SQL Logic
3 valued logic
TRUE, FALSE, NULL
N1QL Logic
4 valued logic
TRUE, FALSE, NULL,
MISSING
SQL Transactions
ACID
Multi-Statement
Savepoints
Commit/Rollback
N1QL Transactions
Single Document
atomicity
SQL Datatypes
Numeric
Decimal
Character
Date/Time
BLOB
Spatial
JSON
N1QL Datatypes
Numeric
Boolean
Character
Array
Object
Null
Conversion Functions
JSON
SQL Optimizer
Rule Based
Cost Based
Index Selection
Query Rewrites
NL, Hash, Merge join
N1QL Optimizer
Rule based
Index Selection
NL Join
SQL ACID
Atomic
Consistent
Isolated
Durable
N1QL BASE
Single doc Atomic
Consistent Data*
Optimistic Concurrency
Tunable Durability
N1QL Index Scan Consistency*
NOT_BOUNDED
AT_PLUS
REQUEST_PLUS
SQL Engine
(SMP
Scale UP)
N1QL
Engine
(MPP
Cluste Scale
OUT)
Additional SQL Features
Triggers
Stored Procedures
XML
Constraints
RAC
SQL STMT
CREATE DATABASE
CREATE TABLE
CREATE INDEX
ALTER TABLE
SELECT
INSERT
UPDATE
DELETE
MERGE
Subqueries
JOIN
GROUP BY
ORDER BY
OFFSET, FETCH, TOP
EXPLAIN
sp_prepare
sp_execute
GRANT
REVOKE
TRUNCATE
47. Couchbase Architecture
STORAGE
Couchbase Server 1
SHARD
7
SHARD
9
SHARD
5
SHARDSHARDSHARD
Managed Cache
Cluster
ManagerCluster
Manager
Managed Cache
Storage
Data
Service STORAGE
Couchbase Server 2
Managed Cache
Cluster
ManagerCluster
Manager
Query
Service STORAGE
Couchbase Server 3
SHARD
7
SHARD
9
SHARD
5
SHARDSHARDSHARD
Managed Cache
Cluster
ManagerCluster
Manager
Index
Service STORAGE
Couchbase Server 4
SHARD
7
SHARD
9
SHARD
5
SHARDSHARDSHARD
Managed Cache
Cluster
ManagerCluster
Manager
Search
Service STORAGE
Couchbase Server 5
SHARD
7
SHARD
9
SHARD
5
SHARDSHARDSHARD
Managed Cache
Cluster
ManagerCluster
Manager
Analytics
Service*
Managed Cache
Storage
SDK SDK
48. Architecture
Product SQL Server Couchbase
System Architecture SMP
Always-On readable secondary
replicas
MPP
MDS: Multi Dimensional Scaling
Data Service: MPP, Hash Partitioning
Indexing, FTS: MDS Scale-out
Query: MDS Scale-out
Query SQL, search, JSON extensions N1QL, Key-value, Full text search
Analytics (preview)
High Availability Always-On,
Log Shipping,
DB mirroring (deprecated)
Built-in intranode replication (up to 3 copies)
Built-in XDCR (cross data center replication)
Transactions ACID
Multi-statement
Single document atomicity
Data Service consistency, Index - eventual consistency
optimistic locking (CAS)
additional confirmation for durability
Drivers JDBC, ODBC, .NET, LINQ Couchbase SDK (Java, .NET, LINQ, PHP, Python, Go), Simba
JDBC/ODBC
Data Model Normalized, Denormalized Denormalized JSON model
50. Data Types
Data Type SQL Server Couchbase JSON
Numbers int, bigint, smallint, tinyint, float, real,
decimal, numeric, money, smallmoney
JSON Number { "id": 5, "balance":2942.59 }
String char, varchar, nchar, nvarchar, text, ntext JSON String { "name": "Joe", "city": "Morrisville" }
Boolean bit JSON Boolean { "premium": true, ”pending": false}
Date/Time datetime, smalldatetime, datetime2,
date, time, datetimeoffset
JSON ISO 8601 string with extract,
convert and arithmetic functions
{ “soldat”: "2017-10-12T13:47:41.068-07:00" }
spatial data geometry, geography Supports nearest neighbor and spatial
distance.
"geometry": {"type": "Point", "coordinates": [-
104.99404, 39.75621]}
MISSING Not applicable, fixed schema MISSING { }
NULL NULL JSON Null { "last_address": null }
Objects Flexible JSON Objects { "address": {"street": "1 Main Street",
"city": Morrisville, "zip":"94824“} }
Arrays Flexible JSON Arrays { "hobbies": ["tennis", "skiing", "lego"] }
51. Understanding MISSING
Couchbase
MISSING
Value of a field absent in the JSON document or literal.
{“name”: ”joe”} Everything but the field “name” is missing from the document.
IS MISSING
Returns true if the document does not have status field
FROM CUSTOMER WHERE status IS MISSING;
IS NOT MISSING Returns true if the document has status field (even if null)
FROM CUSTOMER WHERE status IS NOT MISSING;
MISSING vs NULL MISSING is a known missing quantity
NULL is a known UNKNOWN.
Valid JSON: {“status”: null}
MISSING value Simply make the field of any type disappear by setting it to MISSING
UPDATE CUSTOMER SET status = MISSING WHERE cxid = “xyz232”
52. Couchbase 4-valued Boolean Logic
A B A OR B A AND B
TRUE NULL TRUE NULL
FALSE NULL FALSE NULL
TRUE MISSING TRUE MISSING
FALSE MISSING TRUE MISSING
NULL MISSING NULL MISSING
NULL NULL NULL NULL
MISSING MISSING MISSING MISSING
53. Statements
Feature SQL Server Couchbase
CREATE TABLE CREATE TABLE couchbase-cli bucket-create
ALTER TABLE ALTER TABLE UPDATE customer SET, UNSET
CREATE INDEX i1 on t(a, b, c DESC); CREATE INDEX i1 on t(a, b, c DESC); CREATE INDEX i1 on t(a, b, c DESC);
INSERT INTO INSERT INTO INSERT INTO
SELECT SELECT SELECT
JOINS JOINS JOIN – INNER JOIN, LEFT OUTER JOIN
GROUP BY, HAVING GROUP BY, HAVING GROUP BY, HAVING
ORDER BY a ASC, b DESC ORDER BY a ASC, b DESC ORDER BY a ASC, b DESC
OFFSET, LIMIT OFFSET, FETCH, TOP OFFSET, LIMIT
Subqueries Subqueries Subqueries
54. Data Modeling
Relationship SQL Server Couchbase
1:1
Foreign Key
Denormalize
Embedded Object (implicit)
Document Key reference
1:N Foreign Key
Embedded Array of Objects (implicit)
Document Key reference
N:M Foreign Key
Embedded Array of Objects
Arrays of objects with references
55. Joins
JOIN Type SQL Server Couchbase
INNER JOIN Full ANSI join ON clause requires document key
reference. Equi-join only
LEFT OUTER JOIN Full ANSI join ON clause requires document key
reference. Equi-join only
RIGHT OUTER JOIN Full ANSI join Unsupported
FULL OUTER JOIN Full ANSI join Unsupported
56. Transactions
Feature SQL Server Couchbase
Index updates Index is synchronously maintained Index is asynchronously maintained
Multi Statement Transaction
Yes
BEGIN, COMMIT, ROLLBACK, SAVE
No
Atomicity Multi update, Multi statement Single Document
Consistency
Consistent
Includes Dirty read support
Data access is always consistent
Index has multiple consistency levels
(NOT_BOUNDED, AT_PLUS, REQUEST_PLUS)
Isolation
Pessimistic locking with distributed lock
manager
Optimistic locking with CAS checking
Durability Durable Durable with confirmation after replication
57. Do you really need
transactions?
• Oftentimes, you don’t
• Good design can usually reduce the need
• If you’re using a microservice architecture,
distributed transactions have major downsides
• Bye-bye high availability
• Difficult
• Consider eventual consistency using saga patterns
This Photo by Unknown Author is licensed under CC BY-SA
59. Basic POCO
public class Airline
{
public string Callsign { get; set; }
public string Country { get; set; }
[JsonProperty("iata")]
public string IATA { get; set; }
[JsonProperty("iaco")]
public string IACO { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
}
Key: airline_10
{
"callsign": "MILE-AIR",
"country": "United States",
"iata": "Q5",
"icao": "MLA",
"id": 10,
"name": "40-Mile Air",
"type": "airline"
}
60. Nesting Subdocuments
Key: airport_1254
{
"airportname": "Calais Dunkerque",
"city": "Calais",
"country": "France",
"faa": "CQF",
"geo": {
"alt": 12,
"lat": 50.962097,
"lon": 1.954764
},
"icao": "LFAC",
"id": 1254,
"type": "airport",
"tz": "Europe/Paris"
}
// JSON decorators not shown for simplicity
public class Airport
{
public string AirportName { get; set; }
public string City { get; set; }
public string Country { get; set; }
public string FAA { get; set; }
public Coordinate Geo { get; set; }
public string ICAO { get; set; }
public int Id { get; set; }
public string Timezone { get; set; }
public string Type { get; set; }
}
public class Coordinate
{
public int Altitude { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
}
61. Nesting Arrays as Lists
Key: route_10000
{
"airline": "AF",
"airlineid": "airline_137",
"destinationairport": "MRS",
"distance": 2881.617376098415,
"equipment": "320",
"id": 10000,
"schedule": [
{
"day": 0,
"flight": "AF198",
"utc": "10:13:00"
},
{
"day": 0,
"flight": "AF547",
"utc": "19:14:00"
}
],
"sourceairport": "TLV",
"stops": 0,
"type": "route"
}
// JSON decorators not shown for simplicity
public class Route
{
public string Airline { get; set; }
public string AirlineId { get; set; }
public string DestinationAirport { get; set; }
public double Distance { get; set; }
public string Equipment { get; set; }
public int Id { get; set; }
public List<Schedule> Schedule { get; set; }
public string SourceAirport { get; set; }
public int Stops { get; set; }
public string Type { get; set; }
}
public class Schedule
{
public int Day { get; set; }
public string Flight { get; set; }
public TimeSpan UTC { get; set; }
}
62. Modeling for Joins
Key: route_10000
{
"airline": "AF",
"airlineid": "airline_137",
"destinationairport": "MRS",
"distance": 2881.617376098415,
"equipment": "320",
"id": 10000,
"schedule": [
{
"day": 0,
"flight": "AF198",
"utc": "10:13:00"
},
{
"day": 0,
"flight": "AF547",
"utc": "19:14:00"
}
],
"sourceairport": "TLV",
"stops": 0,
"type": "route"
}
Key: airline_137
{
"callsign": "AIRFRANS",
"country": "France",
"iata": "AF",
"icao": "AFR",
"id": 137,
"name": "Air France",
"type": "airline"
}
Note: Instead of the full key, you may
just store the dynamic parts, such as
“137”, and rebuild the key as needed
63. Good Practices
[DocumentTypeFilter(TypeString)]
public class Airline
{
public const string TypeString = "airline";
public string Callsign { get; set; }
public string Country { get; set; }
[JsonProperty("iata")]
public string IATA { get; set; }
[JsonProperty("iaco")]
public string IACO { get; set; }
public int Id { get; set; }
public string Name { get; set; }
// Type is now read only to maintain consistency
public string Type => TypeString;
}
Key: airline_10
{
"callsign": "MILE-AIR",
"country": "United States",
"iata": "Q5",
"icao": "MLA",
"id": 10,
"name": "40-Mile Air",
"type": "airline"
}
64. Live Demo!
This should be interesting…
https://github.com/brantburnett/Couchbase.Net.StepByStep
This Photo by Unknown Author is licensed under CC BY-NC-SA
67. O backtick, backtick!
Wherefore art thou a
backtick?
• ANSI SQL delimits identifiers with double quotes
• SELECT * FROM "table-name"
• T-SQL also delimits identifiers with square
brackets
• SELECT * FROM [table-name]
• Both of these are used in JSON!
• {"array": ["string1", "string2"]}
• So, N1QL uses the backtick instead
• SELECT * FROM `bucket-name`
This Photo by Unknown Author is licensed under CC BY-NC-ND
68. JOIN
SELECT airline.name, route.stops, route.schedule
FROM `travel-sample` AS route
INNER JOIN `travel-sample` AS airline
ON KEYS route.airlineid
WHERE route.type = 'route'
AND route.sourceairport = 'ATL'
AND route.destinationairport = 'ABE'
ORDER BY airline.name, route.stops
69. JOIN
with
LINQ
from route in db.Query<Route>()
join airline in db.Query<Airline>()
on route.AirlineId equals N1QlFunctions.Key(airline)
where route.SourceAirport == "ATL"
&& route.DestinationAirport == "ABE"
orderby airline.Name, route.Stops
select new
{
AirlineName = airline.Name,
route.Stops,
route.Schedule
};
71. UNNEST
SELECT route.airline, schedule.*
FROM `travel-sample` as route
UNNEST route.schedule as schedule
WHERE route.type = 'route’
AND route.sourceairport = 'MRS’
AND route.destinationairport = 'TLV'
LIMIT 10
72. UNNEST
with
LINQ
from route in context.Query<Route>()
from schedule in route.Schedules
where route.SourceAirport == "MRS"
&& route.DestinationAirport == "TLV"
select new
{
route.Airline,
schedule
};
73. Other N1QL
Specific
Features
• Turn an array of document keys into an array of
documents (NEST)
• Subqueries on nested arrays (ARRAY..END)
• Test nested arrays for matching values
(ANY..END)
• Most are implemented transparently by LINQ
75. SQL Server vs Couchbase Indexes
Airline
SQL Table
Airport
SQL Table
travel-sample
Bucket
Airline Indexes
Airport Indexes
Bucket Indexes
76. Index
Predicates
• Predicates only include certain documents in the index
• Reduces index size
• Queries must include the predicate to use the index
CREATE INDEX airlinesByName
ON `travel-sample` (name)
WHERE type = 'airline'
77. Indexing
Expressions
• Any deterministic function or operation may be used
• Queries must use the same expression to use the index
CREATE INDEX airlinesByNameInsensitive
ON `travel-sample` (LOWER(name))
WHERE type = 'airline'
78. Indexing
Date/Times
• LINQ assumes DateTime props are stored as ISO8601
• LINQ wraps DateTimes in STR_TO_MILLIS()
• Be sure any indexes also use STR_TO_MILLIS()
CREATE INDEX beersByUpdated
ON `beer-sample` (
STR_TO_MILLIS(updated))
WHERE type = 'beer'
79. Indexing
Arrays
• A nested array may be indexed
• Limit one array per index
• Queries must use array subqueries to use the index
CREATE INDEX routesByFlight
ON `travel-sample` (airline,
DISTINCT ARRAY p.flight
FOR p IN schedule END)
WHERE type = 'route'
80. SQL Server
Index
Consistency
SQL Server updates
indexes as part of the
transaction
Follow-on queries
immediately include
any mutations from the
previous query
Locks are used to
manage isolation
between simultaneous
transactions
83. Querying
With
Consistency –
at_plus
Supply a mutation token, which is returned
from previous mutations
Ensures that the mutations have been
indexed
Slower than not_bounded
More up-to-date results
Also known as Read Your Own Write
(RYOW)
What are some of the questions you have that you’d like to see answered in this presentation?
Who is a SQL Server user?
Who has used NoSQL? Couchbase? MongoDB?
Key-Value = Have a key, set a value
Document = Similar to key value, but with more complex data documents for each key, and often include querying capabilities
Wide Column = Very large rows and columns but no relationships
Graph = Store relationships between objects, easy to answer questions like “who like bananas and wears hoodies?”
Why design a service on SQL today that you think will need NoSQL scale next year?
CouchDB is not Couchbase, two completely different systems (though they are both NoSQL document databases)
Read replicas only help scale out read load, not read and write
Schema-less is something of a misnomer, it’s really just schema that’s not enforced at the database level
Database schema is more of a throwback to the days when multiple applications were reading and writing from the same database, so it was more difficult to maintain consistency
Transactional backups = backup that always captures state between ACID transactions
MongoDB - #1
Couchbase - #3
CouchDB - #4
Azure CosmosDB - #5
Notable exclusions:
Amazon DynamoDB #2 – Limited to AWS (though it can be used from .NET)
Cassandra, Redis – Not document DBs
RavenDB – Has been very popular for .NET historically, but is currently #69 on db-engines.com
Query syntax is limited in terms of joins, unions, etc
Text search is present, but it's limited compared to elasticsearch, etc
.NET SDK follows .NET idioms pretty well, there's a bit of weirdness having to convert objects to BsonDocuments, but it's not that bad
LINQ provider built into Mongo .NET SDK, but limited due to the underlying query capabilities
EF Core Provider???
Scaling is possible, you set up multiple types of nodes, configure sharding
Replication is a master/slave setup, meaning that a single member of the cluster is the master and is the only one allowed to modify data
And that includes between data centers
Indexing is important for querying
Mongo has an in-memory option and an on-disk option
So that's a basic tradeoff you can make
Windows / Mac / Linux
AWS / Azure / Google support (it is VMs)
Docker
DBaaS – lot of managed partners like Mongolab, MongoSoup, etc
MongoDB Atlas is mongo's own managed DBaaS
Licensing! It's AGPL, and some enterprises don't like that. In fact, they list it as a possible weakness/threat in their S-1
I really like N1QL, it’s incredibly easy to learn for a SQL user
I already know how to write SQL, so I can apply that a nosql database
Linq2Couchbase is a linq provider that generates N1QL (it's not officially supported yet)
Multi-master
Security: with 4.x it was *mostly* secure by default
You need to setup a password, but you can create buckets without passwords
With 5.x it is completely secure by default
Mongoose and ottoman allow switch from MongoDB to Couchbase in NodeJS
Explain memcached and couchdb
Windows / Mac / Linux
AWS / Azure / Google support (it is VMs)
Docker
no DBaaS, managed database (yet)
Gitter.im and forums
Mongo-inspired query syntax, based on Cloudant Query this is in version 2.x though
MapReduce which is great for performance, but it is javascript and doesn't accommodate adhoc queries
Mango is "mongo inspired" I don't know if it's mongo compatible or meant to be mongo compatible
You can setup a cluster relatively easy
But you need to run a proxy in front of it, like HAProxy (couchdb recommends)
Sharding you need to configure the number of shards per database
Replication and conflict management is something that couchdb is good at
When removing a node from a cluster you have to make sure to move shards away
So there is some manual work involved in managing scale
Futon is web console in 1.x
Fauxton is web console in 2.x
Insecure by default: anonymous admin access
CouchDb's design assumes that caching will be handled by the operating system, by the browser, by a proxy you setup
Not by couchdb itself
Windows / Mac / Linux
AWS / Azure / Google support (VMs)
Docker (there isn't an official 2.x on docker hub yet)
DBaaS – Cloudant
Cloudant is compatible
Couchbase Lite and Sync Gateway are "compatible" with couchdb (version 2 of Couchbase Lite will probably change that)
But interop between them is not supported
There is a SQL language for CosmosDB but it is very limited
No intra-document joins, no GROUP BY, no insert/update/delete
Cosmos has sprocs, triggers, udfs, but you have to write them in ECMAScript 2015 (JavaScript)
Azure handles the scaling for you
You set request units per second or per minute and cosmos db will scale to handle that
Cosmosdb has 5 consistency options, so you can explicitly trade off between strong consistency and eventual consistency,
"guarantee" is Microsoft's wording
"guarantee" is Microsoft's wording
This is azure only
You can run the emulator on windows, the emulator is not meant for production
But I'm sure some joker is going to try it
The emulator is also available in docker so hypothetically you could deploy that anywhere
Microsoft support only, of course
This is not open source (which used to be implied with Microsoft, but I feel like I have to say that now)
Mobile? look at Couchbase, Sync Gateway, Couchbase Mobile, and maybe CouchDb
Querying? Look at Couchbase, CosmosDb
Cost? Mongo, CouchDb, Couchbase CE
Ops/DevOps proficient? Mongo, CouchDb
Ops/DevOps deficient? CosmosDb, Couchbase, MongoDb Atlas
Hobby? Mongo, CouchDb, Couchbase
Resume? Go with the popular one.
Speed? All pretty good
Transactions? SQL
Security? Be careful with Mongo, CouchDb, not because they are insecure, but because they are insecure by default
Integrations? This is huge. Databases generally don't just sit behind one app. They need to integrate with other software. Maybe stick to relational, unless a connector exists.
Point out Don Chamberlin consults with Couchbase now
Multiple services can be placed on the same node (required for Community Edition)
Single dev node, up to lots and lots of nodes (definitely clusters of 70-80 nodes, I’ve heard rumors of over 200 nodes)
SMP: symmetric multiprocessing, scale up vertically
MPP: massively parallel processing
XDCR and MDS = Enterprise only
Note: Always-On is EXPENSIVE
ODBC = Only for integrations with apps that require flat data
Date/times are sometimes also stored as Unix timestamps instead of ISO8601
Also note IS VALUED and IS NOT VALUED
Note similarities!!!
Note camel casing
Note use of JsonProperty to give more precise names
Key doesn’t need to be stored in it’s complete form
To save space, you just need enough data to recreate the key in your query
Storing the whole key is usually simpler
You can create custom DocumentFilter attributes to filter in other ways
They can also be applied programmatically instead of declaratively
Non-first normal form query language
Note how incredibly similar to an ANSI SQL query this is
Difference from T-SQL is primarily LIMIT instead of TOP
Note the ON KEYS clause, which identifies what document keys on the left to select
This clause can be built using an expression from attributes in the route, if needed
Second from statement is equivalent to .SelectMany() functional syntax
Filtering on the “type” attribute makes an index more like a SQL table index
This index is a case insensitive version of the previous index
Using STR_TO_MILLIS accounts for time zone offsets in ISO 8601, which simple string comparisons does not
This index allows you to find routes that contain a specific flight number, even though the flight number is nested within an array