5.
...
중요한 변경사항
중요한 순으로 기재합니다.
...
목차
Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
width | 4% |
---|
...
width | 55% |
---|
Tagdata : Rollup Partition 테이블 교체
5.1 에서는 Tagdata 테이블 의 Rollup Partition 테이블이 Log Table Type 이었습니다. 그래서 Partition 개수만큼 Log Table 이 많이 생성되어 있는 것과 같은 성능 부담을 가져왔습니다.
5.2 부터는 Rollup Partition 테이블 역시 Tagdata 테이블의 Partition Table Type 와 동일하게 변경되어, 낮은 CPU/메모리 비용으로 더욱 빠른 입력과 조회를 할 수 있습니다!
...
width | 3% |
---|
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 40% |
---|
Code Block | ||
---|---|---|
| ||
SELECT pd.start_time, pd.end_time, td.time, pd.name
FROM process_data pd, tag td
WHERE pd.name = td.name
AND td.time BETWEEN pd.start_time AND pd.end_time
AND td.name = '1'; |
...
width | 3% |
---|
...
Tagdata : 다른 테이블과 Join 가능
Tagdata 테이블이 이제 다른 테이블과 Join 할 수 있습니다.
...
width | 50px |
---|
...
width | 4% |
---|
...
width | 40% |
---|
Tagdata : 다양한 Predicate 사용 가능
기존의 Tagdata 테이블 SELECT 구문의 조건은TAGNAME Column = ?
과 TAGTIME 범위조건
만 가능했습니다.
이제는 일반 테이블처럼 다양한 Predicate 을 사용할 수 있습니다.
...
width | 3% |
---|
...
Code Block | ||
---|---|---|
| ||
SELECT * FROM tag WHERE name LIKE 'TAG!%'; |
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 40% |
---|
Code Block | ||
---|---|---|
| ||
CREATE TAGDATA TABLE TAG (name VARCHAR(20) PRIMARY KEY,
time DATETIME BASETIME,
value DOUBLE SUMMARIZED);
INSERT INTO TAG METADATA VALUES ('TAG-A');
-- 아래 데이터를 APPEND 로 입력할 때엔,
-- TAG-B 는 저장되어 있지 않지만 입력이 성공한다.
-- ('TAG-B', '2019-03-01 01:23:45', 36.5) |
...
width | 3% |
---|
...
Tagdata : APPEND 시 TAGNAME 자동 생성
TAGDATA TABLE APPEND 할 때, TAGNAME 이 저장되어 있지 않은 경우에는 자동으로 TAGNAME 을 생성해서 Tag 데이터의 APPEND 를 속행할 수 있습니다.
제어할 수 있는 Property 는 TAGDATA_AUTO_NAME_INSERT_IN_APPEND 이며, 기본값은 1 (켜짐) 입니다.
Ui text box | ||
---|---|---|
| ||
현재는 APPEND 에서만 지원되며, INSERT 는 추후 패치를 통해 지원될 예정입니다. |
...
width | 50px |
---|
...
width | 4% |
---|
Column | ||
---|---|---|
| ||
Tagdata : INSERT INTO 에서 Bind 지원INSERT INTO 구문에 Bind Variable 을 사용해서 입력이 가능해졌습니다. |
...
width | 3% |
---|
...
Code Block | ||
---|---|---|
| ||
if (SQLPrepare(sStmt,
(SQLCHAR *)"INSERT INTO TAG VALUES (?, '2010-01-01', 1.0)",
SQL_NTS) == SQL_ERROR) {
printf("Prepare error\n");
}
if (SQLBindParameter(sStmt,
1,
SQL_PARAM_INPUT,
SQL_C_CHAR,
SQL_VARCHAR,
0,
0,
tagnameData,
0,
&tagnameDataSize) == SQL_ERROR) {
printf("Bind error tag name");
} |
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 40% |
---|
Code Block | ||
---|---|---|
| ||
if (SQLPrepare(sStmt,
(SQLCHAR *)"SELECT * FROM tab1 DURATION ? SECOND",
SQL_NTS) == SQL_ERROR) {
printf("Prepare error\n");
}
if (SQLBindParameter(sStmt,
1,
SQL_PARAM_INPUT,
SQL_C_UBIGINT,
SQL_INTEGER,
0,
0,
&sSecond,
0,
NULL) == SQL_ERROR) {
printf("Bind error tag name");
} |
...
width | 3% |
---|
Column |
---|
DURATION 절에 Bind 지원SELECT 구문의 DURATION 절에도 Bind Variable 이 지원됩니다. |
...
width | 50px |
---|
...
width | 4% |
---|
Column | ||
---|---|---|
| ||
Disk Full 발생 시 알람 기능마크베이스 서버가 위치한 디스크의 가용 공간의 일정 부분까지만 사용할 수 있습니다. 제어할 수 있는 Property 는 DISK_USED_RATIO_CAP 이며, 기본값은 0 (무제한) 입니다.
|
...
width | 3% |
---|
...
Code Block |
---|
$ cat alert-2018_12_19_18_21_59.trc
[2018-12-19 18:12:51]
[WARN] Storage space exhausted...
1019Giga, 476Mega, 376832 bytes total.
346Giga, 643Mega, 421888 bytes used.
(34.0%) used, (66.0%) free, (34.0%) cap.
[2018-12-19 18:12:55]
[INFO] Storage space secured...
1019Giga, 476Mega, 376832 bytes total.
337Giga, 295Mega, 339968 bytes used.
(33.1%) used, (66.9%) free, (34.0%) cap.
[2018-12-19 18:21:59]
[STARTUP] |
...
width | 50px |
---|
...
width | 2% |
---|
...
Trace Log Level 추가
$MACHBASE_HOME/trc/machbase.trc
에 출력되는 로그의 레벨을 조정할 수 있는 Property 를 추가합니다.
제어할 수 있는 Property 는 TRACE_LOG_LEVEL 이며, 기본값은 0 입니다.
- Level 0 : 기존 내용이 출력
- Level 1 : Level 0 의 내용 + Cluster Edition 의 상세한 상태 출력
- Level 2 : Level 1 의 내용 + 서버의 모든 입력/쿼리 수행에 대한 상세 경과 기록 (SELECT/APPEND/DML) + 세션 연결 시작/종료 기록
Code Block |
---|
[2019-02-19 18:45:04 P-19295 T-139902498887424][INFO] Session is opened (Client IP : 192.168.0.31)
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (PREPARE): 0.173(ms) [insert into tag metadata values ('TAG_1', 'this is first!', 10, '192.168.0.1', '2010-01-01')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (EXECUTE): 8.986(ms) [insert into tag metadata values ('TAG_1', 'this is first!', 10, '192.168.0.1', '2010-01-01')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (PREPARE): 0.094(ms) [insert into tag metadata values ('TAG!_2', 'this is second.', 20, '192.168.1.20', '2009-01-02')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (EXECUTE): 9.128(ms) [insert into tag metadata values ('TAG!_2', 'this is second.', 20, '192.168.1.20', '2009-01-02')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (PREPARE): 0.093(ms) [insert into tag metadata values ('TAG!_4', 'this is fourth?', 40, null, '2008-01-03 12:00:00')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (EXECUTE): 9.223(ms) [insert into tag metadata values ('TAG!_4', 'this is fourth?', 40, null, '2008-01-03 12:00:00')]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (PREPARE): 0.105(ms) [insert into tag metadata values ('TAG_5', null, 50, '192.168.2.50', null)]
[2019-02-19 18:45:05 P-19295 T-139902498887424][MM] Elapsed time (EXECUTE): 9.167(ms) [insert into tag metadata values ('TAG_5', null, 50, '192.168.2.50', null)]
[2019-02-19 18:45:05 P-19295 T-139902375159552][INFO] Session is opened (Client IP : 192.168.0.31)
[2019-02-19 18:45:05 P-19295 T-139902375159552][MM] Append Open. (TAG)
[2019-02-19 18:45:05 P-19295 T-139902375159552][MM] Append Close. (TAG)
[2019-02-19 18:45:05 P-19295 T-139902375159552][OK] Service Thread Finished !!
[2019-02-19 18:45:05 P-19295 T-139902375159552][INFO] Session is closed (Client IP : 192.168.0.31) |
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 40% |
---|
Ui text box | ||
---|---|---|
| ||
Pictures necessary (Tag Analyzer Option Windows) |
...
width | 3% |
---|
Column |
---|
Tag Analyzer : 고정 X축 간격 설정Zoom 을 할 때 마다 X축의 간격이 자동으로 설정되었는데, 이를 고정할 수 있습니다. |
...
width | 50px |
---|
...
width | 4% |
---|
Column | ||
---|---|---|
| ||
Tag Analyzer : 여러 Tag 를 하나의 Series 로 표시TAG-A 는 10시부터 11시까지, TAG-B 는 11시부터 12시까지의 센싱 정보를 가지고 있다면, 이를 연결해서 볼 수 있는 방법도 필요합니다. 5.2부터는 Tag Analyzer 에서 이 기능을 지원합니다. 각 Chart 의 설정 창에서 Data > Tags 에 있는 태그에 콤마로 연결된 태그 이름 목록을 입력하면 연결이 됩니다. 동일 시점에 중복된 데이터가 존재하면, 이름 목록에서 앞에 위치한 태그의 데이터가 우선 표시됩니다. |
...
width | 3% |
---|
Column |
---|
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 45% |
---|
Code Block | ||
---|---|---|
| ||
-- _arrival_time 이 가장 작은 레코드의 i1 값을 획득
select first(_arrival_time, i1) from t1;
-- _arrival_time 이 가장 작은 레코드의 i1 값과,
-- _arrival_time 이 가장 큰 레코드의 i1 값을 획득
select first(_arrival_time, i1), last(_arrival_time, i1) from t1; |
...
width | 3% |
---|
Column |
---|
Aggregate Function : FIRST/LASTSELECT 와 GROUP BY 로 생성한 각 Group 에서, 기준이 되는 컬럼 값이 순서상 가장 작은 (또는 순서상 가장 큰) 레코드의 다른 컬럼 값을 반환하는 집계 함수입니다. |
...
width | 50px |
---|
...
width | 4% |
---|
Column | ||
---|---|---|
| ||
DELETE Log : 자동 DELETE 기능아래의 |
...
width | 3% |
---|
...
Code Block | ||
---|---|---|
| ||
-- '입력 시점'에 다음을 검사한다.
-- >> 최근 삭제 시점보다 1시간 이상 경과한 경우,
-- 최근 2일치를 제외한 모든 레코드를 삭제한다.
CREATE TABLE t1 (...) KEEP 2 DAY AFTER APPEND INTERVAL 1 HOUR; |
...
width | 50px |
---|
...
width | 2% |
---|
...
width | 42% |
---|
Code Block | ||
---|---|---|
| ||
// Set the SQL_ATTR_PARAM_BIND_TYPE statement attribute to use
// column-wise binding.
SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_BIND_TYPE, SQL_PARAM_BIND_BY_COLUMN, 0);
// Specify the number of elements in each parameter array.
SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMSET_SIZE, ARRAY_SIZE, 0);
// Specify an array in which to return the status of each set of
// parameters.
SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_STATUS_PTR, ParamStatusArray, 0);
// Specify an SQLUINTEGER value in which to return the number of sets of
// parameters processed.
SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMS_PROCESSED_PTR, &ParamsProcessed, 0);
// Bind the parameters in column-wise fashion.
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 5, 0,
PartIDArray, 0, PartIDIndArray);
SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, DESC_LEN - 1, 0,
DescArray, DESC_LEN, DescLenOrIndArray);
SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 7, 0,
PriceArray, 0, PriceIndArray); |
...
width | 3% |
---|
Column |
---|
CLI : Array Binding
여러 Bind - Execute 를 반복하게 되면 네트워크 비용을 불필요하게 소모하고 그만큼 유휴 시간이 늘어나 비효율적입니다. 현재는 열 단위 바인딩 (Column-wise binding) 만 지원합니다. |
...
width | 100px |
---|
...
width | 4% |
---|
Column | ||
---|---|---|
| ||
Cluster : Coordinator Role 변경이전까진 Coordinator 가 Primary/Secondary 로 고정되어 있어, 안정성보다 발생하는 문제가 더욱 많았습니다. 고정되어 있던 역할을 5.2에서 수정했습니다. 이제는 Primary 가 사라지면 Secondary 가 Primary 로 바뀌며, 사라진 Primary 가 돌아와도 Secondary 로 바뀌면서 클러스터에 합류하게 됩니다. |
...
width | 3% |
---|
...
Ui text box | ||
---|---|---|
| ||
Pictures necessary (Coordinator Role) |
...
width | 100px |
---|
...
width | 2% |
---|
...
width | 45% |
---|
Code Block | ||
---|---|---|
| ||
$ machcoordinatoradmin --get-host-resource -i
-------------------------------------------------------------------------
Machbase Coordinator Administration Tool
Release Version - d35aa87.develop
Copyright 2014, MACHBASE Corp. or its subsidiaries
All Rights Reserved
-------------------------------------------------------------------------
Host Name : 192.168.0.32
CPU Info :
Model Name : Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz
Number of CPUs : 8
Number of CPU Cores : 4
CPU Utilization : 18.5%
CPU IOWait Ratio : 0.0%
Memory Info :
Physical Memory Utilization : 94.2%
Virtual Memory Utilization : 85.1%
Network Info :
Receive Bytes(per second) : 35827
Receive Packets(per second) : 250
Transmit Bytes(per second) : 35716
Transmit Packets(per second) : 248
Disk Info :
/dev/sda1 : 87.0%
|-> 192.168.0.32:32110 /home/cumulus/work/nfx/test/nodes/coordinator1
|-> 192.168.0.32:32310 /home/cumulus/work/nfx/test/nodes/broker1
|-> 192.168.0.32:32410 /home/cumulus/work/nfx/test/nodes/active1_1
|-> 192.168.0.32:32520 /home/cumulus/work/nfx/test/nodes/active2_2 |
...
width | 3% |
---|
...
Cluster : 호스트 자원 모니터링 기능
5.2 부터는 Cluster Edition 에서 각 Node 가 상주한 호스트의 자원을 모니터링할 수 있습니다. 다음은 수집할 수 있는 자원 정보를 나타냅니다.
- CPU
- Memory
- Network
- Disk
Coordinator 에 요청할 때, 각 호스트에서 주기적으로 수집한 정보를 제공합니다.
- Command-line 을 통해
machcoordinatoradmin
에서--get-host-resource
명령을 입력해 요청 (plaintext 로 제공) - RESTful API (
/Get-Host-Resource
)를 통해 요청하거나 (JSON format 으로 제공)
Code Block |
---|
# Coordinator host 에서 command-line 을 통해 요청
machcoordinatoradmin --get-host-resource -i
# Coordinator 의 HTTP Admin Host:Port 에서 RESTful API 요청
curl http://192.168.0.32:32112/Get-Host-Resource |
...
width | 100px |
---|
Warning |
---|
아래부터는 작성 중입니다. |
그 외 변경사항
...
maxLevel | 4 |
---|---|
minLevel | 4 |
location | top |
CPU_AFFINITY_COUNT 음수 지원
CPU_AFFINITY_COUNT 에서 음수를 지원합니다. 사용 가능한 CPU Core 개수에서 해당 값을 뺀 나머지를 AFFINITY_COUNT 로 적용합니다.
이 때 CPU_AFFINITY_BEGIN_ID Property 값에서 출발하기 때문에, 주의해서 사용해야 합니다.
해당 Property 의 기본값은 여전히 0 (모두 사용) 입니다.
DELETE 동시 수행 불가
DELETE 동시 수행을 요청하더라도, DELETE 는 순차적으로 진행되어 이후 SELECT 를 방해합니다.
따라서 DELETE 가 수행 중인 경우에는, 동시에 요청된 DELETE 는 모두 에러 메시지를 발행하도록 변경되었습니다.
Tagdata : TAGNAME 에도 UPDATE 가능
TAGNAME 은 인덱스가 있었기 때문에 불가능했던 UPDATE 구문이, 이제 가능해졌습니다.
Code Block | ||
---|---|---|
| ||
UPDATE TAG METADATA SET NAME = 'TAG-AA' WHERE NAME = 'TAG-A'; |
Tagdata : DISK_KEYVALUE_DELETE_LOCKFREE 추가
DELETE 수행 시, 최신 데이터에 DELETE 범위의 데이터가 오지 않는다고 확신할 수 있다면 DELETE 성능을 올릴 수 있는 Property 입니다.
DISK_KEYVALUE_DELETE_LOCKFREE Property 값을 통해, Tagdata Table 의 최신 데이터에 대한 DELETE 를 건너뛸 수 있습니다.
기본값은 1 (켜짐) 입니다. 실시간 데이터가 동일 Timestamp 값을 가지고 입력된다면, 해당 Property 의 기본값을 그대로 두시는 것을 추천합니다.
DATE_TRUNC() 시간 범위 제한 해제
각 시간 단위마다, 시간 범위가 제한되었던 문제가 해결되었습니다.
예를 들어, 초 단위인 경우에는 resolution 값이 45초를 넘을 수 없었지만, 지금은 86400 초 까지 사용 가능합니다.
...
Cluster Edition : DDL 부분 실패해도, Cluster 서비스를 계속함
부분적으로 몇몇 Node 가 DDL 이 실패하게 되면, Cluster 전체가 서비스를 못 하는 상황이 발생했었습니다.
이제는 DDL 이 실패하더라도, 성공한 Node 만으로 Cluster 서비스를 계속하도록 수정했습니다.
실패한 Node 는 DDL-incompleted
상태가 되며, 별도 조치가 필요하거나 Remove-Node 로 삭제해야 합니다.
개선된 이슈
Ui text box | ||
---|---|---|
| ||
반영된 순으로 기재합니다. |
...
maxLevel | 3 |
---|---|
minLevel | 3 |
location | top |
Common
모든 서버 제품 적용되는 이슈 사항입니다.
- LSM 인덱스를 사용한 Log Table SELECT 시, 인덱싱이 완료된 최근 레코드가 매우 낮은 확률로 조회되지 않는 문제가 해결되었습니다. (#1259)
- Lookup Table 에서 DURATION 절을 사용하게 되면, 서버가 비정상종료되던 문제가 해결되었습니다. (#1271)
- 클라이언트가 비정상적인 프로토콜 메시지를 전송할 때, 서버의 에러 메시지가
Invalid protocol state.
만 나오던 문제가 해결되었습니다. (#1214)
이제는Invalid protocol state. Check your application again. (Protocol = OOO, Stmt State = OOO)
로 자세히 나오도록 했습니다. - 메모리 사용량을 줄이기 위해 DISK_KEYVALUE_ENABLE_MEM_INDEX Property 를 해제 (0) 하는 경우,
Tagdata 테이블의 SELECT 가 느려지던 문제가 해결되었습니다. (#1164) - SELECT 가 빈번한 상황에서, 같은 테이블에 DELETE 를 수행하는 경우엔 Hang 이 발생하던 문제가 해결되었습니다. (#1286)
DELETE 작업을 곧바로 진행하기 힘든 경우에는, 별도의 DELETE Thread 에게 맡긴 채로 작업을 종료하기 때문에 DELETE 완료가 당장 안될 수도 있습니다. - Windows 환경에서, 클라이언트 연결 해제가 완료되었음에도 TIME_WAIT 가 급격히 늘어나는 문제가 해결되었습니다. (#1160)
- UNION ALL 에서 AVG Function 을 조회해서 합치는 경우, 서버가 비정상 종료하던 문제가 해결되었습니다. (#1330)
- Tagdata Table 에서 DELETE WHERE 를 통해 메타데이터 삭제를 수행할 때, 간헐적으로 서버가 비정상 종료하던 문제가 해결되었습니다. (#1322)
- Windows 환경에서, 이 작업을 완료하기 위한 페이징 파일이 너무 작습니다 라는 에러와 함께 서버가 비정상 종료하던 문제가 해결되었습니다. (#1291)
- Tagdata Table DELETE 이후에도 SELECT 속도가 예전보다 빨라지지 않던 문제가 해결되었습니다. (#1300)
- SELECT 구문에서 DURATION 절에 MINUTES 처럼 복수형 단위를 사용해도 에러가 나오지 않아서 의미 전달이 실패하던 문제가 해결되었습니다. (#1291)
기본적으로 단위를 나타낼 때는 단수형 단위를 사용합니다. (예) MINUTE, SECOND - Fixed Table 조회 시, 간혹 실패하는 경우가 발생할 수 있는데, 이 때 서버로의 클라이언트 접속이 아예 안 되는 문제가 해결되었습니다. (#1354)
- Stream 도중 실패할 경우, 에러 메시지를 출력한 다음에 종료하도록 수정했습니다. (#859)
- Volatile Table 의 INSERT INTO ON DUPLICATE UPDATE 구문이 실패하는 경우엔, 레코드가 변경되지 않습니다.
그런데 이 때 재부팅하면 레코드가 변경되어 있던 문제가 해결되었습니다. (#1366) - 저장 관리자에서 메모리 재사용 목적으로 메모리 해제를 하지 않아 사용 메모리가 증가하던 문제가 해결되었습니다. (#1392)
- SELECT 도중 DROP TABLE TAG; 작동이 수행되어 서버가 비정상 종료하던 문제가 해결되었습니다. (#1325)
- 호스트 시간이 현재 시각보다 과거/미래로 수정될 때, 서버가 비정상 종료하던 문제가 해결되었습니다. (#1420)
- SELECT 가 Parallel Scan 을 진행할 때, 인덱스 빌드 중인 경우 결과를 가져오지 못하던 문제가 해결되었습니다. (#1418)
- SELECT 가 Parallel Scan 을 진행할 때, LIMIT 가 존재하면 LIMIT 까지만 읽어 성능 개선을 하도록 수정했습니다. (#477)
- Tagdata Table SELECT 에서, 시간 범위 조건에 등호 (=) 가 포함되지 않았는데 등호 조건에 포함된 결과까지 나오던 문제가 해결되었습니다. (#1431)
- RTRIM() 에서 길이가 작은 문자열에 적용할 경우 정상적으로 작동하지 않던 문제가 해결되었습니다. (#1472)
- NULL 을 나타내는 값을 WHERE 절에 사용할 경우, 에러가 발생하도록 수정했습니다. (#1457)
NULL 값 비교에는 IS NULL 또는 IS NOT NULL 을 사용해야 합니다.
Cluster Edition
Cluster Edition 에 적용되는 이슈 사항입니다.
- 동일한 패키지 이름을 Add-Package 할 경우 성공하던 문제가 해결되었습니다. (#1296)
- Fixed Table 조회 시 Global OID 가 간헐적으로 오염될 수 있는 문제가 해결되었습니다. (#1285)
--force-restore-state
명령의 대상이scrapped
상태만 지원됐었으나,ddl-incomplete
상태도 가능하도록 수정했습니다. (#1324)- 종료되었다 되살아난 Warehouse 가 존재할 경우, 이후 DDL 수행이 되살아난 Warehouse 에서는 전혀 다른 방법으로 진행하던 문제가 해결되었습니다. (#1223)
이렇게 진행할 경우, 추후 진행되는 쿼리가 해당 Warehouse 에서는 수행되지 않거나 비정상 종료될 수 있는 잠재적 위험을 가지고 있었습니다. - machloader 를 사용해 입력하는 경우, Warehouse 가 전부 비정상 종료되던 문제가 해결되었습니다. (#1367)
- 종료되었다 되살아난 Warehouse 가 인식된 직후, SELECT 가 실패하던 문제가 해결되었습니다. (#1344)
- 연결이 종료된 상황에서 메시지를 보내는 경우, 메시지가 전달이 성공한 것 처럼 여겨지던 문제가 해결되었습니다. (#1327)
- INSERT SELECT 도중 Warehouse 가 종료될 경우, 해당 Warehouse 는 scrapped 상태가 되도록 수정했습니다. (#1441)
- Secondary Coordinator 가 추가되거나 되살아났다면, Primary Coordinator 의 DDL 정보와 동기화되도록 수정했습니다. (#1429)
MWA / Tag Analyzer
마크베이스 웹 관리자에 적용되는 이슈 사항입니다.
- 깨진 한글이나 올바르지 않은 문자가 서버에 입력된 경우, MWA 에서 인코딩이 실패해도 계속 진행하던 문제가 해결되었습니다. (#1381)
- 특정 OS 에서,
MWAserver start
시 표시되는 접속 주소가 올바르지 않던 문제가 해결되었습니다. (#1387) - Coordinator 상태, Warehouse 상태 추가가 이뤄지면서, MWA Cluster Admin 에도 동일하게 표시할 수 있도록 수정했습니다. (#1426)
Client Library
클라이언트 라이브러리에 적용되는 이슈 사항입니다.
...
5 추가 내용
...
5.1 에 비교해서, 5.5 에서 추가되고 변경된 내용을 다룹니다.
5.5 개선 사항
...
5.1 에서 발생했거나, 잠재적인 문제를 수정한 내역을 정리합니다.
5.5 패치 노트
...
5.5.0 이후에 반영되는 패치 내역을 정리합니다.