Archive for Uncategorized

Building a Mobile Chat App Using Realm – Data Architecture

I’ve just built an iOS chat app using SwiftUI, Realm, and Realm Sync. I decided on a chat app as it makes an interesting case study for designing a data model and controlling who can access what data:

  • A chat message needs to be viewable by all members of a chat room and no one else.
  • New messages must be pushed to the chat room for all online members in real-time.
  • The app should notify a user that there are new messages even when they don’t have that chat room open.
  • Users should be able to observe the “presence” of other users (e.g., whether they’re currently logged into the app).
  • There’s no limit on how many messages users send in a chat room, and so the data structures must allow them to grow indefinitely.

Because this app’s data model (and the decisions taken when designing) serve as a great starting point for many different types of apps, I wrote it up in this HowTo article.

You can download all of the code from the GitHub repo.

Checkout Building a Mobile Chat App Using Realm – Data Architecture for all of the details.





MySQL Connect & Oracle OpenWorld 2012

Oracle OpenWorld 2012

Oracle OpenWorld 2012

I’m lucky enough to be involved in a number of sessions across Oracle OpenWorld as well as the (new for this year) MySQL Connect session that precedes it. MySQL Connect runs on Saturday 29th and Sunday 30th September and the Oracle OpenWorld on through Thursday October 4th.

The sessions I’ll be involved with are:

  • MySQL Cluster – From Zero to One Billion in Five Easy Steps: Of course it takes more than five steps to scale to more than one billion queries per minute, but the new configuration features of MySQL Cluster make it much simpler to provision and deploy MySQL Cluster on-premises or in the cloud, automatically optimized for your target use case. This BoF session is designed to give you a demo of the new features, showing how you can use them to quickly build your own proof of concept and then take that into production. The MySQL Cluster Engineering team will be on hand to answer your questions and also listen to the requirements you have for current or future MySQL Cluster projects. This is Birds-of-a-Feather session and is part of the MySQL Connect conference.
  • Developing High-Throughput Services with NoSQL APIs to InnoDB and MySQL Cluster: Ever-increasing performance demands of Web-based services have generated significant interest in providing NoSQL access methods to MySQL (MySQL Cluster from Oracle and the InnoDB storage engine of MySQL), enabling users to maintain all the advantages of their existing relational databases while providing blazing-fast performance for simple queries. Get the best of both worlds: persistence; consistency; rich SQL queries; high availability; scalability; and simple, flexible APIs and schemas for agile development. This session describes the memcached connectors and examines some use cases for how MySQL and memcached fit together in application architectures. It does the same for the newest MySQL Cluster native connector, an easy-to-use, fully asynchronous connector for Node.js. This is a conference session and is part of the MySQL Connect conference.
  • Introduction to MySQL High-Availability Solutions: Databases are the center of today’s Web and enterprise applications, storing and protecting an organization’s most valuable assets and supporting business-critical applications. Just minutes of downtime can result in dissatisfied customers and significant loss of revenue. Ensuring database high availability is therefore a top priority for any organization. Attend this session to learn more about delivering high availability for MySQL-based services. It covers
    • The cause, effect, and impact of downtime
    • A methodology for mapping applications to the right high-availability solution
    • An overview of MySQL high availability, from replication to virtualization, clustering, and multisite redundancy
    • Operational best practices to ensure business continuity

    This is a conference session and is part of Oracle OpenWorld.

Early bird pricing is available for the MySQL Connect until 13th July – same date for Oracle OpenWorld.





The binary version for MySQL Cluster 7.1.9 has now been made available at http://www.mysql.com/downloads/cluster/

A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.9 (compared to 7.1.8) can be found in the official MySQL Cluster documentation. In addition, there is a great BLOG posting from Johan Anderson explaining how to use the new table added to ndbinfo to tune DiskPageBufferMemory when storing tables on disk.





MySQL Cluster 7.0.9a source release now available – replaces 7.0.9

This release has now been replaced with 7.0.9b

The source version for MySQL Cluster 7.0.9a has now been made available at ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/mysql-5.1.39-ndb-7.0.9a/

This replaces MySQL Cluster 7.0.9.

You can either wait for the binaries to be released or if you’re in a rush then you can find instructions on building the binaries for yourself in the earlier article: “MySQL Cluster 7.0.7 source released“.

A description of all of the changes (fixes) that have gone into MySQL Cluster 7.0.9a (compared to 7.0.8a) can be found in the MySQL Cluster MySQL Cluster 7.0.9a Change Log.





MySQL Cluster 7.0.9 source release now available

7.0.9 has now been withdrawn and replaced with http://www.clusterdb.com/uncategorized/mysql-cluster-7-0-9a-source-release-now-available-replaces-7-0-9/

The source version for MySQL Cluster 7.0.9 has now been made available at ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/mysql-5.1.39-ndb-7.0.9/

You can either wait for the binaries to be released or if you’re in a rush then you can find instructions on building the binaries for yourself in the earlier article: “MySQL Cluster 7.0.7 source released“.

A description of all of the changes (fixes) that have gone into MySQL Cluster 7.0.9 (compared to 7.0.8a) can be found in the MySQL Cluster Cluster 7.0.9 Change Log.





MySQL Cluster 6.3.28 source release now available

MySQL Cluster 6.3.28 has now been witdrawn, please use 6.3.28a instead: http://www.clusterdb.com/mysql-cluster/mysql-cluster-6-3-28a-source-release-now-available-replaces-6-3-28/

The source version for MySQL Cluster 6.3.28 has now been made available at ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/mysql-5.1.39-ndb-6.3.28/

You can either wait for the binaries to be released or if you’re in a rush then you can find instructions on building the binaries for yourself in the earlier article: “MySQL Cluster 7.0.7 source released“.

A description of all of the changes (fixes) that have gone into MySQL Cluster 6.3.28 (compared to 6.3.27) can be found in the MySQL Cluster Cluster 6.3. 28 ChangeLog.





Upcoming webinar: MySQL Cluster: Architectural Deep Dive

Tomas Ulin - Director MySQL Engineering

Tomas Ulin - Director MySQL Engineering

This could be your last chance to listen to and quiz Tomas Ulin on his detailed MySQL Cluster knowledge as he has recently moved from being the Cluster Engineering Director to looking after engineering for MySQL Server. Tomas was in charge for the vast majority of the 7.0 development cycle (and many releases before that) and maintained a very detailed knowledge of the technology – including writing some of the code.

Mat Keep will represent the product management team with some introductory material.

I will also be on hand for the Q&A.

The webinar (as always) is free and starts at 16:30 UTC (other timezones listed below) and you can register here.

More details….

MySQL recently announced the next generation of its industry-leading MySQL Cluster high availability database.

Tune into this webinar where you can hear from the Director of MySQL Server Engineering provide a detailed “deep dive” into the architecture of MySQL Cluster. In this session, you will learn:

  • how MySQL Cluster achieves predictable and consistent real time performance
  • how MySQL Cluster achieves continuous availability with sub-second fail-over, automated recovery and geographic replication
  • how MySQL Cluster enables users to dynamically scale throughput and data capacity
  • how to get started with MySQL Cluster

WHO:

  • Tomas Ulin, Director, MySQL Server Technologies
  • Matthew Keep, MySQL Cluster Product Management

WHEN:

Wednesday, June 17, 2009: 09:30 Pacific time (America)
Wed, Jun 17:  06:30 Hawaii time
Wed, Jun 17:  10:30 Mountain time (America)
Wed, Jun 17:  11:30 Central time (America)
Wed, Jun 17:  12:30 Eastern time (America)
Wed, Jun 17:  16:30 UTC
Wed, Jun 17:  17:30 Western European time
Wed, Jun 17:  18:30 Central European time
Wed, Jun 17:  19:30 Eastern European time

The presentation will be approximately 45 minutes long followed by Q&A.

WHERE:

Simply access the web seminar from the comfort of your own office.





New MySQL Cluster White Paper – Building a Carrier-Grade Platform for Data Management

A new white paper has been published by MySQL/Sun Microsystems and it can be downloaded from http://www.mysql.com/why-mysql/white-papers/mysql_wp_cluster7_open_cgp.php

Open Source Carrier Grade Platform - using MySQL Cluster CGE

Open Source Carrier Grade Platform - using MySQL Cluster CGE

Abstract:

The convergence of communication networks onto one which is IP (Internet Protocol) based is revolutionizing today’s telecommunications industry. Communications Service Providers (CSPs) are challenged to deliver compelling new personalized services with greater agility and lower costs than ever before. The very survival of Service Providers depends on their ability to generate new revenue streams and increase Average Revenue Per User (ARPU), whilst at the same time delivering significant improvements in operational efficiency and time to market.

Network and IT infrastructure used for service delivery has traditionally been based on proprietary hardware and software, either developed in-house or supplied by proprietary vendors. The challenge this has presented to Network Equipment Providers (NEPs) and Communications Service Providers (CSPs) is that the infrastructure is inflexible and carries a high TCO.

In addition to the challenges above, risk of vendor lock-in and the need for interoperability through open APIs have driven the migration to standards-based hardware and open-source software for new carrier-grade systems used in next generation networks. We call such systems “open source, carrier-grade platforms”.

The drive to adopt open architectures extends into a core enabler of network convergence and service delivery – the database. Whether Service Providers are looking to deploy new Web/Telco 2.0 applications to mobile internet users or consolidating subscriber data within the network to support greater service personalization and targeted advertising, the database plays a key enabling role.

These databases must make information available to new and existing applications in order to maximize interoperability and streamline operations. It is this trend which puts even more demands on the availability, scalability and performance of the database. Real-time, carrier-grade databases with dynamic scalability, flexible data access methods, broad platform support and simplified administration are key to meeting the demands of many of  These new communications services.

With the rapid shift from closed, expensive and proprietary technology, MySQL has grown to become the world’s most popular open source database. In this paper we explore how an open source carrier grade platform is able to cost-effectively meet the communication industry’s high availability, scalability and real-time performance requirements. At the same time we will explore the issues of cost and interoperability with established and emerging technology standards. We also examine the unique architecture and features of MySQL Cluster Carrier Grade Edition, and how they can help both equipment manufacturers and service providers overcome some of the biggest challenges facing their industry today.