timesten in-memory database

38
André Danelon Rodrigo Figueiredo

Upload: andre-danelon

Post on 21-Jun-2015

813 views

Category:

Technology


1 download

TRANSCRIPT

André Danelon

Rodrigo Figueiredo

Tempo de Resposta

Tempo de RespostaMundo em Tempo Real

Tempo de RespostaPor quê o Tempo de Resposta é importante?

- Não cumprimento de SLA○ Devido ao longo tempo de resposta

- Rotatividade de clientes○ Produtos competitivos oferecem um melhor tempo de resposta

- Baixa produtividade do usuário e insatisfação do cliente○ Clientes insatisfeitos

- Perda de receita e baixa rentabilidade○ Efeito da perda de negócios e oportunidades

Tempo de RespostaMelhorando o Tempo de Resposta

- Defina os requisitos de negócio- Avalie soluções

TimesTen Overview

TimesTen OverviewO que é?

- O TimesTen é um banco de dados em memória, com características de um banco de dados relacional convencional.- Fornece tempo de resposta muito baixo e throughput muito alto a sistemas com desempenho crítico.- Pode ser usado como um banco de dados de registro e/ou como um armazenamento em cache de um banco de dados Oracle.

TimesTen OverviewPor quê o TimesTen é rápido?

● Otimização In-Memory:- Banco de dados na memória

compartilhada- Métodos otimizados de acesso

a memória

● Direct-link para melhor performance:- Memória compartilhada

mapeada no processo da aplicação

TimesTen OverviewFerramentas de Desenvolvimento

Performance

Performance

- Transação de leitura em menos de 5 microssegundos- Transação de atualização ou inserção em menos de 15 microssegundos

Performance

Performance

Armazenamento

Armazenamento- Cache Group é uma coleção de tabelas do banco de dados Oracle usadas com frequência, que estão relacionadas através de restrições de chaves externas

- Todo ou subconjunto de linhas e colunas

- Definido por cláusulas SQL:CREATE CACHE GROUPE nameFROM owner.tab1 (col1, col2)

owner.tab2 (col1, col4)WHERE <predicate>

- Tabelas cache são tabelas regulares de um banco de dados:

Joins, insert/update/delete

Armazenamento- Usuários podem definir os Grupos de cache através de programação ou através de um utilitário interativo ttIsql.- Mesmos tipos de dados básicos que o banco de dados Oracle de forma que não é necessário mapear os tipos de dados do banco de dados Oracle para os tipos de dados do TimesTen.- Índices nas tabelas do cache in-memory, que podem corresponder aos índices no banco de dados Oracle ou podem ser diferentes. - Flexibilidade para criar múltiplos índices na mesma tabela e definição dos índices em várias colunas.

ArmazenamentoCache Group somente Leitura

Dados são atualizados no banco de dados Oracle e o TimesTen gerencia a propagação das atualizações do banco de dados Oracle para o armazenamento em cache.

ArmazenamentoCache Group AWT (Asynchronous Writethrough)

Podem ser atualizados no cache, mas não no banco de dados Oracle. O TimesTen propaga as atualizações do cache do banco de dados Oracle de forma assíncrona após a confirmação de uma transação.

ArmazenamentoCache Group SWT (Synchronous Writethrough)

Podem ser atualizados no cache, mas não no banco de dados Oracle. As atualizações nas tabelas do cache in-memory são propagadas para o banco de dados Oracle de forma síncrona com a confirmação de uma atualização.

Disponibilidade

Disponibilidade

Quando o Oracle TimesTen é usado exclusivamente como o banco de dados de registro em vez de um cache de banco de dados in-memory do banco de dados Oracle, ele garante a alta disponibilidade de seus dados através da replicação, diversas operações on-line e inúmeros utilitários que suportam falhas, recuperação e atualizações on-line.

Disponibilidade

● Alta Performance:- Síncrono / Assíncrono- Replicação memory-to-memory- Propagação paralela de mudanças para o Standby e Subscribers

● DRP suporte.

DisponibilidadeReplicação

Dell TimesTen Use Case

Juan GarzaDell Business Analyst

Real Life Stories on Extreme Performance withIn-Memory Database Technology

Presented at Oracle Open World

Environmentfrom a DataPerspective

2 Confidential 1/3/2012 Global Operations & Technology - I/T

Data Environment

• Capture and consolidate• Near real-time replication• Large data volume• High rate of change

Order

PendingProduction

Build

Shipped

Delivered

Supply ChainManagement System

Supply Chain Data Hub

3 Confidential 1/3/2012 Global Operations & Technology - I/T

Environmentfrom anApplicationPerspective

4 Confidential 1/3/2012 Global Operations & Technology - I/T

Application Environment• One-Stop-Shop for Order

Status, Health and IssueResolution

• Current order information• Response times within

Customer Distress Orderseconds SalesCare Management

Basic Queries Advance Queries

Global Order Visibility - User Interface

Order

PendingProduction Supply Chain

ManagementSystemSupply Chain Data HubBuild

Shipped

Delivered

5 Confidential 1/3/2012 Global Operations & Technology - I/T

TimesTenSolutionArchitecture

6 Confidential 1/3/2012 Global Operations & Technology - I/T

TimesTen Architecture

Sales Customer Care Distress Order Mgmt

Basic Queries Advance Queries

Order Visibility User Interface

PL/SQL

ReplicatorOrder

Pending PL/SQLProduction

Build Supply Chain Data Hub

Shipped

Delivered

Oracle TimesTenIn-Memory Database

Supply ChainManagement

System

7 Confidential 1/3/2012 Global Operations & Technology - I/T

TimesTen Architecture DetailMS Sharepoint User Interface

Basic Queries

PL/SQL

Replication

Source Extract LoadDatabase .net ttBulkCp

Oracle 11g

Advance Queries

Failover

PL/SQL

Merge TimesTenttIsql In-Memory

Database

Dell Power Edge M610Oracle Enterprise Linux

96GB Ram2 Intel(R) Xeon(R) CPU

L5520 @ 2.27GHz 4 core

Global Operations & Technology - I/T

PerformanceStatistics

9 Confidential 1/3/2012 Global Operations & Technology - I/T

Improved Query Performance10 min

8 min

Minutes

0 min

7.5 min 7 min

4.6 min

Query #1 Query #2 Query #3 Query #4

Physical DB10 sec

5.05 sec TimesTen

Seconds1.4 sec

1 sec

1.15 sec.8 sec

.01 sec

10 Confidential 1/3/2012 Global Operations & Technology - I/T

Lessons Learned• Adding more data doesn’t affect performance• Use sql query to monitor memory usage

• select temp_allocated_size, temp_in_use_size, temp_in_use_high_water from monitor;• Check high water marks: temp_in_use_high_water

Scaling87

6

5

4

3

2

1

01.8 2.37 2.97 3.24

Millions of rows

Qry 1

Qry 2

Qry 3

Trend

3.46 4.46

11 Confidential 1/3/2012 Global Operations & Technology - I/T

Summary

Why TimesTen?

✓ Transparency▪ Users get increased performance without change in user interface

✓ PL/SQL▪ Maintain an identical API between our physical and in-memory database▪ Developers do not have to learn a new language

✓ Response Time▪ Significant increase in performance

12 Confidential 1/3/2012 Global Operations & Technology - I/T

Obrigado.

Referências- Oracle TimesTen In-Memory Database Overviewhttp://www.oracle.com/technetwork/products/timesten/overview/timesten-imdb-086887.html?ssSourceSiteId=otnpt- Cómo construimos Oracle TimesTen:http://www.slideshare.net/RevistaSG/cmo-construimos-oracle-timesten- Oracle TimesTen In-Memory Database Features Overview:http://www.docstoc.com/docs/7641049/Oracle-TimesTen-In-Memory-Database-Features-Overview-%EB%8C%80%ED%95%99-%EC%88%98%EA%B0%95- Usando o Oracle In-Memory Database Cache para acelerar o banco de dados Oracle:http://www.oracle.com/technetwork/pt/database/timesten/documentation/tutorial-in-memory-database-cache-1721639-ptb.pdf- Oracle® In-Memory Database Cache User's Guide 11g Release 2 (11.2.2):http://docs.oracle.com/cd/E11882_01/timesten.112/e21634/toc.htm