본문 바로가기

SingleStoreDB112

[Support Bulletin 01] - SingleStore Service Autostart 실패 안녕하세요 에이플랫폼 입니다.이번에 처음 선보이는 Support Bulletin 시리즈입니다.고객 지원 사례와 관련 정보들을 모아 시리즈로 작성하게 되었습니다. 발행은 비정기적으로 발행될 예정입니다.아무래도 공개가 가능한 정보들로 글을 작성해야 하기 때문에...그래도 앞으로 꾸준히 발행될 예정이니 많은 관심 가져주시면 감사하겠습니다.📌개요SingleStore 설치 시 대부분의 경우 일시적인 Node Failure 에 대비하기 위해 자동 시작하도록 설정하는 것을 권장하고 있습니다. 예를 들어 다음과 같은 명령어를 사용하여 모든 Aggregator 및 Leaf 노드에서 SingleStore Daemon 을 자동 시작하게 설정합니다.$ sdb-admin enable-nodes-autostart --host .. 2025. 1. 13.
케이뱅크 - 금융정보제공(FID)시스템 SingleStoreDB 도입 사례 케이뱅크에서 운영 중인 금융정보제공(FID)시스템에서 사용되는 DBMS가 SingleStoreDB로 전환되어 그 과정을 공유한 글이 있어 소개드립니다.​* DBMS 전환 배경- FID시스템의 Data 양이 기하급수적으로 늘어나면서 동일한 SQL 명령어를 수행하더라도 절대적인 Data Scan양이 증가하여 성능저하 발생- SQL Tuning, Index 추가, Scale-Up 등 다방면으로 개선해 봤지만 전통적인 RDBMS의 구조적인 한계가 있었고 날이 갈수록 늘어나는 Data의 양으로 인한 스토리지 비용증가​* SingleStoreDB PoC 결과# 빠른 집계-Slow Query(단위 : 초)작업 유형MySQL(5.7.x)SingleStore(8.5.x)퍼포먼스 비교A Query30만 건 이상7개 테이블.. 2024. 10. 10.
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.
Row Generation - SingleStore, Oracle, MySQL PostgreSQL 🎯 Row Generation​이번 포스트에서는 임의의 n개 row 를 생성하는 방법을 알아 보겠습니다.​🎯 Oracle​Oracle 에서는 Hierarchical Query 를 이용해서 임의의 row 를 생성합니다. SQL> select rownum from dual connect by level   Recursive With 구문을 이용해서 MySQL 처럼 row 를 생성할 수도 있습니다.​🎯 MySQL​MySQL 8.0 이상에서는 Recursive CTE 를 이용하여 임의의 row 를 생성합니다. with recursive t(n) as ( select 1 as n union all select n+1 as n from t where n    🎯 PostgreSQL​PostgreS.. 2024. 1. 4.
SingleStore Hands-On #6 Unlimited Storage Database 🎯 개요SingleStore 는 데이터베이스를 생성할 때 Local Database 또는 Unlimited Storage Database(USD) 를 선택할 수 있습니다.▶ Local : SingleStore 클러스터가 설치된 장비▶ Unlimited Storage : SingleStore 클러스터 외부의 Object Storage​이번 테스트에서는 Unlimited Storage 의 개념 파악 및 기능 테스트를 수행해 보도록 하겠습니다. 🎯 Unlimited StorageUnlimited Storage 를 선택하면 데이터베이스의 크기에 제한이 없어집니다. 그래서 Bottomless 데이터베이스라고 불리기도 합니다. Unlimited Storage Database 를 생성하면 실제 데이터는 지정된 C.. 2023. 12. 28.
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.
Real-Time Data Platforms: SingleStore vs Databricks SingleStore와 Databricks는 모두 고객들이 직면한 중요한 과제를 해결할 수 있는 훌륭한 데이터 플랫폼입니다. 그러나 Databricks와 달리 SingleStore는 처음부터 성능을 최우선으로 고려하여 설계되었고, 이는 곧 비용 절감에 여러 이점을 가져왔습니다. 이번 글은 이러한 차이점을 살펴볼 여러 시리즈 중 첫 번째 글로, SingleStore가 뛰어난 영역인 실시간 분석 및 운영에 관한 주제로 시작하겠습니다. 또한, SingleStore은 실시간이 아닌 일괄 ETL 작업에서도 비용과 성능 면에서 이점이 있음을 확인했으며, 이어진 글에서 설명드리도록 하겠습니다. Understanding the value of real-time data 먼저, 실시간 데이터의 중요성을 알아보겠습니다. .. 2023. 12. 7.
SingleStore Hands-On #4 Data API 🎯 개요RDBMS 를 사용하는 고전적인 프로그래밍 방식은 프로그램 실행 초기에 커넥션(connection) 을 열고 특정 SQL 을 처리하기 위한 커서(cursor) 를 생성한 다음 커서의 실행 결과를 페치(fetch) 하여 처리하고 커넥션을 닫는 순서로 작성되곤 했습니다.​문제는 커넥션을 맺거나 끊는 작업이 DBMS 입장에서는 상당히 무겁고 큰 비용이 발생하는 작업이라는 것입니다. 그래서 보통 일정 갯수이상의 커넥션을 미들웨어나 WAS 등에 커넥션 풀(Connection Pool) 형태로 만들어 두고 필요할 때마다 커넥션을 열고 닫는 것이 아니라 커넥션 풀에서 커넥션을 획득/반납하게 합니다.RDBMS 와 WAS 등의 미들웨어간에는 항상 커넥션이 유지되기 때문에 커넥션 생성 및 제거에 시스템 자원을 소.. 2023. 11. 23.