SlideShare a Scribd company logo
1 of 26
Download to read offline
Arcus Collection 기능과
Open Source 전략
박준현 / Naver Labs
2014. 03. 13
ⓒ NAVER Corp.
목차
1. Arcus 소개
2. Arcus Collection (특히, b+tree collection)
3. Arcus Open Source
1. Arcus 소개
4 / Open Technet Summit 2014
Arcus ?
 Memory Cache Cloud (developed by Naver Corp.)
 memcached 기반의 key-value cache cloud
 In-house development : 2009 ~ 현재
 Arcus 이름
 아치 구름
5 / Open Technet Summit 2014
Arcus 개발 배경
Service Applications
Write
Database
Read
 데이터 양과 요청 양의 증가
 성능 이슈
 Throughput
 Response Time
 Scalability 이슈
6 / Open Technet Summit 2014
Arucs 개발 배경 – Arcus 사용 구조
Service Applications
1) DB Write
Database
Arcus Cache Cloud
2) DB Read
1) Arcus
Get
3) Arcus
Set
2) Arcus Delete
 성능 해결
 DB 부하 경감
 서비스 요구 반영
7 / Open Technet Summit 2014
Memcached 대비 Arcus 개발 사항들
 Zookeeper 기반의 Cloud 형성 및 관리
 Elastic - node 추가/삭제, automatic failover
 Prefix 기능 확장 - delete, stats
 A prefix in key string : <key> => <prefix>:<subkey>
 Collection - List / Set / B+tree
 Small memory allocator
 Sticky Item
 Eager Item Expiration
 동적 configuration(memlimit, maxconns, …) 변경
 Item 속성 조회/변경
 Front caching at client, …
8 / Open Technet Summit 2014
Arcus Architecture
Applications Cache Cloud
Java/C
Client
consistent hashing
Unified Cloud Admin
(Zookeeper ensemble)
Monitoring
9 / Open Technet Summit 2014
Arcus Stats
 The number of clouds
 대략 140 개
 The total memory used
 대략 10 TB
 The number of operations
 220만 ops / sec (오후 3시경)
 220 * 3600 * 16 ≈ 1267억 ops / day
10 / Open Technet Summit 2014
Arcus Misc
 Supported OS – Linux Only
 CentOS 64 bit
 Supported Clients
 Java, C
 Supported Server Protocol
 Ascii protocol only
2. Arcus Collection (B+Tree Collection)
12 / Open Technet Summit 2014
Arcus Collection
 Simple Key-Value Item
 Item : < key, single data >
 Operation : get/set/delete/…
 Collection item
 Item: < key, a collection of elements >
 Element : < single data >
 Operation : create/drop/insert/delete/get/…
13 / Open Technet Summit 2014
Collection 유형
유형 특징
List  Double linked list 구조
 List index 기반의 element 접근
Set  An unordered set of unique data
 Membership checking (예, 친구 정보)
 Extendable hash table 구조
B+Tree  An ordered data set based on b+tree key
 bkey(b+tree key) 기반의 range scan (with filtering)
 Position 기반의 range scan
14 / Open Technet Summit 2014
B+Tree Collection 구조
 B+Tree Collection 구조
 B+Tree Meta Info
 ecount, bkey type, …
 root node address
 B+Tree Element 구조
bkey1
-------
[eflag]
data
bkey2
-------
[eflag]
data
bkey15
-------
[eflag]
data
bkey75
-------
[eflag]
data
bkey76
-------
[eflag]
data
bkey95
-------
[eflag]
data
... ...
...
<key, b+tree info>
bkey  B+tree key, unique value in b+tree.
 8 bytes unsigned integer / variable length(1~31) bytes array
[eflag]  Optional element flag, used as filterable field
 Variable length(1~31) bytes array
data  단순 저장/조회 용도의 data field (max 4KB)
15 / Open Technet Summit 2014
B+Tree Collection 속성
 B+tree colleciton 속성
 maxcount, maxbkeyrange, overflowaction, …
 maxbkeyrange
 Maximum bkey range allowed, default: 0(disabled)
 예) 시간 역순의 post 저장 b+tree에 최근 2일치 데이터만 보관
 maxbkeyrange를 2일치로 설정 (bkey는 post 생성 시간 가정)
 New bkey 추가 => maxbkeyrange 검사 및 old bkey 자동 삭제
 overflowaction
 smallest_trim, largest_trim, error
16 / Open Technet Summit 2014
Arcus Collection 연산
 B+tree collection 연산
 create / drop
 B+tree element 연산
 insert/upsert
 update
 delete
 get
 count
 incr/decr
 find position
 get by position
17 / Open Technet Summit 2014
Bkey 기반의 조회
 B+tree get
 <key, bkey_range, [eflag_filter,] [[offset,] count]> => elements
 조회 조건
조건 설명
bkey_range  Mandatory, ascending or descending 조회 가능
 Ex) 100..200, 200..100, 0x00AA..0x00FF
[eflag_filter]  Optional filter condition
 eflag 부분 값/전체 값에 대한 filter 조건
 [bitwise operator +] comparison operator
 bitwise : AND, OR, XOR
 comparison: EQ, NE, LT, LE, GT, GE, IN, NOT IN
[[offset,count]  Optional, skip count 와 retrieval count 명시
18 / Open Technet Summit 2014
Position 기반의 연산
 B+tree find position
 <key, bkey, order> => position
 <order>: asc | desc
 B+tree get by position
 <key, order, position_range> => elements
 <order>: asc | desc
참고) Position 기반 연산의 제공을 위해, b+tree nonleaf node는
각 lower sub-tree에 존재하는 # of elements 정보를 유지
19 / Open Technet Summit 2014
B+Tree 활용 1) Bkey 기반의 조회
 SNS의 timeline 서비스들
 B+tree element 정보
 Bkey: post 생성 시간
 Eflag: post category 표시
 Data: post 정보
 조회 요청 예들
 Example 1) 최근 20개 post 조회
 Get : <key, 20201231..19000101, 20>
 Example 2) 음악, 미술에 관한 최근 20개 post 조회
 Get : <key, 20201231..19000101, 0, EQ, “음악,미술”, 20>
20 / Open Technet Summit 2014
B+Tree 활용 2) Position 기반의 조회
 Ranking 시스템
 B+tree element 정보
 Bkey: score
 Data: User info
 조회 요청 예들
 Example 1) Score 순위 기준 101등 ~ 120등의 사용자 조회
 Get by position: <key, desc, 101..120>
 Example 2) 특정 score 앞에 10명의 사용자 조회
 Find position: <key, bkey, desc> => 300 이라 가정
 Get by position <key, desc, 290..299>
21 / Open Technet Summit 2014
B+Tree 활용 3) Record 구조
 하나의 Record 구조 구현
 <field name, value>, … <field name, value>
 Field name: bkey로 encoding
 Field value: data 부분에 저장
 Record 조회
 <key>로 특정 record 선택
 전체 field 조회 : bkey range를 최소, 최대 값으로 지정
 일부 field 조회 : single bkey로 조회 또는 bkey range로 조회
 함께 조회할 field name은 bkey comparison 상 서로 이웃하도록
encoding 필요
3. Arcus Open Source
23 / Open Technet Summit 2014
네이버의 Open Source 참여
 Arcus Open Source 준비 중
 네이버도 많은 Open Source SW를 사용하여 서비스를 개발
 따라서, Open Source SW 생산자로서의 기여는 당연한 의무
 네이버의 Open Source SW들
 Cubrid – Disk based DBMS
 XpressEngine – Contents Management System
 nGrinder – 성능 측정 툴
 Jindo – Javascript Library
 그 외에도 여러 OSS들
24 / Open Technet Summit 2014
Arcus Open Source
 Open 예정 : 1~2달 내
 Open 내용
 Arcus cache server & Java/C clients
 Zookeeper library with Arcus modification
 Arcus monitoring system, …
 기대 효과
 서비스 개발에서 DBMS 외에 Cache Solution은 필수
 Arcus는 국내 최초의 Open Source Cache Solution.
 국내 여러 서비스 개발 및 품질 향상에 기여할 것으로 기대.
 Open Source SW 발전 및 개발자 양성
25 / Open Technet Summit 2014
Arcus 개발자로서의 바램
 많은 서비스들에서 확산 적용
 사용되지 않는 Arcus는 의미가 없음
 Open Source SW 자체의 기능, 품질, 사용편이성
 Open Source SW 인식의 중요성
 Not Free SW => 공유와 참여로 발전
 Maintainer, Contribution, Community, … 활성화될 수 있게.
 지속적인 발전
 (Open Source) System SW와 서비스 개발의 수평적 도움 관계
 안정되고 자유로운 SW 개발 환경 조성 및 SW 개발자 양성
 SW 기술 및 품질 향상 => 여러 서비스 개발에 기여
Thank You !!

More Related Content

What's hot

MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Cana Ko
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계PgDay.Seoul
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선NAVER D2
 
Cubrid Inside 5th Session 4 Replication
Cubrid Inside 5th Session 4 ReplicationCubrid Inside 5th Session 4 Replication
Cubrid Inside 5th Session 4 ReplicationCUBRID
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1NeoClova
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정HyeonSeok Choi
 
Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Sung wook Kang
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)창언 정
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes창언 정
 

What's hot (20)

MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
 
Cubrid Inside 5th Session 4 Replication
Cubrid Inside 5th Session 4 ReplicationCubrid Inside 5th Session 4 Replication
Cubrid Inside 5th Session 4 Replication
 
About memcached
About memcachedAbout memcached
About memcached
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
 
Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes
 

Similar to Ots2014 arcus-collection-open source

Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBrockplace
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912Yooseok Choi
 
Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Kee Hoon Lee
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)WhaTap Labs
 
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing SystemOpenStack Korea Community
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack SolutionNalee Jang
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCPDaegeun Kim
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena DollyJi-Woong Choi
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션서버 H/W, S/W 인벤토리 Auto Discovery 솔루션
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션옥시즌
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
Amazon aurora 2
Amazon aurora 2Amazon aurora 2
Amazon aurora 2EXEM
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Keon Ahn
 

Similar to Ots2014 arcus-collection-open source (20)

Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)
 
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
Infiniflux introduction
Infiniflux introductionInfiniflux introduction
Infiniflux introduction
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션서버 H/W, S/W 인벤토리 Auto Discovery 솔루션
서버 H/W, S/W 인벤토리 Auto Discovery 솔루션
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
Amazon aurora 2
Amazon aurora 2Amazon aurora 2
Amazon aurora 2
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Ots2014 arcus-collection-open source

  • 1. Arcus Collection 기능과 Open Source 전략 박준현 / Naver Labs 2014. 03. 13 ⓒ NAVER Corp.
  • 2. 목차 1. Arcus 소개 2. Arcus Collection (특히, b+tree collection) 3. Arcus Open Source
  • 4. 4 / Open Technet Summit 2014 Arcus ?  Memory Cache Cloud (developed by Naver Corp.)  memcached 기반의 key-value cache cloud  In-house development : 2009 ~ 현재  Arcus 이름  아치 구름
  • 5. 5 / Open Technet Summit 2014 Arcus 개발 배경 Service Applications Write Database Read  데이터 양과 요청 양의 증가  성능 이슈  Throughput  Response Time  Scalability 이슈
  • 6. 6 / Open Technet Summit 2014 Arucs 개발 배경 – Arcus 사용 구조 Service Applications 1) DB Write Database Arcus Cache Cloud 2) DB Read 1) Arcus Get 3) Arcus Set 2) Arcus Delete  성능 해결  DB 부하 경감  서비스 요구 반영
  • 7. 7 / Open Technet Summit 2014 Memcached 대비 Arcus 개발 사항들  Zookeeper 기반의 Cloud 형성 및 관리  Elastic - node 추가/삭제, automatic failover  Prefix 기능 확장 - delete, stats  A prefix in key string : <key> => <prefix>:<subkey>  Collection - List / Set / B+tree  Small memory allocator  Sticky Item  Eager Item Expiration  동적 configuration(memlimit, maxconns, …) 변경  Item 속성 조회/변경  Front caching at client, …
  • 8. 8 / Open Technet Summit 2014 Arcus Architecture Applications Cache Cloud Java/C Client consistent hashing Unified Cloud Admin (Zookeeper ensemble) Monitoring
  • 9. 9 / Open Technet Summit 2014 Arcus Stats  The number of clouds  대략 140 개  The total memory used  대략 10 TB  The number of operations  220만 ops / sec (오후 3시경)  220 * 3600 * 16 ≈ 1267억 ops / day
  • 10. 10 / Open Technet Summit 2014 Arcus Misc  Supported OS – Linux Only  CentOS 64 bit  Supported Clients  Java, C  Supported Server Protocol  Ascii protocol only
  • 11. 2. Arcus Collection (B+Tree Collection)
  • 12. 12 / Open Technet Summit 2014 Arcus Collection  Simple Key-Value Item  Item : < key, single data >  Operation : get/set/delete/…  Collection item  Item: < key, a collection of elements >  Element : < single data >  Operation : create/drop/insert/delete/get/…
  • 13. 13 / Open Technet Summit 2014 Collection 유형 유형 특징 List  Double linked list 구조  List index 기반의 element 접근 Set  An unordered set of unique data  Membership checking (예, 친구 정보)  Extendable hash table 구조 B+Tree  An ordered data set based on b+tree key  bkey(b+tree key) 기반의 range scan (with filtering)  Position 기반의 range scan
  • 14. 14 / Open Technet Summit 2014 B+Tree Collection 구조  B+Tree Collection 구조  B+Tree Meta Info  ecount, bkey type, …  root node address  B+Tree Element 구조 bkey1 ------- [eflag] data bkey2 ------- [eflag] data bkey15 ------- [eflag] data bkey75 ------- [eflag] data bkey76 ------- [eflag] data bkey95 ------- [eflag] data ... ... ... <key, b+tree info> bkey  B+tree key, unique value in b+tree.  8 bytes unsigned integer / variable length(1~31) bytes array [eflag]  Optional element flag, used as filterable field  Variable length(1~31) bytes array data  단순 저장/조회 용도의 data field (max 4KB)
  • 15. 15 / Open Technet Summit 2014 B+Tree Collection 속성  B+tree colleciton 속성  maxcount, maxbkeyrange, overflowaction, …  maxbkeyrange  Maximum bkey range allowed, default: 0(disabled)  예) 시간 역순의 post 저장 b+tree에 최근 2일치 데이터만 보관  maxbkeyrange를 2일치로 설정 (bkey는 post 생성 시간 가정)  New bkey 추가 => maxbkeyrange 검사 및 old bkey 자동 삭제  overflowaction  smallest_trim, largest_trim, error
  • 16. 16 / Open Technet Summit 2014 Arcus Collection 연산  B+tree collection 연산  create / drop  B+tree element 연산  insert/upsert  update  delete  get  count  incr/decr  find position  get by position
  • 17. 17 / Open Technet Summit 2014 Bkey 기반의 조회  B+tree get  <key, bkey_range, [eflag_filter,] [[offset,] count]> => elements  조회 조건 조건 설명 bkey_range  Mandatory, ascending or descending 조회 가능  Ex) 100..200, 200..100, 0x00AA..0x00FF [eflag_filter]  Optional filter condition  eflag 부분 값/전체 값에 대한 filter 조건  [bitwise operator +] comparison operator  bitwise : AND, OR, XOR  comparison: EQ, NE, LT, LE, GT, GE, IN, NOT IN [[offset,count]  Optional, skip count 와 retrieval count 명시
  • 18. 18 / Open Technet Summit 2014 Position 기반의 연산  B+tree find position  <key, bkey, order> => position  <order>: asc | desc  B+tree get by position  <key, order, position_range> => elements  <order>: asc | desc 참고) Position 기반 연산의 제공을 위해, b+tree nonleaf node는 각 lower sub-tree에 존재하는 # of elements 정보를 유지
  • 19. 19 / Open Technet Summit 2014 B+Tree 활용 1) Bkey 기반의 조회  SNS의 timeline 서비스들  B+tree element 정보  Bkey: post 생성 시간  Eflag: post category 표시  Data: post 정보  조회 요청 예들  Example 1) 최근 20개 post 조회  Get : <key, 20201231..19000101, 20>  Example 2) 음악, 미술에 관한 최근 20개 post 조회  Get : <key, 20201231..19000101, 0, EQ, “음악,미술”, 20>
  • 20. 20 / Open Technet Summit 2014 B+Tree 활용 2) Position 기반의 조회  Ranking 시스템  B+tree element 정보  Bkey: score  Data: User info  조회 요청 예들  Example 1) Score 순위 기준 101등 ~ 120등의 사용자 조회  Get by position: <key, desc, 101..120>  Example 2) 특정 score 앞에 10명의 사용자 조회  Find position: <key, bkey, desc> => 300 이라 가정  Get by position <key, desc, 290..299>
  • 21. 21 / Open Technet Summit 2014 B+Tree 활용 3) Record 구조  하나의 Record 구조 구현  <field name, value>, … <field name, value>  Field name: bkey로 encoding  Field value: data 부분에 저장  Record 조회  <key>로 특정 record 선택  전체 field 조회 : bkey range를 최소, 최대 값으로 지정  일부 field 조회 : single bkey로 조회 또는 bkey range로 조회  함께 조회할 field name은 bkey comparison 상 서로 이웃하도록 encoding 필요
  • 22. 3. Arcus Open Source
  • 23. 23 / Open Technet Summit 2014 네이버의 Open Source 참여  Arcus Open Source 준비 중  네이버도 많은 Open Source SW를 사용하여 서비스를 개발  따라서, Open Source SW 생산자로서의 기여는 당연한 의무  네이버의 Open Source SW들  Cubrid – Disk based DBMS  XpressEngine – Contents Management System  nGrinder – 성능 측정 툴  Jindo – Javascript Library  그 외에도 여러 OSS들
  • 24. 24 / Open Technet Summit 2014 Arcus Open Source  Open 예정 : 1~2달 내  Open 내용  Arcus cache server & Java/C clients  Zookeeper library with Arcus modification  Arcus monitoring system, …  기대 효과  서비스 개발에서 DBMS 외에 Cache Solution은 필수  Arcus는 국내 최초의 Open Source Cache Solution.  국내 여러 서비스 개발 및 품질 향상에 기여할 것으로 기대.  Open Source SW 발전 및 개발자 양성
  • 25. 25 / Open Technet Summit 2014 Arcus 개발자로서의 바램  많은 서비스들에서 확산 적용  사용되지 않는 Arcus는 의미가 없음  Open Source SW 자체의 기능, 품질, 사용편이성  Open Source SW 인식의 중요성  Not Free SW => 공유와 참여로 발전  Maintainer, Contribution, Community, … 활성화될 수 있게.  지속적인 발전  (Open Source) System SW와 서비스 개발의 수평적 도움 관계  안정되고 자유로운 SW 개발 환경 조성 및 SW 개발자 양성  SW 기술 및 품질 향상 => 여러 서비스 개발에 기여