From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
PostgreSQL continuous backup and PITR with BarmanEDB
How can I achieve an RPO of 5 minutes for the backups of my PostgreSQL databases? And what about RPO=0 for zero data loss backups? This talk will give you answers to those questions, by guiding you through an overview of Disaster Recovery of PostgreSQL databases with Barman, covering its key concepts and providing useful patterns and tips.
Get the best out of MySQL Cluster, presentation covers:
- Tuning and optimization to exploit the auto-sharded, distributed design of MySQL Cluster
- Using Adaptive Query Localization to scale cross-shard JOINs
- Data access patterns, schema and query optimizations
- Recommended tuning parameters
Tune in to the on-demand webinar: http://www.mysql.com/news-and-events/on-demand-webinars/display-od-719.html
This presentation shortly describes key features of Apache Cassandra. It was held at the Apache Cassandra Meetup in Vienna in January 2014. You can access the meetup here: http://www.meetup.com/Vienna-Cassandra-Users/
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
PostgreSQL continuous backup and PITR with BarmanEDB
How can I achieve an RPO of 5 minutes for the backups of my PostgreSQL databases? And what about RPO=0 for zero data loss backups? This talk will give you answers to those questions, by guiding you through an overview of Disaster Recovery of PostgreSQL databases with Barman, covering its key concepts and providing useful patterns and tips.
Get the best out of MySQL Cluster, presentation covers:
- Tuning and optimization to exploit the auto-sharded, distributed design of MySQL Cluster
- Using Adaptive Query Localization to scale cross-shard JOINs
- Data access patterns, schema and query optimizations
- Recommended tuning parameters
Tune in to the on-demand webinar: http://www.mysql.com/news-and-events/on-demand-webinars/display-od-719.html
This presentation shortly describes key features of Apache Cassandra. It was held at the Apache Cassandra Meetup in Vienna in January 2014. You can access the meetup here: http://www.meetup.com/Vienna-Cassandra-Users/
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and serverless scenarios. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages - JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly: GraalVM enables code running in one language to interoperate with code in another language. GraalVM supports many and increasingly more forms of interoperability. This session introduces GraalVM, its main capabilities and its practical applicability - now and in the near future. There are demonstrations of ahead of time compilation and runtime interoperability of various non-JVM languages with Java.
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...confluent
RocksDB is the default state store for Kafka Streams. In this talk, we will discuss how to improve single node performance of the state store by tuning RocksDB and how to efficiently identify issues in the setup. We start with a short description of the RocksDB architecture. We discuss how Kafka Streams restores the state stores from Kafka by leveraging RocksDB features for bulk loading of data. We give examples of hand-tuning the RocksDB state stores based on Kafka Streams metrics and RocksDB’s metrics. At the end, we dive into a few RocksDB command line utilities that allow you to debug your setup and dump data from a state store. We illustrate the usage of the utilities with a few real-life use cases. The key takeaway from the session is the ability to understand the internal details of the default state store in Kafka Streams so that engineers can fine-tune their performance for different varieties of workloads and operate the state stores in a more robust manner.
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
Apache Kafka is a new breed of messaging system built for the "big data" world. Coming out of LinkedIn (and donated to Apache), it is a distributed pub/sub system built in Scala. It has been an Apache TLP now for several months with the first Apache release imminent. Built for speed, scalability, and robustness, Kafka should definitely be one of the data tools you consider when designing distributed data-oriented applications.
The talk will cover a general overview of the project and technology, with some use cases, and a demo.
사내 세미나 - 그루비 소개 발표자료
(2013. 11. 12)
최근에 파이썬 및 장고 프레임워크를 배워 간단한 웹 사이트를 구축한 이후, 우연히 그루비를 알게 되었고 자바의 모든 라이브러리 및 기능을 그대로 사용 할 수 있고, 자바 개발자의 경우 학습 비용도 거의 들지 않는다고 하여, 그루비에 대해 알아보게 되었다.
(파이썬의 경우 간결하고 깔끔한 코드에 감탄했지만, 새로운 언어를 사용하는 터라 기존의 자바 개발경험을 이용할 수 없었던 문제는 간단한 기능을 구현하는데에도 많이 답답하였다)
그리고 그렇게 알게 된 자료를 토대로 사내 세미나 발표자료를 만들어 보았다.
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and serverless scenarios. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages - JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly: GraalVM enables code running in one language to interoperate with code in another language. GraalVM supports many and increasingly more forms of interoperability. This session introduces GraalVM, its main capabilities and its practical applicability - now and in the near future. There are demonstrations of ahead of time compilation and runtime interoperability of various non-JVM languages with Java.
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...confluent
RocksDB is the default state store for Kafka Streams. In this talk, we will discuss how to improve single node performance of the state store by tuning RocksDB and how to efficiently identify issues in the setup. We start with a short description of the RocksDB architecture. We discuss how Kafka Streams restores the state stores from Kafka by leveraging RocksDB features for bulk loading of data. We give examples of hand-tuning the RocksDB state stores based on Kafka Streams metrics and RocksDB’s metrics. At the end, we dive into a few RocksDB command line utilities that allow you to debug your setup and dump data from a state store. We illustrate the usage of the utilities with a few real-life use cases. The key takeaway from the session is the ability to understand the internal details of the default state store in Kafka Streams so that engineers can fine-tune their performance for different varieties of workloads and operate the state stores in a more robust manner.
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
Apache Kafka is a new breed of messaging system built for the "big data" world. Coming out of LinkedIn (and donated to Apache), it is a distributed pub/sub system built in Scala. It has been an Apache TLP now for several months with the first Apache release imminent. Built for speed, scalability, and robustness, Kafka should definitely be one of the data tools you consider when designing distributed data-oriented applications.
The talk will cover a general overview of the project and technology, with some use cases, and a demo.
사내 세미나 - 그루비 소개 발표자료
(2013. 11. 12)
최근에 파이썬 및 장고 프레임워크를 배워 간단한 웹 사이트를 구축한 이후, 우연히 그루비를 알게 되었고 자바의 모든 라이브러리 및 기능을 그대로 사용 할 수 있고, 자바 개발자의 경우 학습 비용도 거의 들지 않는다고 하여, 그루비에 대해 알아보게 되었다.
(파이썬의 경우 간결하고 깔끔한 코드에 감탄했지만, 새로운 언어를 사용하는 터라 기존의 자바 개발경험을 이용할 수 없었던 문제는 간단한 기능을 구현하는데에도 많이 답답하였다)
그리고 그렇게 알게 된 자료를 토대로 사내 세미나 발표자료를 만들어 보았다.
1. - 자바를 넘어선 새로운 시작의 서막
알도개(알고 보면 도움되는 개발 이야기)
이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975
CC BY-NC-SA 2.0
2. GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM이란?
고성능 JDK 배포판
자바와 다른 JVM 기반 애플리케이션의 수행 속도를 가속화
1. Graal: 자바로 만들어진 새로운 JIT(Just-In-Time) 컴파일러
2. 개발 프로그래밍 언어 수준의 상호 운용성: 폴리그랏 프로그래밍
3. AOT(Ahead of Time) 네이티브 이미지 컴파일러: 워밍업 시간 단축
3. GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM을 써야 하는 이유
• 더 빠른 자바
• 다양한 프로그래밍 언어로 애플리케이션 확장
• 네이티브 이미지 생성
• 마이크로서비스 아키텍처에 적합한 특성
• 오라클 데이터베이스에서 MLE(Multilingual Engine) 지원
• 다양한 도구
• 생태계 확장
4. GraalVM – 자바를 넘어선 새로운 시작의 서막
라떼는 말이야…
두 가지 JIT 컴파일러:
• C1: 클라이언트용(대기 시간)
• C2: 서버용(메모리 희생해 처
리량 개선)
• Mixed(시작 시 C1, 어느 정도
시간이 지나면 C2) – 자바 5
이후
5. GraalVM – 자바를 넘어선 새로운 시작의 서막
그런데 말이지…
GraalVM에서는:
• C2 대신 JVMCI를 적용하는
자바 기반의 Graal 컴파일러
적용(C++ JIT는 기술 부채로
인해 확장 불가 판정)
• 참고) JVMCI(Java Virtual
Machine Compiler
Interface)
LLVM
6. GraalVM – 자바를 넘어선 새로운 시작의 서막
• 정적인 바이너리를 생성하는 대신 동적으로 바이너리를
생성하는 JIT의 기능에 어마무시한 최적화를 가함
• 특히 스칼라 Spark 같은 콜스택이 깊은 경우 성능 개선이
유리
• 네이티브 이미지 빌드: 자바 클래스를 네이티브로 컴파일,
런타임 데이터 영역을 그대로 메모리로 덤프
• 자바 9의 CDS (Class Data Sharing), AppCDS
(Application Class Data Sharing), AOT compiler
를 JRE 의존성이 없이 단독 동작하게 개선!
• 런타임 프로파일링 데이터를 파일로 떨어뜨린 다음
에 이 정보를 네이티브 이미지에 넣어 실제 워크로드
에 가까운 성능을 발휘하게 코드를 최적화!
• GraalVM 런타임 JIT가 16% 정도 더 고성능이긴 하지
만, 네이티브 이미지 역시 기존 HotSpot의 최고 성능
에 필적함
어떻게 성능을 높일까?
7. GraalVM – 자바를 넘어선 새로운 시작의 서막
마이크로서비스 아키텍처, 게 섯거라!
• 특히 서버리스인 경우 warmup 시간이 중요
• 하지만 액티브까지 오랜 시간이 걸리는 자바는 상대적으로 불리했음
• 하지만 native(AOT)로 빌드할 경우라면?
• 거의 즉각적으로 반응하므로 매우 유리해짐
• 사례
• 스프링네이티브(https://docs.spring.io/spring-
native/docs/current/reference/htmlsingle/)
• Quarkus(https://quarkus.io/):
• MICRONAUT(https://micronaut.io/)
• helidon(https://helidon.io/)
8. GraalVM – 자바를 넘어선 새로운 시작의 서막
마이크로서비스 아키텍처, 게 섯거라!(계속됨)
Quarkus 사례: 메모리와 초기 기동 시간 비교
9. GraalVM – 자바를 넘어선 새로운 시작의 서막
두 가지 버전, 지원 환경
• GraalVM 엔터프라이즈: 오라클 JDK 기반
• GraalVM 커뮤니티: 오픈JDK 기반(GPL v2)
• 참고) 커뮤니티 에디션은 엔터프라이즈 에디션이 지원하는 최적화의
2/3 수준만 옵션을 제공
• 대신 LTS 지원(GraalVM 20.3.0)
• 지원 대상: Java 8, Java 11, Java 16, Java 17(실험적)
• 지원 운영체제: 리눅스(선호됨), 맥OS X, 윈도우(개발 환경을 목표)
• 지원 아키텍처: x86-64, ARM 64비트
10. GraalVM – 자바를 넘어선 새로운 시작의 서막
다양한 프로그래밍 언어 지원
•Node.js – the Node.js 14.17.6 runtime for JavaScript
•Python – Python 3.8.5 compatible
•Ruby – Ruby 2.7.3 compatible
•R – GNU R 4.0.3 compatible
•GraalWasm – WebAssembly (Wasm)
높은 성능, 강건한 런타임!
기존 로직의 재사용, 언어간 상호 호출 가능
11. GraalVM – 자바를 넘어선 새로운 시작의 서막
개발자 편의성
• VSCode의 경우
• GraalVM Tools for Java
• GraalVM Tools for Micronaut
• GraalVM Extension for Java
• VisualVM(https://visualvm.github.io/)
• GraalVM 21.2.0부터 지원
12. GraalVM – 자바를 넘어선 새로운 시작의 서막
정말 사용하는 곳이 있는가?
• 오라클 RDBMS에서 저장 프로시저(Stored Procedure)로 자바스크립트를
지원할 수 있는 이유가 무엇인지 생각해보자
• 페이스북 사례: https://blogs.oracle.com/javakr/post/graalvm-facebook
• 트위터 사례: https://www.youtube.com/watch?v=pR5NDkIZBOA
• NVidia 사례(Polygot 언어 바인딩): https://github.com/NVIDIA/grcuda
13. GraalVM – 자바를 넘어선 새로운 시작의 서막
추가 정보가 필요하다면?
• Σ민수아빠 유튜브 채널:
https://www.youtube.com/channel/UCo32ifcqG3i56nI
jS2YtRIw
• GraalVM 공식 유튜브 채널:
https://www.youtube.com/c/GraalVM
• GraalVM Demos:
https://github.com/graalvm/graalvm-demos
• https://jaxlondon.com/blog/an-introduction-to-
graalvm-oracles-new-virtual-machine/
14. GraalVM – 자바를 넘어선 새로운 시작의 서막
결론
• 차익 거래가 가능한 GraalVM을 사용하지 않을 이유가 있을까?
• 페북 사례를 보면 OpenJDK를 GraalVM으로 바꾸기만 해도 10~40% 성
능 개선과 10% 정도 CPU 사용량을 줄이는 효과!
• 여러 프로그래밍 언어의 혼합 사용(폴리그랏)
• 마이크로서비스 아키텍처에 제격
• 이제 업그레이드는 선택이 아니라 필수다! 보안 패치가 아닌 기능/성능 개
선을 담고 있기에…
• 향후 오라클 JDK와 오픈JDK에 통합될 가능성이 점쳐진다 – 자바를 넘어선
새로운 시작의 서막을 기대하시라!
15. 발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 삼성SDC, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호