This document discusses how SQL Server Service Broker can help with scaling out databases by enabling reliable messaging between sharded database partitions. It covers concepts like sharding, partitioning, replication, and how Service Broker allows propagating messages between shards to maintain consistency when data is divided across multiple database instances.
This document provides an overview and comparison of several high availability solutions in SQL Server 2012 including database mirroring, failover clustering, transactional replication, log shipping, and AlwaysOn availability groups. Database mirroring provides redundancy using log transfer but requires separate instances, while failover clustering uses a virtual service name across nodes but requires shared storage. Transactional replication supports load balancing across multiple subscribers. Log shipping and database mirroring both rely on log backups and restores but log shipping allows read access during restore. AlwaysOn maximizes availability across databases in an availability group using Windows clustering without shared disks.
A distributed database is a collection of logically interrelated databases distributed over a computer network. It uses a distributed database management system (DDBMS) to manage the distributed database and make the distribution transparent to users. There are two main types of DDBMS - homogeneous and heterogeneous. Distributed databases improve availability, scalability and performance but introduce complexity in management, security and consistency compared to centralized databases. Transaction management and recovery are more challenging in distributed databases due to potential failures across multiple sites.
1. The document discusses various technologies for building big data architectures, including NoSQL databases, distributed file systems, and data partitioning techniques.
2. Key-value stores, document databases, and graph databases are introduced as alternatives to relational databases for large, unstructured data.
3. The document also covers approaches for scaling databases horizontally, such as sharding, replication, and partitioning data across multiple servers.
it is all about types of server. And in this file defines all the types of servers and detail of all type. And after this you will be able to know about all server types and details of these servers.
Database server and client are two important software that you need to work with databases. In order to use SQL to interact with a database server you must use a good database client software.
This presentation explains the concept of a database server and a client.
24 Hours Of Exchange Server 2007 (Part 1 Of 24)Harold Wong
- Exchange Server 2007 integrates tightly with Active Directory for routing mail between sites and managing permissions for administrators.
- It uses Active Directory sites and site links to determine the optimal route for mail delivery within an organization.
- Exchange Server 2007 introduced new predefined administrator roles that simplify assigning permissions compared to previous versions.
24 Hours Of Exchange Server 2007 (Part 8 Of 24)Harold Wong
The document introduces Windows PowerShell and discusses how it can be used for Exchange Server administration. Some key points covered include:
- Windows PowerShell provides a command-line interface and scripting environment for automating Exchange Server tasks.
- PowerShell scripts allow administrators to combine multiple administrative tasks and reuse scripts for bulk operations and task automation.
- Basic PowerShell syntax and commands are demonstrated for retrieving user mailbox information, sorting output, and redirecting output to files.
- Scripting in PowerShell provides a more secure environment than traditional scripts, with signing and execution policies to control script security.
24 Hours Of Exchange Server 2007 (Part 3 Of 24)Harold Wong
This document discusses planning and requirements for installing Microsoft Exchange Server 2007. It reviews the different server roles in Exchange 2007 like Mailbox, Client Access, Hub Transport, and Edge Transport servers. Hardware requirements for servers include minimum 2GB RAM and available disk space. Supported client software includes Microsoft Office Outlook 2007, 2003 but not 2000. Operating system prerequisites are .NET Framework 2.0, Windows PowerShell and schema prepared Active Directory. The presenter demonstrates checking prerequisites and installing server roles.
What is Server? (Web Server vs Application Server)Amit Nirala
What is Server?
Primary functions of Computer Server?
Difference between Web Server And Application Server?
Web Server vs Application Server.
Why Application server is a superior Server?
Functions of Application Server?
Application Server in 3-tier Application Architecture?
Functions of Web Server?
Enterprise applications runs on Application Server or Web Server?
The Database connector allows connecting to relational databases using JDBC and performing SQL operations like select, insert, update, delete, and stored procedures. It supports predefined and dynamic queries, templates, and bulk updates. DataSense uses query metadata to extract message data types for mapping. The DataMapper transformer can automatically map fields when used with a DataSense-enabled Database connector. Supported operations include select, insert, update, delete, stored procedures, bulk execute, and DDL. Configuration requires a Database connector, global connector, and installed driver.
The document discusses SOA and NServiceBus. SOA aims to reduce coupling between systems through messaging and pub/sub. NServiceBus is a .NET messaging solution that uses an asynchronous distributed bus to enable loose coupling between services. It allows services to publish and subscribe to messages to communicate. NServiceBus provides benefits like scalability, durability, and improved developer productivity compared to traditional n-tier architectures. The document provides examples of how services can use events and handlers with NServiceBus to integrate and communicate asynchronously.
This document provides an overview of Microsoft Azure Service Bus and compares it to Azure Queues. Service Bus allows applications and services to communicate over reliable messaging even if they are not connected all the time. It supports queuing and publish/subscribe capabilities. Service Bus Queues offer more features than Azure Queues, including larger message sizes, unlimited time-to-live for messages, and publish/subscribe capabilities using topics and subscriptions. The document also describes how to configure applications to use Service Bus Queues and Relay for communication between apps and services.
The document provides information about web servers, database servers, and popular open source software used for each. It discusses what a web server and database server are, how they work, examples of common software like Apache and MySQL, and steps to install and configure Apache and MySQL on Ubuntu.
ActiveMQ is an open source message broker built with Java that supports Java standards like JMS and J2EE. It allows applications to communicate asynchronously by sending and receiving messages through topics and queues. Messages consist of headers and a body that can contain different types of data like XML, text, or binary objects. ActiveMQ provides features like message durability, persistence, content-based filtering using SQL, and scalability.
Web services allow applications to communicate over the web through standard protocols like HTTP and XML. There are two main types of web services: REST services which rely on HTTP verbs to manipulate resources identified by URIs, and SOAP services which use XML and HTTP to define structured messages to access services described in a WSDL file. SOAP services require more overhead for message formatting and processing compared to the lighter-weight REST approach.
Security is more critical than ever with new computing environments in the cloud and expanding access to the internet. There are a number of security protection mechanisms available for MongoDB to ensure you have a stable and secure architecture for your deployment. Dave Erickson will walk through general security threats to databases and specifically how they can be mitigated for MongoDB deployments. Rob Moore will then go into depth on the specific topic of setting up and running MongoDB with TLS/SSL and x.509 authentication covering how it works and common errors he's encountered in the field.
The document discusses the client-server architecture, including its definition, timeline, types of servers, tiers, protocols, and future directions. The client-server model involves clients sending requests to servers which process and return responses. It has evolved from mainframe computers to today's multi-tier architectures with web, application, and database servers. Protocols like HTTP, TCP/IP, and FTP are used to facilitate communication between clients and servers. Cloud computing is presented as the future direction rather than traditional client-server systems.
HTTP is the protocol that allows sending documents back and forth on the web. It uses a client-server model where clients initiate interactions by sending requests to servers, which then respond. Requests use methods like GET, POST, PUT, and DELETE and include headers and an optional body. Responses include headers, like Content-Type, and a body. REST is an architectural style that uses HTTP to build applications by representing resources with URLs and manipulating them via representations. It applies constraints like using a client-server architecture, stateless communication, caching, and a uniform interface.
- The document discusses the differences between MongoDB Operations Manager, MongoDB Cloud Manager, and MongoDB Atlas for managing a MongoDB database server on a private multi-national cloud.
- It recommends using a sharded MongoDB topology to store each country's data locally due to data locality laws while allowing a single view of data across countries.
- It provides an overview of cloud computing, Platform as a Service (PaaS), and suggests using Cloud Foundry as a PaaS for automatically deploying, configuring, scaling, and managing applications on the cloud.
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
A high level introduction to CQRS (command and query responsibility segregation), CQS (command query separation), DDD (domain driven design), DDD-D ...with distributed, and how all those weave together.
This document provides a summary of a session on SQL Server security and authentication using ADO.NET. The session discusses SQL Server authentication modes including Windows authentication and SQL Server authentication. It demonstrates how to programmatically manage SQL Server logins, roles, and permissions from VB.NET. The document also covers application security techniques using views, stored procedures and SQL Server application roles to restrict database access.
MySQL is the most popular database on the web but how do you keep your data safe as it is virtualized, contained, put into the cloud, replicated, and sharded out to servers where DBAs have minimal actual control.
- Microsoft SQL Server is a relational database management system developed by Microsoft that allows for storing and retrieving data. It provides scalability, integration with .NET, web services support, and tools for data migration and analysis.
- It includes components like the Database Engine, Integration Services, Analysis Services, and Reporting Services.
- Users connect to SQL Server using a login and are mapped to database users to access specific databases. Databases can be created, backed up, restored, and monitored for slow queries. Backups can also be moved to object storage like Amazon S3.
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseEric Bragas
This document discusses modern Extract, Transform, Load (ETL) tools in Azure, including Azure Data Factory, Azure Data Lake, and Azure SQL Database. It provides an overview of each tool and how they can be used together in a data warehouse architecture with Azure Data Lake acting as the data hub and Azure SQL Database being used for analytics and reporting through the creation of data marts. It also includes two demonstrations, one on Azure Data Factory and another showing Azure Data Lake Store and Analytics.
Exploring the Fundamentals of YugabyteDB - Mydbops Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops MyWebinar Edition 25
Join us for an enlightening journey into the world of YugabyteDB, a distributed SQL database revolutionizing data management. In this webinar presentation, we delve into the challenges faced by traditional databases, explore the architecture and unique features of YugabyteDB, and showcase its seamless scalability and fault tolerance.
Watch the full recording: https://youtu.be/QtvK-apLBwQ
Visit Mydbops Blogs: https://www.mydbops.com/blog/
Presentation by Shree Prasad Khanal, Leader, Himalayan SQL Server User Group, on "Where should I be encrypting my data? " at "Braindigit 9th National ICT Conference 2013" organized by Information Technology Society, Nepal at Alpha House, Kathmandu, Nepal on 26th January, 2013
This document summarizes a PyCon India 2012 presentation about Pycassa, a Python library for Cassandra. The presentation covers:
- An introduction to NoSQL databases and Cassandra's data model
- Using Pycassa to create a Cassandra keyspace and column families, insert and retrieve data in bulk and individually, and count rows
- How Cassandra provides tunable consistency, elastic scalability, and fault tolerance through replication and its gossip protocol
- References for further exploring Pycassa and Cassandra
The document discusses SQL Server security and authentication methods when connecting from an application using ADO.NET, including SQL Server authentication with usernames and passwords versus Windows authentication using Windows credentials, as well as ways to control access to databases and objects using roles, permissions, and application roles within SQL Server. It also provides examples of managing authentication and security programmatically using Transact-SQL, SQL-DMO, and ADO.NET code samples.
In this session we will see what are the scalabilities points of a cloud application. In the first part of the session we will look over the services offered by Windows Azure.
Supporting architecture office 365 on windows azure Jethro Seghers
This document summarizes an agenda for supporting Office 365 architecture on Windows Azure infrastructure as a service (IaaS). It discusses different identity options including directory synchronization and Active Directory Federation Services. It provides details on directory synchronization, including how it works and which objects are synced. It also covers ADFS topologies for hybrid deployments in IaaS and considerations for deploying ADFS in Windows Azure, including terminology like availability sets and endpoints. The document concludes with a brief overview of migrating directory synchronization and ADFS from on-premises to Windows Azure.
Supporting architecture office 365 on windows azure Jethro Seghers
This document summarizes an agenda for supporting Office 365 architecture on Windows Azure infrastructure as a service (IaaS). It discusses different identity options including directory synchronization and Active Directory Federation Services. It provides details on directory synchronization, including how it works and which objects are synced. It also covers ADFS topologies for hybrid deployments in IaaS and considerations for deploying ADFS in Windows Azure, including terminology like availability sets and endpoints. The document concludes with a brief overview of migrating directory synchronization and ADFS from on-premises to Windows Azure.
This document discusses patterns for scaling systems incrementally. It introduces the ACD/C approach of making systems async, caching results, distributing work, and compromising on consistency as needed. Specific architectures like map reduce and distributed queues are presented. The challenges of partial failures, upgrades, and changing topologies are discussed. Testing is emphasized as critical for managing scaled systems.
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.
The document discusses how containers can help with database development. Containers provide a consistent and isolated environment for applications and databases. They allow developers to easily branch and experiment without affecting other work. Containers also enable continuous integration by providing a known starting state for testing database applications. Developers can quickly reset containers to fix mistakes. Overall, containers streamline database development tasks and reduce infrastructure dependencies.
Kumar Nithick is a Windows and Exchange administrator seeking a position that allows him to grow his technical skills. He has over 12 years of experience administering Windows servers, Active Directory, Exchange, Hyper-V, and SCVMM. His most recent role involved Exchange administration, Windows migrations, troubleshooting, and coordinating with other teams. He is proficient in Dell and HP hardware support, Windows clustering, and SCVMM.
Tomcat is a container that handles requests and provides services to web applications. It extends the Apache web server and acts as a simple standalone server for applications using HTML, servlets, and JSPs. Alternative containers include JBoss, which provides additional Java EE features but may be more difficult to install than Tomcat. Containers help concentrate on business logic rather than programming details by handling communication, lifecycles, multithreading, security, and other services for applications.
Simplify Your Database Migration to AWS | AWS Public Sector Summit 2016Amazon Web Services
Migrating a database from one platform to another has been a pain point for many organizations for a long time. Often times, it involves weeks of careful planning and a migration strategy to minimize impact to the business. Many organizations are locked into a database platform even when there are better options available because they don’t want to take up the migration challenge. AWS Data Migration Service helps with live migration of databases across homogenous or heterogeneous database platforms. The service supports homogenous migrations such as Oracle to Oracle, and also heterogeneous migrations between different database platforms, such as Oracle to Amazon Aurora or Microsoft SQL Server to MySQL. The AWS Schema Conversion Tool is a desktop application that makes heterogeneous database migrations easy by automatically converting the source database schema to a format compatible with the target database. The tool helps with conversion of a database schema from an Oracle or Microsoft SQL Server database to an Amazon RDS MySQL DB instance or an Amazon Aurora DB cluster. Join us in this session to explore how these capabilities can simplify your database migration challenge.
NoSQL for SQL Server Developers using CouchbaseBrant Burnett
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.
Similar to SQL Server -Service Broker - Reliable Messaging (20)
концепт и архитектура геймплея в Creach: The Depleted WorldSperasoft
Presentation by Evgeniy Muralev (Sperasoft) and Konstantin Muralev (Trace studio) during Unreal Engine 4 MeetUp at Sperasoft office in St.Petersburg
April 8th, 2017
This document discusses code and memory optimization techniques for software engineers developing AAA game titles. It begins with an introduction to the speaker and provides an overview of hardware architecture including CPU registers, caches, and memory access times. The bulk of the document focuses on optimizing for data caches through techniques like improving data layout, prefetching, and utilizing cache lines efficiently. It also discusses optimizing branches through removing branches, computing both paths, and splitting data to avoid branches. Resources for further reading are provided.
The document discusses key concepts in relational database models including:
- Data is stored in tables called relations with rows and columns where rows represent records and columns represent attributes.
- Relations can be normalized to eliminate redundant data and optimize storage.
- Database normalization involves organizing data into tables through a multi-step process to remove anomalies.
- SQL is a programming language used to interact with relational databases through operations like joins, transactions, and indexing/hashing techniques.
Automated layout testing using Galen FrameworkSperasoft
The Galen framework allows testing page layouts using Selenium and by verifying elements' positions relative to each other. It uses .gspec files to describe layouts with objects, groups, sections and tags. Verifications include checking widths, heights, alignments, text values, and relative positions using keywords like "near", "inside" and ranges. Results can be saved to HTML reports.
The document discusses various security threats related to Android applications. It begins by introducing the OWASP Mobile Top 10 risks framework for categorizing common mobile vulnerabilities. It then provides more details on each of the top 10 risk categories, including examples, impacts, and tips for prevention. It also discusses techniques for protecting Android apps from reverse engineering and tampering, such as code obfuscation, anti-debugging, and license verification.
Sperasoft Talks: RxJava Functional Reactive Programming on AndroidSperasoft
RxJava is a library for composing asynchronous and event-based programs by using observable sequences. It provides APIs for asynchronous programming using observable streams and the observer pattern to allow publishing and subscribing to multiple streams of events. Some key features include transformations on observable streams, combining multiple observables, filtering streams, and handling asynchronous operations without callbacks using reactive extensions. The document provides examples of creating observables from various sources, transforming streams through mapping and filtering, and combining multiple observables. It also discusses subjects, schedulers, and how RxJava can help eliminate AsyncTasks for asynchronous operations on Android.
This document provides an overview and agenda for the JPoint 2015 conference. It includes summaries of sessions on memory leaks profiling basics, notes about the Java String class, defining and measuring technical debt, how regular expressions work under the hood, and using memory dumps and analysis tools to find memory leaks. The agenda outlines sessions on memory regions, garbage collection, identifying memory leaks through examples, JVM options for logs and dumps, String class internals, technical debt concepts, and regular expression matching algorithms.
This document provides guidance on how to make meetings effective. It discusses preparing for meetings by defining goals, inviting the right participants, and sending agendas in advance. It recommends best practices during meetings, such as arriving on time, following the agenda, and sticking to time limits. Follow-up is also important, such as sending meeting minutes, tracking action items, and monitoring progress. Regular status meetings should review what was accomplished, next steps, and any issues in a short 15 minute stand-up format.
This document provides an overview of Unreal Engine 4 (UE4) and summarizes its features for game and app development. It covers UE4 project setup, game logic creation tools like Blueprints that improved on UE3 tools, a new UI system called Slate, automation testing capabilities, physically based materials, mobile development support across platforms, performance optimization techniques, and content creation guidelines.
JIRA is a bug tracking and issue tracking tool that allows users to manage issues, workflows, users and security. It also has a powerful plugin system that allows for customization. The document discusses building custom plugins and modules for JIRA, including different plugin module types. It also covers challenges like migrating configurations between environments and building custom data models and fields in JIRA.
The document provides an overview of Elasticsearch including that it is easy to install, horizontally scalable, and highly available. It discusses Elasticsearch's core search capabilities using Lucene and how data can be stored and retrieved. The document also covers Elasticsearch's distributed nature, plugins, scripts, custom analyzers, and other features like aggregations, filtering and sorting.
This document discusses mobile development using HTML, CSS, and JS. It covers developing for mobile by using web technologies that allow working offline, though early attempts were difficult. Frameworks like Ionic, Bootstrap, and libraries like jQuery UI, AngularJS, and EmberJS help build mobile apps with touches, swipes and bars as the UI. Containers like Apache Cordova allow building native mobile apps with full browser capabilities and offline access. The document compares PhoneGap to Cordova and covers debugging Android, iOS, and Windows Phone mobile apps.
Kanban is an agile method that uses a visual board with columns to manage work in progress. It focuses on limiting work-in-progress instead of having sprints or deadlines. Kanban can be better than Scrum for small teams, startups, or when tasks are variable since it allows for faster feature deployment without fixed timeboxes and less process overhead. The key aspects of Kanban include a customizable board with columns, optional constraints on work-in-progress per column, and an optional expedite row to prioritize certain tasks.
Sperasoft talks about several important aspects of ECMAScript6 - language widely used for client-side scripting on the web, in the form of several well-known implementations such as JavaScript, JScript and ActionScript.
Sperasoft is a game development company specializing in console development. This document provides tips for console development including considerations for different hardware platforms, using development kits to debug platform-specific issues, optimizing for limited memory and performance, following development processes, and addressing technical requirements checklists.
The History of Embeddings & Multimodal EmbeddingsZilliz
Frank Liu will walk through the history of embeddings and how we got to the cool embedding models used today. He'll end with a demo on how multimodal RAG is used.
Keynote : AI & Future Of Offensive SecurityPriyanka Aash
In the presentation, the focus is on the transformative impact of artificial intelligence (AI) in cybersecurity, particularly in the context of malware generation and adversarial attacks. AI promises to revolutionize the field by enabling scalable solutions to historically challenging problems such as continuous threat simulation, autonomous attack path generation, and the creation of sophisticated attack payloads. The discussions underscore how AI-powered tools like AI-based penetration testing can outpace traditional methods, enhancing security posture by efficiently identifying and mitigating vulnerabilities across complex attack surfaces. The use of AI in red teaming further amplifies these capabilities, allowing organizations to validate security controls effectively against diverse adversarial scenarios. These advancements not only streamline testing processes but also bolster defense strategies, ensuring readiness against evolving cyber threats.
Discovery Series - Zero to Hero - Task Mining Session 1DianaGray10
This session is focused on providing you with an introduction to task mining. We will go over different types of task mining and provide you with a real-world demo on each type of task mining in detail.
"Hands-on development experience using wasm Blazor", Furdak Vladyslav.pptxFwdays
I will share my personal experience of full-time development on wasm Blazor
What difficulties our team faced: life hacks with Blazor app routing, whether it is necessary to write JavaScript, which technology stack and architectural patterns we chose
What conclusions we made and what mistakes we committed
DefCamp_2016_Chemerkin_Yury-publish.pdf - Presentation by Yury Chemerkin at DefCamp 2016 discussing mobile app vulnerabilities, data protection issues, and analysis of security levels across different types of mobile applications.
Finetuning GenAI For Hacking and DefendingPriyanka Aash
Generative AI, particularly through the lens of large language models (LLMs), represents a transformative leap in artificial intelligence. With advancements that have fundamentally altered our approach to AI, understanding and leveraging these technologies is crucial for innovators and practitioners alike. This comprehensive exploration delves into the intricacies of GenAI, from its foundational principles and historical evolution to its practical applications in security and beyond.
Self-Healing Test Automation Framework - HealeniumKnoldus Inc.
Revolutionize your test automation with Healenium's self-healing framework. Automate test maintenance, reduce flakes, and increase efficiency. Learn how to build a robust test automation foundation. Discover the power of self-healing tests. Transform your testing experience.
The Challenge of Interpretability in Generative AI Models.pdfSara Kroft
Navigating the intricacies of generative AI models reveals a pressing challenge: interpretability. Our blog delves into the complexities of understanding how these advanced models make decisions, shedding light on the mechanisms behind their outputs. Explore the latest research, practical implications, and ethical considerations, as we unravel the opaque processes that drive generative AI. Join us in this insightful journey to demystify the black box of artificial intelligence.
Dive into the complexities of generative AI with our blog on interpretability. Find out why making AI models understandable is key to trust and ethical use and discover current efforts to tackle this big challenge.
Demystifying Neural Networks And Building Cybersecurity ApplicationsPriyanka Aash
In today's rapidly evolving technological landscape, Artificial Neural Networks (ANNs) have emerged as a cornerstone of artificial intelligence, revolutionizing various fields including cybersecurity. Inspired by the intricacies of the human brain, ANNs have a rich history and a complex structure that enables them to learn and make decisions. This blog aims to unravel the mysteries of neural networks, explore their mathematical foundations, and demonstrate their practical applications, particularly in building robust malware detection systems using Convolutional Neural Networks (CNNs).
Redefining Cybersecurity with AI CapabilitiesPriyanka Aash
In this comprehensive overview of Cisco's latest innovations in cybersecurity, the focus is squarely on resilience and adaptation in the face of evolving threats. The discussion covers the imperative of tackling Mal information, the increasing sophistication of insider attacks, and the expanding attack surfaces in a hybrid work environment. Emphasizing a shift towards integrated platforms over fragmented tools, Cisco introduces its Security Cloud, designed to provide end-to-end visibility and robust protection across user interactions, cloud environments, and breaches. AI emerges as a pivotal tool, from enhancing user experiences to predicting and defending against cyber threats. The blog underscores Cisco's commitment to simplifying security stacks while ensuring efficacy and economic feasibility, making a compelling case for their platform approach in safeguarding digital landscapes.
2. • Scalability – what does Scale Out means?
• Sharding
• Problems of sharding
• How does Service Broker help?
Agenda
3. • Is the ability of a system to handle growing
amount of work in a capable manner
• or its ability to be enlarged to accommodate
that growth
http://en.wikipedia.org/wiki/Scalability
Scalability
4. • Scale up – scale vertically
• Scale out – scale horizontally
Scalability Methods
5. • means vertically
• add resources to a single node in a system
– CPU
– memory
– storage
– etc
Scaling Up
6. • means horizontally
• add more nodes to a system
• in databases that’s called Sharding
• Microsoft used another term in SQL Azure -
Federations
Scaling Out
7. • Twitter Gizzard -
https://github.com/twitter/gizzard
• written in Scala
Sharding Frameworks
9. • Data is divided into chunks
• Stored across computers
• Each chunk is small enough that we can
manipulate and query efficiently
User = “Denis” User = “Eva”
Partitioning
10. • multiple copies of data are stored across
several machines
• efficiently responds to tons of queries
• resilient to failures
User = “Denis”
User = “Eva”
User = “Denis”
User = “Eva”
Replication
11. Besides Scaling Out:
• Disaster Recovery strategies have You to make
database backups
• Replicated shards are working copies
• Need a new backup? Replicate a new Shard!
Benefits of Sharding
12. • Yes! Sharding is difficult!
• We have to think of how to partition our data
correctly
• How to ensure that all copies of data are
consistent?
• Write conflicts – no guarantee that operations
will apply in order
Are there any Problems?
13. • “Shared Nothing Architecture”
• no ongoing need to retain shared access
between shards
• each Shard can live in a totally separate
– instance
– database server
– data center
– continent
Design Principle
14. • Orders table is partitioned by Region
• Orders references to Users
• Users is not partitioned, it is replicated
• How to maintain Users in a consistent state?
Users (not partitioned)
Orders [Region = “US”]
Users (not partitioned)
Orders [Region = “Russia”]
Partitioning Problem
15. Wall Statuses
User [Name = “Denis”]
Wall Statuses
User [Name = “Eva”]
Front-End
POST
Denis writes a new Status
GET
We should see that status
on Eva’s wall
How do we get Denis’ statuses?
Facebook Sample
16. Wall Statuses
User [Name = “Denis”]
Wall Statuses
User [Name = “Eva”]
Front-End
POST
Denis writes a new Status
POST
Duplicate the status?
No benefit from Shards then! Wrong!
Possible Solution 1
17. Wall Statuses
User [Name = “Denis”]
Wall Statuses
User [Name = “Eva”]
Front-End
POST
Denis writes a new Status
GET
Gets a user data
No benefit from Shards then! Wrong!
Possible Solution 2
18. Wall Statuses
User [Name = “Denis”]
Wall Statuses
User [Name = “Eva”]
Front-End
POST
Denis writes a new Status
POST
Propogate the status
GET
All OK
Real Solution
19. • custom application which reads from one
Shard and writes to the others
• add all Shards as Linked servers, write stored
procedures to write a new record to each
remote server
• SQL Server Service Broker
Possible Technologies
20. • allows Internal and External processes to send
and receive guaranteed asynchronous
messages
• messages are sent to Queues in the same
database, same instance, same server,
another database, another instance, remote
server
Service Broker
21. the largest known implementation is in MySpace
• 440 SQL Server instances
• over 1,000 databases
• 1 Petabyte of data (1 million gigabytes)
Performance:
• 5,000 messages/second in Labs
• 18,000 messages/second in MySpace
Implementations
22. • Always Transactional
• Asynchronous
• Queued
• All messages are in XML format
• Routing
• Multicast messages in SQL Server 2012
Advantages
23. • No Administration Tools – not a lack - no at all
• Queue is a Table in database – index
fragmentation when we cannot empty queue
• complicated T-SQL syntax and object model
Disadvantages
24. • Message Types
• Contracts
• Queues
• Services
• Routes
• Activation
• Remote Service Bindings
• Dialog Conversation
• Conversation Groups
Service Broker Concepts
25. • Dialog Security – between two Services
– encrypts messages in a dialog conversation
– provides the remote authorization
• Transport Security
– establishes an authenticated network connection
between two Databases
Service Broker Security
26. • Enable Service Broker at Database level
ALTER DATABASE SampleDatabase
SET ENABLE_BROKER;
GO
• Always enable Service Broker in MSDB system database in each SQL Server
instance
• Enable SQL Server to communicate to another instance at Database level
ALTER DATABASE SampleDatabase
SET TRUSTWORTHY ON;
GO
SQL Server Configuration
27. • Create Send Message type
CREATE MESSAGE TYPE NewUserRequest
VALIDATION = WELL_FORMED_XML;
• Create Receive Message Type
CREATE MESSAGE TYPE NewUserResponse
VALIDATION = WELL_FORMED_XML;
Message Types
28. • create Contract between two services
CREATE CONTRACT NewUserContract (
NewUserRequest SENT BY INITIATOR,
NewUserResponse SENT BY TARGET
);
Service Contracts
29. CREATE QUEUE NewUserReceiveQueue
WITH STATUS = ON,
ACTIVATION (
PROCEDURE_NAME = OnReceiveNewUser,
MAX_QUEUE_READERS = 5,
Execute AS 'dbuser‘
) ;
CREATE QUEUE NewUserSendQueue
WITH STATUS = ON;
Queues
30. • Service will be listening for messages in a queue and react
only on those which apply to the spicified contract
CREATE SERVICE NewUserSendService
ON QUEUE NewUserSendQueue (
[NewUserContract]
);
CREATE SERVICE NewUserReceiveService
ON QUEUE NewUserReceiveQueue (
[NewUserContract]
);
Services
31. Sender:
• begins a transaction
• begins a dialog conversation from
NewUserSendService to NewUserReceiveService
• sends one or more XML messages to that dialog
• commits a transaction
• Waits for a Reply message
• Processes Reply messages when arrived
Sending a Messgae
32. Receiver (Target):
• when a new message is delivered to Receiver's
NewUserReceiveQueue the OnReceiveNewUser stored
procedure is activated by Service Broker
• Stored procedure begins a transaction
• receives messages out of the NewUserReceiveQueue
queue
• sends Reply messages
• ends a dialog conversation
• Do what you want with that message
• commits a transaction
Receiving a Message