DB12 Row Generation 튜닝#1 - SingleStore ※ 테스트 장비 사양 - 8vCPU, 16GB이전 포스트에서 SingleStore 의 Row Generation 은 7억건에서 메모리 부족 에러가 발생했습니다.그 이유는 create_array 및 table 로 변환한 모든 row 를 대상으로 row_number() 함수로 정렬을 수행하기 때문에 부가적인 메모리가 더 필요하기 때문입니다. 물론 정렬 작업 때문에 시간도 조금 더 필요합니다. create or replace function gen_rows(n bigint)returns table as returnselect row_number() over () as rn from table(create_array(n):>array(bigint)); 이제 정렬이 필요없도록 튜닝을 해보겠습니다.먼저 to_ar.. 2024. 1. 18. Row Generation 성능 비교 - SingleStore, Oracle, MySQL, PostgreSQL 🎯 개요이전 포스트에서 Row Generation 방법을 소개해 드렸습니다.2024.01.04 - [연구노트] - Row Generation - SingleStore, Oracle, MySQL PostgreSQL이번 포스트에서는 각 DB 마다 Row Generation 성능을 간단하게 비교하도록 하겠습니다.비교 테스트에 사용한 장비는 8vCPU, 16GB 의 사양으로 Hands-On 테스트에 사용했던 장비를 그대로 사용하였고 여기에 Oracle XE 21c 를 추가로 설치했습니다.🎯 OracleOracle XE 21c는 SGA+PGA 합쳐서 2GB 를 넘지 못하도록 제약이 걸려 있습니다. 따라서 불가피하게 PGA가 3000MB 로 설정되어 있는 Autonomous Database 에서도 같이 테.. 2024. 1. 12. SingleStore Hands-On #5 Online Scale Out/In 🎯 개요SingleStore 는 분산(Distributed) 데이터베이스로 Shared Nothing 구조를 가지고 있습니다. 따라서 현재 시스템보다 더 높은 성능이 요구될 때 쉽게 수평 확장(Scale Out)할 수 있는 것이 큰 장점입니다.이번 테스트에서는 k6 성능테스트 툴로 Data API 를 이용해 트랜잭션이 실행되는 도중에 온라인으로 수평 확장(Scale Out) 및 축소(Scale In) 작업을 수행하도록 하겠습니다.실제 SingleStore 입장에서는 Leaf Node 를 추가/삭제하는 작업을 수행합니다.🎯 gnuplot 설치SingleStore 클러스터가 온라인 상태에서 Leaf 노드를 추가/삭제할 동안 성능의 변화를 파악하기 위해 k6 실행 결과를 csv 로 로깅할 것입니다.로.. 2023. 12. 21. SingleStore Hands-On #4 Data API 🎯 개요RDBMS 를 사용하는 고전적인 프로그래밍 방식은 프로그램 실행 초기에 커넥션(connection) 을 열고 특정 SQL 을 처리하기 위한 커서(cursor) 를 생성한 다음 커서의 실행 결과를 페치(fetch) 하여 처리하고 커넥션을 닫는 순서로 작성되곤 했습니다.문제는 커넥션을 맺거나 끊는 작업이 DBMS 입장에서는 상당히 무겁고 큰 비용이 발생하는 작업이라는 것입니다. 그래서 보통 일정 갯수이상의 커넥션을 미들웨어나 WAS 등에 커넥션 풀(Connection Pool) 형태로 만들어 두고 필요할 때마다 커넥션을 열고 닫는 것이 아니라 커넥션 풀에서 커넥션을 획득/반납하게 합니다.RDBMS 와 WAS 등의 미들웨어간에는 항상 커넥션이 유지되기 때문에 커넥션 생성 및 제거에 시스템 자원을 소.. 2023. 11. 23. SingleStore Hands-On #1 DB 설치 : SingleStore, PostgreSQL, MySQL 💻 Linux Machine Setup하나의 장비에 SingleStore, PostgreSQL, MySQL 을 함께 설치할 Linux Server 를 설정합니다.장비 사양CPU : 8 vCPUMemory: 16GB (32GB 권장)HDD(SSD) : 70GB 이상O/S : Red Hat 계열 version 7(이 문서는 Oracle Linux 7 기준으로 작성되었습니다) sudo 권한 확보현재 사용하는 계정명은 opc 입니다. 이 계정에 sudo 권한을 설정할 경우 root 계정에서 다음 명령어를 수행합니다.* 이미 sudo 권한이 부여됐다면 이 스텝은 건너 뛸 수 있습니다.# visudo -f /etc/sudoers가장 아래 라인에 다음 추가 opc ALL=(ALL) NOPASSWD:AL.. 2023. 11. 2. SingleStore DB Directory Layout [1] 개요그동안 SingleStore 를 설치하는 여러 내용들이 있었습니다. 이제부터는 설치된 SingleStore 의 디렉토리 구조와 각종 설정 파일들의 역할을 알아보도록 하겠습니다. 이번 포스트에서 설명할 환경은 Windows10 WSL2 를 기준으로 패키지 관리 프로그램이 디폴트이 설치한 SingleStore 를 기준으로 설명합니다. tarball 로 사용자환경에 맞게 커스텀으로 설치한 환경은 지금 설명과 많이 다릅니다. 설치하는 방법은 아래 링크를 참조하시기 바랍니다.https://a-platform.tistory.com/124 Windows 10 WSL2 에 SingleStore 설치[1] 개요 SingleStore 는 현재 공식적으로 Intel 계열의 Linux Platform 만 지원하고.. 2023. 10. 20. M1 Mac 에 SingleStore 설치 [1] 소개SingleStoreDB 는 집계(Aggregation) 및 필터링(Filtering) 성능을 높이기 위해 Intel 의 SSE4.2 및 AVX2 명령어세트를 이용해 SIMD(Single Instruction Multiple Data) 를 구현하고 있습니다. Apple Silicon 이 탑재된 M1/M2 계열 Mac 은 Intel 이 아닌 ARM Processor 계열이기 때문에 AVX2 등의 명령어세트가 지원되지 않아 SingleStore 를 M1 Mac 에서는 설치하여 사용해 보지 못했었습니다.M1 Mac 을 사용하는 많은 개발자들의 요청이 빈번하자 SingleStore 버전 7.8.11 부터 SIMD 와 같은 여러 최적화 기법을 다수 희생해서라도 Docker Desktop 에 Clust.. 2023. 9. 14. SingleStoreDB, PostgreSQL, MySQL 간단 조회 성능 비교 안녕하세요.이번에 간단하게 SingleStoreDB, PostgreSQL, MySQL 의 3가지 Database 를 동일한 장비에서 동일한 테이블과 SQL을 이용하여 조회 성능 비교를 해 보았습니다.장비 사양은 8vCPU, 32GB Memory, 100GB Boot Volume 입니다.데이터셋은 CC By 4.0 License 를 가지고 있는 Stefan Proell, Eva Zangerle, Wolfgang Gassler 가 만든 Flughafen DB(https://github.com/stefanproell/flughafendb) 를 기초로 한 mysql 의 airportdb(https://dev.mysql.com/doc/airportdb/en/airportdb-introduction.html) .. 2023. 9. 7. SingleStoreDB Cloud 무료 사용법 가장 빠르게 SingleStoreDB 를 성능을 체험해 볼 수 있는 방법은 SingleStoreDB Cloud 에서 $500 에 해당하는 Credit 을 받아 AWS, Azure, GCP Cloud 중 원하는 곳에서 원하는 크기의 Workspace 를 생성하는 것입니다. 먼저 SingleStore Portal 에 가입하여 $500 에 해당하는 credit 을 받습니다.가입이 되면 On-premise Server 설치 시 사용할 수 있는 License Key 도 무료로 제공됩니다.이 License 를 가지고 총 32 vCPU, 128GB Memory 를 넘지 않는 한도 내에서 SingleStoreDB Standard 옵션 설치해 사용할 수 있습니다.SingleStore Portal 에서 먼저 Worksp.. 2023. 8. 31. 이전 1 2 다음