Evaluating NoSQL performance: Which database is right for your data? - Sergey...jaxLondonConference
Presented at JAX London 2013
The need to operate terabyte-size databases becomes very common these days. Unless you have implemented architectures that use NoSQL databases and frameworks that support data-intensive distributed applications, then many technology options available are probably a slight enigma. This session focuses on real-world successful attempts to benchmark four of the most popular NoSQL databases side by side. The base tool selected for the purpose of this research is Yahoo Cloud Serving Benchmark and benchmarking is performed on Amazon Elastic Compute Cloud instances.
In the second part of a 4 series presentation, I will go over how to configure 2 CentOS servers to operate on dedicated VLANs with a FortiGate appliance.
YouTube presentation is available here: https://www.youtube.com/watch?v=GqwRov972ng
Evaluating NoSQL performance: Which database is right for your data? - Sergey...jaxLondonConference
Presented at JAX London 2013
The need to operate terabyte-size databases becomes very common these days. Unless you have implemented architectures that use NoSQL databases and frameworks that support data-intensive distributed applications, then many technology options available are probably a slight enigma. This session focuses on real-world successful attempts to benchmark four of the most popular NoSQL databases side by side. The base tool selected for the purpose of this research is Yahoo Cloud Serving Benchmark and benchmarking is performed on Amazon Elastic Compute Cloud instances.
In the second part of a 4 series presentation, I will go over how to configure 2 CentOS servers to operate on dedicated VLANs with a FortiGate appliance.
YouTube presentation is available here: https://www.youtube.com/watch?v=GqwRov972ng
CCNA DC ,CCNP DC ,CCIE DC ,CCIE DC RACK RENTALS ,CCIE DC LEARNING PPT ,CCIE DC ONLINE TRAINING.
UCS RACK RENTALS ,MDS RACK RENTALS ,NEXUS 7000 RACK RENALS
NCompass Live - May 29, 2019
http://nlc.nebraska.gov/ncompasslive/
Interested in exploring virtual reality but have no idea where to begin? Is it a passing fad or something that would benefit your patrons? What challenges can you expect to encounter when bringing VR (or XR, AR, etc.) to your library? This presentation will outline some of the different platforms, including Oculus Go, Oculus Rift, HTC Vive, and Playstation VR, that we have considered for adoption and the rationale behind our choices. We will discuss such concerns as space requirements, costs, pedagogical strengths and limitations, as well as patron access policies and necessary infrastructure. Come get real with us!
Presenters: Christine Fullerton and Nate Doherty, Chadron (NE) State College and Carl Spicher, Chadron Public Library.
This presentation contains information on the test environment, settings, major criteria for evaluation, and component diagrams that can help you to test a NoSQL data store for your project. It also provides a matrix that compares a number of NoSQL products based on our test results. We also list the issues we encountered and some approaches we used to overcome them.
For more independent research into Hadoop, NoSQL, and other big data technologies, please visit www.altoros.com/research-papers or follow @altoros.
This presentation was given to the Dublin Node (JS) Community on May 29th 2014.
Presented by: Chris Lawless, Kevin Yu Wei Xia, Fergal Carroll @phergalkarl, Ciarán Ó hUallacháin, and Aman Kohli @akohli
INDUSTRY-LEADING TECHNOLOGY FOR LONG TERM RETENTION OF BACKUPS IN THE CLOUDEMC
CloudBoost is a cloud-enabling solution from EMC
Facilitates secure, automatic, efficient data transfer to private and public clouds for Long-Term Retention (LTR) of backups. Seamlessly extends existing data protection solutions to elastic, resilient, scale-out cloud storage
One of the key challenges for all public cloud providers, not just Oracle, is how to securely and reliably connect cloud services to their customers’ existing systems. This presentation provides an impartial view of Oracle Network Cloud’s three offerings, with a more detailed drill down into the VPN available for shared compute cloud.
First delivered by Simon Haslam on 6 December 2016 at the UKOUG Tech16 conference
Infrastrukturen til fremtidens løsninger
Kravene til din kablede infrastruktur øges hele tiden på grund af nye hastigheder og nye applikationer. Hastigheder på 10/40 Gbit Ethernet på kobber og 40/100/400 Gbit på fiber stiller krav til din installationen på samme måde som nye applikationer gør det. Det er bl.a. applikationer som Distribueret sensor netværk og LED belysning, indendørs mobildækning og nye PoE over WLAN standarder samt bygningsstyring.
CCNA DC ,CCNP DC ,CCIE DC ,CCIE DC RACK RENTALS ,CCIE DC LEARNING PPT ,CCIE DC ONLINE TRAINING.
UCS RACK RENTALS ,MDS RACK RENTALS ,NEXUS 7000 RACK RENALS
NCompass Live - May 29, 2019
http://nlc.nebraska.gov/ncompasslive/
Interested in exploring virtual reality but have no idea where to begin? Is it a passing fad or something that would benefit your patrons? What challenges can you expect to encounter when bringing VR (or XR, AR, etc.) to your library? This presentation will outline some of the different platforms, including Oculus Go, Oculus Rift, HTC Vive, and Playstation VR, that we have considered for adoption and the rationale behind our choices. We will discuss such concerns as space requirements, costs, pedagogical strengths and limitations, as well as patron access policies and necessary infrastructure. Come get real with us!
Presenters: Christine Fullerton and Nate Doherty, Chadron (NE) State College and Carl Spicher, Chadron Public Library.
This presentation contains information on the test environment, settings, major criteria for evaluation, and component diagrams that can help you to test a NoSQL data store for your project. It also provides a matrix that compares a number of NoSQL products based on our test results. We also list the issues we encountered and some approaches we used to overcome them.
For more independent research into Hadoop, NoSQL, and other big data technologies, please visit www.altoros.com/research-papers or follow @altoros.
This presentation was given to the Dublin Node (JS) Community on May 29th 2014.
Presented by: Chris Lawless, Kevin Yu Wei Xia, Fergal Carroll @phergalkarl, Ciarán Ó hUallacháin, and Aman Kohli @akohli
INDUSTRY-LEADING TECHNOLOGY FOR LONG TERM RETENTION OF BACKUPS IN THE CLOUDEMC
CloudBoost is a cloud-enabling solution from EMC
Facilitates secure, automatic, efficient data transfer to private and public clouds for Long-Term Retention (LTR) of backups. Seamlessly extends existing data protection solutions to elastic, resilient, scale-out cloud storage
One of the key challenges for all public cloud providers, not just Oracle, is how to securely and reliably connect cloud services to their customers’ existing systems. This presentation provides an impartial view of Oracle Network Cloud’s three offerings, with a more detailed drill down into the VPN available for shared compute cloud.
First delivered by Simon Haslam on 6 December 2016 at the UKOUG Tech16 conference
Infrastrukturen til fremtidens løsninger
Kravene til din kablede infrastruktur øges hele tiden på grund af nye hastigheder og nye applikationer. Hastigheder på 10/40 Gbit Ethernet på kobber og 40/100/400 Gbit på fiber stiller krav til din installationen på samme måde som nye applikationer gør det. Det er bl.a. applikationer som Distribueret sensor netværk og LED belysning, indendørs mobildækning og nye PoE over WLAN standarder samt bygningsstyring.
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceOlga Lavrentieva
Сергей Ковалёв: Solutions Architect, Big Data/High-performance Computation Expert в Altoros; г.Минск
Доклад: «Practical Steps to Improve Apache Hive Performance»
Владимир Иванов (Oracle): Java: прошлое и будущееOlga Lavrentieva
Владимир Иванов: Software Engineer / Principal Member of Technical Staff в Oracle; г.Санкт-Петербург
Ведущий инженер Oracle, работает в группе разработки виртуальной Java-машиныHotSpot. Специализируется на JIT-компиляции и поддержке альтернативных языков на платформе Java.
Доклад: «Java: прошлое и будущее».
Александр Протасеня: "PayPal. Различные способы интеграции"Olga Lavrentieva
Александр Протасеня (.Net Developer в Altoros): "PayPal. различные способы интеграции"
- Classic API, Subscriptions, Express Checkout, использование IPN. Разбор наиболее частых проблем.
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Olga Lavrentieva
Сергей Черничков (.Net Developer в Altoros): "Интеграция платежных систем в .Net приложения"
- Выбор платежной системы (Payment Gateway)
- Обзор типовых решений интеграции платежных систем
- Рекомендации по разработке, тестированию интеграции платежной системы.
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Olga Lavrentieva
Антон Шемерей (Senior Developer в Sphere Consulting, г.Минск)
Доклад: «Single Responsibility Principle в Руби или почему instance/class variables это ОЧЕНЬ плохо»
Всем приходится работать с унаследованным кодом и часами тратить время на поиск устранения ошибок, которых в большинстве случаев можно было бы легко избежать. Одним из краеугольных камней является нарушение принципа единственной ответственности. В докладе пойдет речь о том, как провести анализ кода, как его можно исправить и как избегать таких ошибок в будущем.
Егор Воробьёв (Web Developer в Datarockets)
Доклад: «Ruby internals»
Юкихиро Мацумото и его команда потратили уйму времени, чтобы реализовать те вещи, которыми мы пользуемся каждый день. В своем докладе Егор расскажет, что скрывается за обычными строчками, которые каждый из нас использует, и объяснит, почему важно знать то, что находятся по ту сторону экрана.
Андрей Колешко (Team Lead проекта Mezuka)
Доклад: «Что не так с Rails?»
Андрей расскажет, как и почему он и его команда решили отказаться от многих возможностей Rails и чем их заменили на своем проекте. В целом рассказ Андрея - это рассуждение о том, к чему приводит неправильное использование Rails, почему Rails не годится для всех Web-проектов в том виде, в котором представляет его сообщество разработчиков, авторы книг и best practices.
Дмитрий Савицкий (Senior Software Engineer в Altoros)
Доклад: «Ruby Anti-Magic Shield»
Не упустите шанс попасть на сеанс практической магии с разоблачением от Дмитрия Савицкого. Способов помешать кому-то, кто пытается повлиять на ваш код со злым умыслом или по незнанию, не так уж и много. Дмитрий расскажет о тех немногочисленных возможностях, которые позволяют избежать запутанной и опасной "метамагии" в приложениях. Будет магически интересно.
Сергей Алексеев «Парное программирование. Удаленно»Olga Lavrentieva
Сергей Алексеев (Ruby Developer в Pinshape)
Доклад: «Парное программирование. Удаленно»
«Устали объяснять как это работает? Парное программирование – вместо тысячи слов. Потратили полдня на решение задачи и безрезультатно? Не тормозите – программируйте с напарником. Следуете трендам, следите за тенденциями – новое поколение выбирает парное программирование. Когда программировать одному уже не ice... Просто добавьте напарника. Несколько полезных инструментов и техник – мы отбираем только самое лучшее. Вы еще программируете в одиночку? Тогда мы идем к вам!»
Алексей Дёмин (Java Developer в InData Labs)
Доклад: «Почему Spark отнюдь не так хорош»
О чём: Сейчас по всем каналам идёт обсуждение новой революционной технологии обработки данных Spark. Алексей предлагает взглянуть чуть глубже и узнать, действительно ли Spark так хорош, как нам рассказывает об этом маркетинг.
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»Olga Lavrentieva
Сергей Сверчков (Solution Architect в Altoros)
Доклад: «Практика построения высокодоступного решения на базе Cloud Foundry PaaS ».
О чём: В докладе Сергей продемонстрирует архитектуру решения, базирующуюся на OpenStack, Cassandra и Cloud Foundry (PaaS), расскажет об интересных особенностях Cloud Foundry. Он также опишет опыт в области обработки данных с медицинских приборов, опыт разработки решения с высокими требованиями по доступности, безопасности в этой области. В своей презентации Сергей раскроет нюансы работы над различными уровнями решения и их интеграцией.
«Дизайн продвинутых нереляционных схем для Big Data»Olga Lavrentieva
Виктор Смирнов (Java Tech Lead в Klika Technologies)
Доклад: «Дизайн продвинутых нереляционных схем для Big Data»
О чём: Виктор познакомит всех с примерами продвинутых нереляционных схем данных и тем, как они могут использоваться для решения задач, связанных с хранением и обработкой больших данных.
«Нужно больше шин! Eventbus based framework vertx.io»Olga Lavrentieva
Михаил Бортник (Ruby Developer в R&R Music Ukraine, г.Киев)
Доклад: «Нужно больше шин! Eventbus-based framework Vertx.io»
О чём: Михаил поведает о мультиязычном фреймворке с нетрадиционным подходом, а также о том, как Software заимствует идеи у Hardware.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Often referred to as NoSQL, non-relational databases feature elasticity and scalability. In addition, they can store big data and work with cloud computing systems. All of these factors make them extremely popular.
Why did NoSQL data stores appear? Mostly because relational databases (RDBMS) have a number of disadvantages, if you have to work with large datasets.For example, RDBMS are hard to scale and their architecture is designed to work on a single machine. - Scaling write operations is either hard, expensive, or impossible.- Vertical scaling (or upgrading equipment) is either limited or very expensive. Unfortunately, this is often the only possible way you can scale.- Horizontal scaling (or adding new nodes to the cluster) is either unavailable or you can only implement it partially. There are some solutions from Oracle and Microsoft that make it possible to have computing instances on several servers. Still, the database itself remains in shared storage.In addition to poor scalability, RDBMS have strict schemas. The schema is created together with the database and you will need a lot of time and effort to change this structure. In most cases it is an extremely complex task. Apart from that, RDBMS have difficulties with semistructured data.There is also another peculiarity of RDBMS. For the relational model to be normalized, real-life objects are usually divided to be stored as several items. This is called object-relational impedance mismatch. ______________________________( ORIGINAL SLIDE COMMENTS: Relational databases provide many advantages, but they are by no means perfect. Even from their early days, there have been lots of frustrations with them.For application developers, the biggest frustration has been what’s commonly called the impedance mismatch (сопротивление согласованию): the difference between the relational model and the in-memory data structures. The relational data model organizes data into a structure of tables and rows, or more properly, relations and tuples. In the relational model, a tuple[ˈtjuːp(ə)l] is a set of name-value pairs and a relation is a set of tuples. (The relational definition of a tuple is slightly different from that in mathematics and many programming languages with a tuple data type, where a tuple is a sequence of values.) All operationsin SQL consume and return relations, which leads to the mathematically elegant relational algebra. This foundation on relations provides a certain elegance and simplicity, but it also introduceslimitations. In particular, the values in a relational tuple have to be simple—they cannot contain any structure, such as a nested record or a list. This limitation isn’t true for in-memory data structures,which can take on much richer structures than relations. As a result, if you want to use a richer in memory data structure, you have to translate it to a relational representation to store it on disk. Hencethe impedance mismatch—two different representations that require translationImpedance mismatch has been made much easier to deal with by the wide availability of object-relationalmapping frameworks, such as Hibernate and iBATIS that implement well-known mappingpatterns, but the mapping problem is still an issue. Object-relational mappingframeworks remove a lot of grunt work, but can become a problem of their own when people try toohard to ignore the database and query performance suffers.)
NoSQL solutions address many of these problems.POINT 1: In 2013, the number of NoSQL products reached 150+ and the figure is still growing. That variety makes it difficult to select the best tool for a particular case.POINT 2: They come in many types--key-value, columnar, document-oriented, and graph.POINT 3: There is one thing in common for all NoSQL databases. They don't use the relational data model. This means they do not use the SQL query language.POINT 4: NoSQL data management systems are inherently schema-free (with no obsessive complexity and a flexible data model) and eventually consistent (complying with BASE rather than ACID)POINT 5: They provide APIs to perform various operations. Some of NoSQL data stores support query language operations, for example, Cassandra and Hbase. However, there is no standard. This is another difference between NoSQL databases and traditional RDBMS.POINT 6: RDBMS usually have strong data consistency. This feature is implemented with different mechanisms. In contrast to that, NoSQL data stores operate with eventual consistency. When you add data to the system, it becomes consistent after some time. This means there is a certain risk that an operation will not be completed and the data will remain inconsistent.POINT 7: NoSQL architectures can work as clusters that consist of several nodes. This makes it possible to scale them horizontally by increasing the number of nodes.In addition, NoSQL data stores serve huge amounts of data and provide high throughput.
POINT 1: NoSQL databases differ from RDBMS in their data models. These systems can be divided into 4 groups:A. Key Value StoresKey value stores are similar to maps or dictionaries where data is addressed by a unique key.B. Document StoresDocument Stores encapsulate key value pairs in JSON or JSON like documents. Within documents, keys have to be unique. In contrast to key-value stores, values are not opaque to the system and can be queried as well. Therefore, complex data structures like nested objects can be handled more conveniently. Storing data in interpretable JSON documents has the additional advantage of supporting data types, which makes document stores very developer-friendly.C. Column Family StoresColumn Family Stores are also known as column oriented stores, extensible record stores and wide columnar stores.D. Graph databasesKey-value stores, document stores, and column family stores have a common feature. They do store denormalized data in order to gain advantages in distribution.In contrast to relational databases and the already introduced key oriented NoSQL databases, graph databases are specialized on efficient management of heavily linked data.POINT 2: NoSQL databases differ strongly in their offered query functionalities. Besides considering the supported data model and how it influences queries on specific attributes, it is necessary to have a closer look at the offered interfaces in order to find a suitable database for a specific use case. If a simple, language unspecific API is required, REST interfaces can be a suitable solution, especially for web applications, whereas performance critical queries should be exchanged over language specific APls which are available for nearly every common programming language like Java. Query languages offer a higher abstraction level in order to reduce complexity. Therefore, their use is very helpful when more complicated queries should be handled. If calculation intensive queries over large datasets are required, MapReduce frameworks should be used.POINT 3: Multiversion concurrency control (MVCC) relaxes strict consistency in favor of performance. Concurrent access is not managed with locks but by organization of many unmodifiable chronological ordered versions. In order to support transactions without reserving multiple datasets for exclusive access, optimistic locking is provided by many stores. Before changed data is committed, each transaction checks, whether another transactions made any conflicting modifications to the same datasets.POINT 4: NoSQL databases differ in the way they distribute data on multiple machines. Since data models of key-value stores, document stores and column family stores are key oriented, the two common partition strategies are based on keys, too.The first strategy distributes datasets by the range of their keys. A routing server splits the whole keyset into blocks and allocates these blocks to different nodes. Afterwards, one node is responsible for storage and request handling of his specific key ranges. In order to find a certain key, clients have to contact the routing server for getting the partition table.Higher availability and much simpler cluster architecture can be achieved with the second distributionstrategy called consistent hashing. In this shared nothing architecture, there exists no single point of failure. In contrast to range based partitioning, keys are distributed by using hash functions. Since every server is responsible for a certain hash region, addresses of certain keys within the cluster can be calculated very fast. Good hash functions distribute keys intuitively even wherefore an additional load balancer is not required.In addition to better read performance through load balancing, replication also brings better availability and durability, because failing nodes can be replaced by other servers. Since distributed databases should be able to cope with temporary node and network failures, only full availability or full consistency can be guaranteed at one time in distributed systems. If all replicas of a master server were updated synchronously, the system would not be available until all slaves had committed a write operation. Ifmessages got lost due to network problems, the system would not be available for a longer period of time. This solution is not suitable for platforms that rely on high availability, because even a few milliseconds of latency can have a big influence on user behavior.POINT 5: (PERFORMANCE: TYPICAL WORKLOADS)Obviously, performance is a very important factor. Performance of data storage solutions can be evaluated using typical scenarios. These scenarios simulate the most common operations performed by applications that use the data store, also known as typical workloads. The tests that we performed to compare performance of several NoSQL data stores also used typical workloads.
Database vendors usually measure productivity of their products with custom hardware and software settings designed to demonstrate the advantages of their solutions. In our tests we tried to see how NoSQL data stores perform under the same conditions.POINT 1: For benchmarking, we used the Yahoo Cloud Serving Benchmark (YCSB)The kernel of YCSB has a a framework with a workload generator that creates test workload and a set of workload scenarios.POINT 2: Developers need to describe the scenario of the workload by operation type: what operations are performed on what types of records. POINT 3: Supported operations include: insert, add new, update (change one of the fields), read (one random field or all the field of one record), and scan (read the records in the order of the key starting from the selected record).We can define the workload by the data that will be loaded into the database during the loading phase and the operations that will be executed against the data set during the transaction phase.Typically, a workload is a combination of: Workload java class (subclass of com.yahoo.ycsb.Workload) Parameter file (in the Java Properties format)Because the properties of the dataset must be known during the loading phase (so that the proper kind of record can be constructed and inserted) and during the transaction phase (so that the correct record IDs and fields can be referred to) a single set of properties is shared among both phases. Thus the parameter file is used in both phases. The workload java class uses those properties to either insert records (the loading phase) or execute transactions against those records (the transaction phase). We have measured database performance under several types of workloads. Each workload was defined by different distributions assigned to the two main choices:- which operation to perform- which record to read or write Operations against a data store were randomly selected and could be of the following types:Insert: Inserts a new record.Update: Updates a record by replacing the value of one field.Read: Reads a record, either one randomly selected field, or all fields.Scan: Scans records in order, starting at a randomly selected record key. The number of records to scan is also selected randomly from the range between 1 and 100.
Each workload was targeted at a table of 100,000,000 records; each record was 1,000 bytes in size and contained 10 fields. A primary key identified each record, which was a string, such as “user234123.” Each field was named field0, field1, and so on. The values in each field were random strings of ASCII characters, 100 bytes each. Database performance was defined by the speed at which a database computed basic operations. A basic operation is an action performed by the workload executor, which drives multiple client threads. Each thread executes a sequential series of operations by making calls to the database interface layer both to load the database (the load phase) and to execute the workload (the transaction phase). The threads throttle the rate at which they generate requests, so that we may directly control the offered load against the database. In addition, the threads measure the latency and achieved throughput of their operations and report these measurements to the statistics module.-- The tests:We defined the following values for the workload executor:the number of threadsthe types of operations in the workload and the desired number of operations per second (target throughput)Then we measured the time it took to perform these transactions (latency). Performance of a database was calculated as the time it took for the client application to perform the transactions (client – db – client).Each client thread does the same transaction and the threads work in parallel.The resulting values reflected how latencies changed as we increased the workload.
This is a component diagram of the YCSB framework. It consists of several modules.Workload executor applies the workload to the data store. For each session, when the client accesses the DB, a client thread is initiated. Each thread performs a set of operations from the workload. The results in the form of statistics are then sent to the statistics module, which prints the output of the test to console where benchmark is started. These tests are consequently repeated for all the selected solutions.The YCSB framework has connectors for a wide range of DBs. For each database tested with YCSB, a developer needs to determine the type of DB for the connector, target throughput, the number of concurrent threads on the client side, and how many operations we want to perform. This is necessary to create and start a test.
(смотри комментарии к предыдущему слайду)
Now let's take a look at the NoSQL data stores that we tested:Cassandra 2.0: This is a column-value data store. We ran it on a virtual machine with Java 1.7.40 installed. The transactions were performed with the non-default configuration. In particular, we used a random partitioner to section data by nodes. The amount of data cash for the keys was 1 GB. The size of row cash was 6 GB. The size of JVM heap was 6 GB. Data was not replicated (there were no copies). This approach was intentional, we wanted to test performance, not failure tolerance of the cluster. MongoDB: This is a document-oriented DB. Here, we didn't do much additional configuration or tuning. As I have mentioned before, for Mongo, we added two VMs that served as routers because according to official documentation, the mongo router process should run on a separate machine. However, if you need to simplify the model, mongo router may run on the same machine, where the YCSB client is. However, in one of our earlier tests, we discovered that it uses a lot of CPU power. This is why it should be placed on a separate machine. Data sharding for MongoDB was based on document key.
We used the following workloads: Workload A: Update-heavily mode. Workload A is an update-heavily scenario that simulates how a database works, when recording typical actions of an e-commerce solution user.Settings for the workload: Read/update ratio: 50/50Zipfian request distributionWorkload BWorkload B is a read-mostly workload that has a 95/5 (ninety five to five percent) read/update ratio. It recaps content tagging, when adding a tag is an update, but most operations include reading tags.Workload CWorkload C is a read-only workload that simulates a data caching layer, for example a user profile cache.Workload D Workload D has 95/5 read/insert ratio. The workload simulates access to the latest data, such as user status updates or working with inbox messages first.Workload EWorkload E is a scan-short-ranges workload with a scan/insert percentile proportion of 95/5. It corresponds to threaded conversations that are clustered by a thread ID. Each scan is performed for the posts of a given thread.Workload F Workload F has read-modify-write/read ops in a proportion of 50/50. It simulates access to user database, where user records are read and modified by the user. User activity is also recorded to this database.Workload G Workload G has a 10/90 read/insert ratio. It simulates data migration process or highly intensive data creation.
The first test was the load phase. We uploaded the selected data of 100 mln records of 1 kb each to the data store. Here we measured average performance by ops per seconds and the latency, the time required to perform a single operation.*russian text aboveHbase had the lowest performance because we turned on auto-flash mode. This mode guarantees that the operation of creating a record will be sent from the client to a server and will be persisted to the database. There is also an alternative mode supported by Hbase, when additional cash is generated on the client side. When the client is out of storage space it sends this cash to the server. This makes it possible to persist data to disk in batches.As expected, Couchbase and Cassandra had good results. Cassandra updates data in the memory and writes it to the transaction journal on disk simultaneously. Couchbase writes data to memory and then asynchronously persists it to disc. The result of the transaction returns after everything has been saved to memory. In this test, data was loaded in a single iteration. In contrast, insert, update, and read operations were performed in several iterations. We measured the number of ops per second under this workload. The workload was generated based on a target throughput and what we measured was the actual throughput of the database. We also measured the latency, or how long it took for each operation to be performed. -------------------------------On many of the diagrams that you will see later, DB performance is limited and starts to decline at certain throughput levels. It is important to take into account that the results might have been influenced by the fact that we used AWS and network storage. So these values might differ, if you use physical hardware.
The last workload G consisted mostly of insert ops. It simulates the process of data migration or when a lot of data is created. Insert operations, similarly to what we saw on the previous graph, were best performed by Hbase, Cassandra and Hbase. These DBs had low latencies and high throughput. For MongoDB, the performance was capped at about 4000 ops per second with an average latency of up to five times greater than in other databases.
The last diagram shows the results of read operations that make up 10% of workload G. The distribution of latencies here is uneven for all the solutions. Possibly, this is due to the fact that the data is in network storage in the cloud. At the same time, Hbase and Cassandra show a maximum throughput of up to 6000 operations per second.
What you choose depends on your needs. You must answer the following questions before choosing: determine what your datasets will be like and your data model. The data model will depend on the datasets and typical operations that your app will perform; determine the requirements to transaction support or lack of this support; decide whether you need the transactions; decide whether you need replication, and what requirements you have to data consistency; determine your performance requirements (how fast your DB should be). Next, if your project is created based on an existing solution, you should see if data migration is possible, this may influence your choice, as well.Then, taking into account these factors, evaluate different solutions, and test their performance (that’s what this presentation was all about). It is very useful to build a prototype and perform proof of concept. Then based on this prototype, you can select the solution for your system. Prototyping makes it possible to do a real evaluation of how the solution/approach will work in a real-life project. If it doesn’t work well enough, you need to review the architecture, components, and build a new prototype. This means there are no perfect solutions and there are no bad NoSQL or RDBMS data stores. The solution and its implementation depends on a particular situation. The tests we have performed show that in different use cases, different solutions have very different results. Your final choice might be a compromise. The main determinant will be what you want to achieve and what properties you need most. For instance, max performance or consistency, etc.