More Related Content Similar to Intro to goldilocks inmemory db - low latency (20) Intro to goldilocks inmemory db - low latency1. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 1 -
GOLDILOCKS ?
What is Goldilocks ?
Database ?
NoSQL DB ?
Shared Memory Solution ?
nanosecond
Jitter
Low-Latency
2. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 2 -
DBMS Core ArchitectureAdvantages of Shared Memory
Transaction & Simple SQL
B Tree Index
Concurrent Control
Client / Server Environment
Various Object Type & Meta
Backup & Recovery
High Performance
Light Weight
Direct Access to Memory
Easy to Manage
No Need to Transform Data
Inter Process Communication
DBMSShared Memory
Goldilocks is a specialized lightweight DB for the field of Low-Latency In-Memory Computing.
Goldilocks is fast, simple, lightweght, and easy to use.
GOLDILOCKS
+
GOLDILOCKS ?
3. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 3 -
DBMS vs. GOLDILOCKSDisk DBMS vs. In-Memory DBMS
GOLDILOCKS guarantees low-latency reponse.
-
GOLDILOCKS ?
Removal of Disk I/O cost Better Performance
Removal of (Disk I/O + Network I/O + Data
Transform ) Ultra Low Latency
GOLDILOCKS < us IMDB > 20us
DISK
RDBMS > ms
Application
DISK DBMS
Buffer
DB
Application
Memory DBMS
DB
Performance
Difference
Application
DB
API Driver
SQL
Query Processing
Storage API
DB
Storage API
Performance
Difference
DBMS GOLDILOCKS
Application
4. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 4 -
Features
Transaction Management
Transaction Processing
1024 Concurrent Transactions
B+ Tree Index
B+ Tree Index
Max Key Size 128 byte
Unique, Non Unique Index
Concurrency Control
Record Level Lock Support
MVCC (Multi-Version
Concurrency Control)
Client / Server Envrionment
Storage API Remote Support
Remote Management Tool
(Console Only)
Backup & Recovery
Selective Disk Logging Mode
Recovery by Disk Log
Loggin Configuration per Instance &
Object
Backup & Recovery Tool Support
(Object Schema & Data)
Various Object Type
Table, Direct Table, Queue
Communication by Queue Table
1:1, 1:N, N:1, N:N
Memory Management
Lock Free Segment Management
Memory Auto Extension
User Definition for Memory Space
Management
Simple Trigger
Detection of DML Event for Object
Provie Event Info. for User
Meta Information & SQL
Meta Info. Management
by Dictionary Table
metaManager Tool
Simple SQL
5. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 5 -
GOLDILOCS Internal Module
GOLDILOCKS Instance
Shared Memory
User Data Space
(Object Segment, Index Segment)
System Undo Space
Segment Manager
Disk Log Manager
Disk Log
Lock Manager
Deadlock Checker
Table Manager Queue Manager Index Manager
Listener
Process
Recover
Process
Transaction Manager Dictionary Manager
Recovery
Manager
Property
File
Memory Log
Manager
API Wrapper Error Handler
6. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 6 -
User Interface
7. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 7 -
User Interface
8. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 8 -
User Interface (Example)
You can develop your best performance solutions on
DBMS-like envrionment.
metaManager
[kevin@cheroky ~]$ metaManager
===================================================================
* GOLDILOCKS Meta Manager utility.
* Copyright 2012-2014, OnmirSoft in Sunje Corporation or its subsidiaries.
* All rights reserved.
===================================================================
metaManager> create instance test_ins;
create success
metaManager> create table T1 (
2 c1 char(20) ,
3 c2 int ,
4 c3 int )
5 init 10000000 extend 1000000 max 12000000;
create success
metaManager> create index idx_T1 on T1(c2);
create success
metaManager> insert into T1 values(‘aa’, 1, 2);
1 rows inserted.
metaManager> commit
[kevin@cheroky ~]$
165 typedef struct TABLE {
167 char c1[20];
168 int c2;
169 int c3;
170 } TABLE;
171
185 dbmInitHandle ( &sHandle, (char*) TC_INST_NAME );
186 dbmPrepareTable ( &sHandle, (char*) TABLE_NAME );
187
191 for ( i = nStart; i < nEnd; i++ )
193 {
194 memset ( &data, 0x00, sizeof(TABLE) );
195 sprintf ( data.c1, "%019d", i );
196
197 if ( opType == INSERT )
198 {
200 data.c2 = i;
201 data.c3 = 0;
202 dbmInsertRow ( &sHandle, (char*) TABLE_NAME, (char*)
&data, sizeof(TABLE));
203 dbmCommit ( &sHandle );
204 }
205 else if ( opType == SELECT )
206 {
208 data.c2 = i;
209 dbmSelectRow ( &sHandle, (char*) TABLE_NAME, (char*)
&data );
210 }
212 else if ( opType == UPDATE )
213 {
215 data.c2 = j;
216 dbmSelectForUpdateRow ( &sHandle, (char*) TABLE_NAME,
(char*) &data );
218 data.c3 = data.c3 + 1;
219 dbmUpdateRow ( &sHandle, (char*) TABLE_NAME, (char*)
&data );
220 dbmCommit ( &sHandle );
221 }
Storage API
9. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 9 -
Performance
Operation 1-Client 2-Client 4-Client 8-Client Average
Reponse Time
Insert 943,740 1,359,842 1,757,923 1,557,565 1.06 us
Update 1,929,321 3,025,221 4,660,572 5,241,087 0.52 us
Select 1,489,298 2,357,371 4,098,670 4,565,065 0.67 us
Delete 669,120 949,057 1,339,756 1,094,050 1.49 us
Testing Envionment
CentOS 6.2 (2.6.32-279) Intel(R) Core(TM) i7
– 3820 @ 3.6GHz * 4 Core * 2 Hyper Thread
5 Millon Record Set
Record Size : 800 Byte
Index Key Size : 4 Byte
Update/Select Random Search
Average OPS(Operations per Second)
0
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
1 2 4 8
OPS
Insert
select
Update
Delete
10. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 10 -
Performance
Operation 100,000 1 M 5 M 10 M
Insert 1,579,634 1,602,197 1,557,565 1,563,882
select 5,204,016 5,095,074 5,241,087 5,141,860
Update 4,539,879 4,317,909 4,565,065 4,476,832
Delete 1,133,908 1,115,889 1,094,050 1,157,487
Testing Envionment
No drop in performance with much more number of data records.
Average OPS(Operations per Second)
with different record count
CentOS 6.2 (2.6.32-279) Intel(R) Core(TM) i7
– 3820 @ 3.6GHz * 4 Core * 2 Hyper Thread
8 Client
Record Size : 800 byte
Index Key Size : 4byte
Update/Select Random Search
0
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
10만 100만 500만 1,000만건
Insert
select
Update
Delete
11. Pure In-Memory DBMS for High Performance
© 2013 Sunjesoft Corporation. All rights reserved.
- 11 -
Onmirsoft Ltd. ㈜온미르소프트
서울시 마포구 양화로 11길 36, 지석빌딩 201호(서교동)
Tel 02-322-6288 / 070-4238-6288 Fax 02-322-6788
Mail : smurf@onmirsoft.com
Please mail us to get a package and document.