Successfully reported this slideshow.
Your SlideShare is downloading. ×

Speed Up Your Existing Relational Databases with Hazelcast and Speedment

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 32 Ad

Speed Up Your Existing Relational Databases with Hazelcast and Speedment

Download to read offline

In this webinar
How do you get data from your existing relational databases changed by third party applications into your Hazelcast maps? How do you accomplish this if you have several databases, located on different sites, that need to be aggregated into a global Hazelcast map? How is it possible to reflect data from a relational database that has ten thousand updates per second or more?

Speedment’s SQL Reflector makes it possible to integrate your existing relational data with continuous updates of Hazelcast data-maps in real-time. In this webinar, we will show a couple of real-world cases where database applications are speeded up using Hazelcast maps fed by Speedment. We will also demonstrate how easily your existing database can be “reverse engineered” by the Speedment software that automatically creates efficient Java POJOs that can be used directly by Hazelcast.


We’ll cover these topics:
-Joint solution case studies
-Demo
-Live Q&A

Presenter:

Per-Åke Minborg, CTO at Speedment

Per-Åke Minborg is founder and CTO at Speedment AB. He is a passionate Java developer, dedicated to OpenSource software and an expert in finding new ways of solving problems – the harder problem the better. As a result, he has 15+ US patent applications and invention disclosures. He has a deep understanding of in-memory databases, high-performance solutions, cloud technologies and concurrent programming. He has previously served as CTO and founder of Chilirec and the Phone Pages. Per-Åke has a M.Sc. in Electrical Engineering from Chalmers University of Technology and several years of studies in computer science and computer security at university and PhD level.

In this webinar
How do you get data from your existing relational databases changed by third party applications into your Hazelcast maps? How do you accomplish this if you have several databases, located on different sites, that need to be aggregated into a global Hazelcast map? How is it possible to reflect data from a relational database that has ten thousand updates per second or more?

Speedment’s SQL Reflector makes it possible to integrate your existing relational data with continuous updates of Hazelcast data-maps in real-time. In this webinar, we will show a couple of real-world cases where database applications are speeded up using Hazelcast maps fed by Speedment. We will also demonstrate how easily your existing database can be “reverse engineered” by the Speedment software that automatically creates efficient Java POJOs that can be used directly by Hazelcast.


We’ll cover these topics:
-Joint solution case studies
-Demo
-Live Q&A

Presenter:

Per-Åke Minborg, CTO at Speedment

Per-Åke Minborg is founder and CTO at Speedment AB. He is a passionate Java developer, dedicated to OpenSource software and an expert in finding new ways of solving problems – the harder problem the better. As a result, he has 15+ US patent applications and invention disclosures. He has a deep understanding of in-memory databases, high-performance solutions, cloud technologies and concurrent programming. He has previously served as CTO and founder of Chilirec and the Phone Pages. Per-Åke has a M.Sc. in Electrical Engineering from Chalmers University of Technology and several years of studies in computer science and computer security at university and PhD level.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to Speed Up Your Existing Relational Databases with Hazelcast and Speedment (20)

More from Hazelcast (20)

Advertisement

Recently uploaded (20)

Speed Up Your Existing Relational Databases with Hazelcast and Speedment

  1. 1. SPEEDUP YOUR EXISTING RELATIONAL DATABASES Per-Åke Minborg www.speedment.com
  2. 2. PROBLEM • Long response times is the most common IT problem at work • The amount of data is increasing every day
  3. 3. SOLUTIONS New Ground Application developer HW supplier DBA Architect Carpenter Painter Ground Buy faster better more HW -expensive Optimize database –minor effect Extreme performance –migration project
  4. 4. THE JAVA DEVELOPER BEHIND THE STEERING WHEEL! • The hot new solution • Fast to develop applications • Extreme database speed
  5. 5. TECHNOLOGY EVOLUTION • Memory size exponentially doubles each 18:th month • The number of CPU-cores [N] is increasing moderately • Performance per CPU-core [P(N)] is increasing moderately • P = N*P(N) is increasing exponentially • "Cloud" deployment is popular
  6. 6. Database Hazelcast Hazelcast Application Hazelcast Application Hazelcast Application THE SHARED DATABASE CHALLENGE
  7. 7. Database Hazelcast Hazelcast Application3:rd Party Application 3:rd Party Application 3:rd Party Application Hazelcast Application Hazelcast Application THE SHARED DATABASE CHALLENGE
  8. 8. Database Speedment Hazelcast Hazelcast Application3:rd Party Application 3:rd Party Application 3:rd Party Application Hazelcast Application Hazelcast Application THE SHARED DATABASE CHALLENGE
  9. 9. Database Speedment Hazelcast Node Hazelcast Node Hazelcast Node Hazelcast Node INSERT UPDATE DELETE OVERVIEW
  10. 10. JVM SPEEDMENT TECHNOLOGY MOV CQRS In- Memory Copy Relational Database
  11. 11. REFLECTS ALL DATA WITH HAZELCAST Inserts sql> insert into employees (emp_no, birth_date, first_name, last_name, gender, hire_date) values (10001, '1953-09-02', 'Georgi', 'Facello', 'M', '1986-06-26'); 10001 -> Employees { "emp_no": 10001, "birth_date": "1953-09-02", "first_name": "Georgi", "last_name": "Facello", "gender": "M", "hire_date": "1986-06-26"} Updates sql> update employees set first_name="Georgi2" where emp_no=10001; 10001 -> Employees { "emp_no": 10001, "birth_date": "1953-09-02", "first_name": "Georgi2", "last_name": "Facello", "gender": "M", "hire_date": "1986-06-26"} Deletes sql> delete from employees where emp_no = 10001; 10001 -> null
  12. 12. WORKS WITH TRANSACTIONS SQL> START TRANSACTION; update employees set first_name="Duangkaew“ where emp_no=10010; update salaries set salary=salary+10 where id=12322; COMMIT; // Backing hazelcast maps are updated atomically Employees emp = employeesMap.get("10001"); Salaries sal = salaryMap.get("12322");
  13. 13. HOW TO INSTALL • Download software • Unzip distribution file • Start scripts in ”bin” directory
  14. 14. WORK FLOW 1. Database 2. Speedment GUI 3. IDE
  15. 15. GENERATED CODE • Everything you will need including POJOs and serialization factories are generated automatically. • Just add 4 lines of code in your Hazelcast application and you are good to go.
  16. 16. DATABASE TABLE mysql> describe employees; +------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-----+---------+----------------+ | emp_no | int(11) | NO | PRI | NULL | auto_increment | | birth_date | date | NO | | NULL | | | first_name | varchar(14) | NO | | NULL | | | last_name | varchar(16) | NO | | NULL | | | gender | enum('M','F') | NO | | NULL | | | hire_date | date | NO | | NULL | | +------------+---------------+------+-----+---------+----------------+
  17. 17. POJO REPRESENTING A ROW public class Employees extends Struct<Employees> implements IdentifiedDataSerializable { private Integer empNo; private Date birthDate; private String firstName; private String lastName; private String gender; private Date hireDate; // Accessors, serialization, deserialization, etc.
  18. 18. HOW DO YOU USE IT? “Easy as 1, 2, 3...”
  19. 19. 1) CONNECT TO YOUR EXISTING SQL DB…
  20. 20. …AND IT IS AUTOMATICALLY ANALYZED
  21. 21. 2) PUSH PLAY
  22. 22. Work as you are used to, just add 4 lines of code in your startup class Config hcConfig = new Config(); // Add optimized serialization Factories for Hazelcast that are generated automatically SpeedmentHazelcastConfig.addTo(hcConfig); HazelcastInstance hcInstance = Hazelcast.newHazelcastInstance(hcConfig); // Tell Speedment what Hazelcast instance to use ProjectManager.getInstance().putProperty(HazelcastInstance.class, hcInstance); // Automatically build all Database metadata (e.g. Schema, Tables and Columns) new TreeBuilder().build(); // Load selected data from the database into the Hazelcast maps and start tracking DB ProjectManager.getInstance().init(); 3) START CODING WITH HAZELCAST
  23. 23. MOBILE NETWORK OPERATOR • Oracle database with: • One active • One hot standby • One cool standby • More than 100 GB data
  24. 24. MOBILE NETWORK OPERATOR Oracle Appl. Server Oracle Oracle Appl. Server Appl. Server Load Sharer Off-site Users
  25. 25. MOBILE NETWORK OPERATOR Hazelcast Node Hazelcast Node Hazelcast Node Hazelcast Node Speedment Oracle Oracle Oracle Off-site Appl. Server Appl. Server Appl. Server Load Sharer Users >100 times faster
  26. 26. SALES ORGANIZATION • HQ in Sweden • Local national offices in 8 other countries • 3 to 25 shops in each country • Most national offices have their own database • Extract, Transform and Load (ETL)
  27. 27. DB SALES ORGANIZATION DB DB 1 2 8 . . . . . HQ mail mail mail
  28. 28. MySQL SALES ORGANIZATION Speedment HZ HZ HZ HZ MySQL Postgress 1 2 8 . . . . . Speedment Speedment MySQL Speedment HQVPN VPN VPN Improved Business intelligence
  29. 29. POWER GRID OPERATOR • 1 200 transmission nodes • 1 300 000 homes • Reports meter status each hour • Each report contains several measurements
  30. 30. Users POWER GRID OPERATOR DB 1,3 M meters Grid Internet Writer x1000 TPS
  31. 31. DB Users 1,3 M meters POWER GRID OPERATOR Grid Internet Writer Speedment HZ HZ HZ HZ JSON >100 times faster
  32. 32. THANKS! • GitHub: https://github.com/speedment/speedment-orm • Twitter: @Pminborg • Mail: minborg@speedment.org • Blog: minborgsjavapot.blogspot.com

×