메타 데이터를 저장하기 위해 Mysql 테이블을 만들다 보니, 복합키로 PK를 설정해야할 때가 있었다. 그래서 실행을 하니 다음과 같은 에러가 났다. Multiple primary key defined 음.. 원인을 찾아보니 Auto Incremental등 다양한 원인이 될 수 있다고 하여 다음과 같이 변경하니 동작하였다.원인은 차차 살펴보기로 하고.. 일단 되는 쿼리부터 변경 전 -- collector instance child table 생성문DROP TABLE IF EXISTS COLLECTOR_INSTANCE_CHILD;CREATE TABLE IF NOT EXISTS COLLECTOR_INSTANCE_CHILD ( collector_id INT AUTO_Increment PRIMARYKEY , p..
OS에서 shell script 운영을 하다보면 관리상의 여러가지 어려움을 겪게 된다. PID / PPID 등 프로세스 관리를 해야 어느 정도 관리가 가능한데, 실상 PID 추출을 위한 구문을 추가해도 Background 실행과 관련한 다양한 환경이 있기 때문에 실질적로는 대응하기 애매한 부분이 있다. PID와 Background에서 실행된 이후에 발행된 PID를 추출하는 간단한 Script를 소개한다. function abc() # wait for some event to happen, can be terminated by other process { sleep 100 } echo "PID: $$" abc & echo "PID: $!" 이렇게 실행하면 Back ground로 실행된 스크립트의 PID를 ..
일반적인 서버 프로그래밍을 구현할 때 REST API 구축을 많이 한다. Stateless Protocol로 구현한다는 말을 자주 쓰는데 의미를 찾아보니 다음과 같다 무상태 프로토콜, 즉 이전 요청과 각각 무관한 요청을 독립적으로 처리한다는 의미이다. 즉 서버가 복수의 요청 시간대에 각각의 통신 파트너에 대한 세션 정보나 상태 보관을 요구하지 않는다. 반대의 개념은 서버 내부 상태를 유지하는 Stateful protocol이 그 예가 될 수 있다. 장/단점은 서버 구현상의 로직이 단순해 지기 때문에.. Client의 요청 이후, Client가 dead될 경우 요청의 Response를 굳이 저장할 곳이 없어 유실된다는 것이다.
일반 windows나 리눅스 ( Centos )와 비슷하게 Mac에서도 package 관리 tool이 있다. homeBrew ( 집에서 먹는 맥주라는 뜻인가.. 아무튼;; ) 간단하게 Package를 관리하고 설정해주는 고마운 존재이다. https://brew.sh/index_ko.html 한국어 page도 제공해주고 설정 원리또한 Linux에서 많이 사용하는 yum / apt-get과 비슷한 원리이다. 설치 이후에 경로를 확인해보아도 쉽게 알수 있다. ( package가 /usr/local이하에 옹기종기 모여 있다.. ) 요즘 많이 사용하는 파이썬 / anaconda / tensorflow등 다양한 패키지를 쉽게 설치할 수 있으니... 용도 정도는 잘 알아두는 것이 좋다 ( 아래는 vert.x )
HDP 및 기타 hadoop을 설치하는 경우에 해당 기능이 on/off되어 있는지 물어보는 경우가 종종 있다. 뭔가.. 하고 찾아보니 다음과 같다 . https://access.redhat.com/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html 즉 메모리관리에 있어 Page에 접근하는 application에 대용량 size의 page를 쉽게 접근하기 위한 기능이다. 이론적으로는 성능향상을 기대할 수 있으나.. 실상은 많은 부분 해당 기능을 Off하도록 권장하고 있다. 실제 테스트를 해보니.. 전후대비 약 10%의 성능향상을 보인다. 적용하는 방법은 간단하다. 1) 온라인 적..