Database

    MVCC와 잠금 없는 일관된 읽기

    MVCC(Multi Version Concurrency Control)란? MVCC는 레코드 레벨의 트랜잭션을 지원하는 DBMS가 제공하는 기능이며, 락을 사용하지 않는 일관된 읽기를 제공하는 것을 목적으로 한다. MVCC를 InnoDB는 언두 로그(Undo Log)를 이용해 구현한다. MVCC에서 MV, 즉 Multi Version은 하나의 레코드에 대해 여러 버전이 동시에 관리된다는 것을 나타낸다. 예시를 통해 MVCC에 대해 자세히 알아보자. 격리 수준이 READ_COMMITTED인 InnoDB 스토리지 엔진을 사용하는 MySQL 서버에서 테이블의 데이터 변경을 진행한다. INSERT INTO member (m_id, m_name, m_area) VALUES (12, '서민정', '부산'); 먼저,..

    Install Redis Using Docker

    #redis는 기본적으로 6379 포트를 사용한다. docker pull redis # redis-cli 구동을 위해 컨테이너를 하나 더 실행해야하며, # 그 두개의 컨테이너의 연결을 위해 docker network 구성을 해야한다. docker network create redis-net # 생성하고 나서 확인 docker network create redis-net # Redis 서버 실행 docker run --name redis -p 6379:6379 --network redis-net -d redis redis-server --appendonly yes # -v 옵션을 주면 data는 VOLUME /data에 저장된다. ex. -v /project/redis-volume 참고자료 https://..

    Upgrade MariaDB from 10.1 to 10.4 on EC2 Ubuntu 18.04 LTS

    flyway를 도입했는데, 기존에 사용하고 있던 mariadb 10.1 버전은 flyway를 사용하기 위해서는 유료 버전을 사용해야했다. 그래서 mariadb를 10.1에서 10.4로 백업 후 업그레이드 하였다. 백업 및 업그레이드 스크립트는 다음과 같다. # 1. 백업할 디렉토리 생성 # 여기서 생성한 디렉토리가 2단계 백업하기의 target-dir이 된다. cd ~ mkdir data && cd data && \ mkdir backup && cd backup && \ mkdir preupgrade_backup && cd ~ # 2. 백업하기 # 여기서 user와 password는 본인이 지정해주면 되지만, user의 경우에는 mariadb에 등록된 유저여야한다. sudo mariabackup --ba..

    mariadb ERROR 1698 (28000): Access denied for user 'root'@'localhost'

    https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost ERROR 1698 (28000): Access denied for user 'root'@'localhost' I'm setting up a new server and keep running into this problem. When I try to login to the MySQL database with the root user, I get the error: ERROR 1698 (28000): Access denied for user 'root'@' stackoverflow.com mariadb를 EC2 ubuntu 18.0..