SlideShare a Scribd company logo
Eliminating
Volatile Latencies
Inside Rakuten’s NoSQL Migration
Hitesh Shah
Sr. Engineering Manager
Rakuten Catalog Platform
2
Defining Observability for
Your Cloud DBaaS
April 20, 2022, 10 AM PT | 1 PM ET | 6 PM GMT
UPCOMING WEBINAR
NoSQL Adoption
Poll
Eliminating
Volatile Latencies
Inside Rakuten’s NoSQL Migration
Hitesh Shah
Sr. Engineering Manager
Rakuten Catalog Platform
5
+ For distributed, data-intensive apps that require high
performance and low latency
+ 400+ users worldwide
+ Results
+ Comcast: Reduced P99 latencies by 95%
+ FireEye: 1500% improvement in throughput
+ Discord: Reduced C* nodes from ~140 to 6
+ iFood: 9X cost reduction vs. DynamoDB
+ Open Source, Enterprise and Cloud options
+ Fully compatible with Apache Cassandra and Amazon
DynamoDB
About ScyllaDB
1ms <1ms
10ms
1M
10M
ScyllaDB Universe of 400+ Users
400+ Companies Use ScyllaDB
Seamless experiences
across content + devices
Fast computation of flight
pricing
Corporate fleet
management
Real-time analytics
2,000,000 SKU -commerce
management
Real-time location tracking
for friends/family
Video recommendation
management
IoT for industrial
machines
Synchronize browser
properties for millions
Threat intelligence service
using JanusGraph
Real time fraud detection
across 6M transactions/day
Uber scale, mission critical
chat & messaging app
6
Network security threat
detection
Power ~50M X1 DVRs with
billions of reqs/day
Precision healthcare via
Edison AI
Inventory hub for retail
operations
Property listings and
updates
Unified ML feature store
across the business
Cryptocurrency exchange
app
Geography-based
recommendations
Distributed storage for
distributed ledger tech
Global operations- Avon,
Body Shop + more
Predictable performance for
on sale surges
GPS-based exercise
tracking
Biography slide
7
Hitesh Shah
Sr. Engineering Manager
■ Passionate Engineer - Predominantly worked with bay area tech
■ Focused on development as well as operations
■ Interests - Distributed systems, Dynamically scalable platforms
■ Foodie, hiking, movie buff, reading
Company Logo
Agenda ■ Overview of Rakuten Catalog Platform
■ Generic Catalog Platform on NoSql
• Cassandra as a logical choice
■ Challenges with Cassandra
■ Why ScyllaDB
■ Migration Approach
■ Post Migration
■ Lessons Learned
■ ScyllaDB concerns
■ Let’s stay in touch!
8
Rakuten Catalog
Platform
9
Rakuten Catalog Platform
10
rakuten.com rakuten.co.jp
Pipeline Architecture
11
+ Total Catalog items: 1B+
+ Number of Items processed daily: 250M+
+ Read QPS: 10k-15k per Node
+ Write QPS: 3k-5k per Node
Data Processing Volumes
12
Data Processing Volumes
13
Product Catalog Design
14
Product Catalog Key Features
15
+ Near real-time price updates
+ Near real-time availability updates
+ Discovering purchasing trends — analytics
+ Discovering shopper preferences — analytics
+ Large volume of data
+ Fast growing catalog
+ with 100s of millions of catalog items
+ Catalog Enrichment Support
+ Low latency requirements
Cassandra as a first class NoSql DB
16
+ Highly scalable - naturally horizontally scalable
+ Effective with huge amount of data
+ Fast writes (append-only) without impacting reads
+ Fast reads — distributed
+ Column-family store
+ appeals to enrichments of specific elements
+ Speed of deployment
+ Analytics with large data processing
Migration to ScyllaDB
17
+ Inconsistent Performance; Volatile Latencies
+ JVM Issues; OOM; long GC Pauses
+ Single Slow node can impact cluster
+ Requires tons of manual operations
+ Horizontal scalability at stiff cost
Issues with Cassandra
18
+ 5x-6x Performance Improvements
+ Improved TCO; Better ROI
+ Consistent Latencies
+ Seastar framework
+ Much better parallelism
+ Drop-in Replacement
Why ScyllaDB
19
+ Enterprise Support
+ Private slack channel; SLAs
+ ScyllaDB custom shard-aware driver for Java
+ Incremental Compaction Strategy
+ Workload Prioritization
+ ScyllaDB Manager
Why ScyllaDB Enterprise
20
Migration Approach
21
Framework for Migration ScyllaDB Evaluation:
+ Candidate Use Cases
+ Data Ingestion
+ Serving customers
+ Proof of Concept
+ Running pipeline against ScyllaDB
+ Internal Benchmarking
+ Multiple iterations with various configurations
+ Tracking and evaluating ScyllaDB performance
+ Evaluating Shard-aware custom driver
Evaluation Methodology
22
Shard-aware Driver
23
+ ScyllaDB Engagement
+ Making a final decision
+ Finalizing production topology
+ Planning live Database migration
+ Training Team with ScyllaDB
Making a Decision
24
+ Functional Validation/Testing
+ Commissioning production cluster
+ Backup of c* cluster
+ Restoring Data in ScyllaDB cluster
+ Making ScyllaDB cluster ready
+ Replaying live production traffic/transactions
+ Switching to ScyllaDB
+ Post switchover production issues and
resolutions
+ Decommissioning old c* cluster
Production Migration
25
Post Migration
26
+ Average Feed Ingestion - 30-35% faster
+ Improved SLAs
+ 2.5x-5x improvements in feed publishing times
+ Quicker turnaround for catalog changes
+ 21 Nodes in cassandra to 6 Nodes in ScyllaDB
+ Hardware $$$ savings
KPI Improvements
27
+ Lengthy ScyllaDB evaluation cycle
+ Complex Technology
+ ScyllaDB Ramp Up curve is non-trivial
+ ScyllaDB sizing is the key and is misunderstood
+ Finalizing the cluster topology/server configuration was the key
+ Migrating Live production database is challenging
+ detailed planning
+ tight execution
+ customer communication
Lessons Learned
28
+ Lack of documentation
+ ScyllaDB not bug free, of course
+ Operational and Setup complexities
+ Monitoring ScyllaDB (i.e. internal metrics) is costly
+ ScyllaDB Monitoring Stack is free but..!
+ Hardware resource intensive
ScyllaDB Concerns
29
Sizing Poll
United States
2445 Faber St, Suite #200
Palo Alto, CA USA 94303
Israel
Maskit 4
Herzliya, Israel 4673304
www.scylladb.com
@scylladb
Thank You!
Q&A

More Related Content

PDF
Scylla Summit 2022: How ScyllaDB Powers This Next Tech Cycle
PDF
Scylla Summit 2022: Stream Processing with ScyllaDB
PDF
Renegotiating the boundary between database latency and consistency
PDF
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
PDF
Scylla Summit 2016: ScyllaDB, Present and Future
PDF
Introducing Scylla Open Source 4.0
PDF
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
PDF
How to Build a Scylla Database Cluster that Fits Your Needs
Scylla Summit 2022: How ScyllaDB Powers This Next Tech Cycle
Scylla Summit 2022: Stream Processing with ScyllaDB
Renegotiating the boundary between database latency and consistency
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2016: ScyllaDB, Present and Future
Introducing Scylla Open Source 4.0
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
How to Build a Scylla Database Cluster that Fits Your Needs

What's hot (20)

PDF
Scylla Summit 2022: Migrating SQL Schemas for ScyllaDB: Data Modeling Best Pr...
PPTX
Scylla Summit 2022: Scylla 5.0 New Features, Part 2
PPTX
Understanding Storage I/O Under Load
PDF
Scylla Summit 2016: Compose on Containing the Database
PDF
Running Scylla on Kubernetes with Scylla Operator
PDF
Demystifying the Distributed Database Landscape
PDF
Scylla Summit 2016: Graph Processing with Titan and Scylla
PPTX
FireEye & Scylla: Intel Threat Analysis Using a Graph Database
PPTX
Scylla Summit 2019 Keynote - Avi Kivity
PPTX
Cassandra vs. ScyllaDB: Evolutionary Differences
PPTX
Seastar Summit 2019 Keynote
PDF
Scylla Virtual Workshop 2020
PDF
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDB
PPTX
Scylla Summit 2022: Scylla 5.0 New Features, Part 1
PDF
Introducing Scylla Cloud
PPTX
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
PDF
Webinar how to build a highly available time series solution with kairos-db (1)
PPTX
Scylla Summit 2022: New AWS Instances Perfect for ScyllaDB
PDF
TechTalk: Reduce Your Storage Footprint with a Revolutionary New Compaction S...
PDF
Scylla Summit 2022: IO Scheduling & NVMe Disk Modelling
Scylla Summit 2022: Migrating SQL Schemas for ScyllaDB: Data Modeling Best Pr...
Scylla Summit 2022: Scylla 5.0 New Features, Part 2
Understanding Storage I/O Under Load
Scylla Summit 2016: Compose on Containing the Database
Running Scylla on Kubernetes with Scylla Operator
Demystifying the Distributed Database Landscape
Scylla Summit 2016: Graph Processing with Titan and Scylla
FireEye & Scylla: Intel Threat Analysis Using a Graph Database
Scylla Summit 2019 Keynote - Avi Kivity
Cassandra vs. ScyllaDB: Evolutionary Differences
Seastar Summit 2019 Keynote
Scylla Virtual Workshop 2020
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDB
Scylla Summit 2022: Scylla 5.0 New Features, Part 1
Introducing Scylla Cloud
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
Webinar how to build a highly available time series solution with kairos-db (1)
Scylla Summit 2022: New AWS Instances Perfect for ScyllaDB
TechTalk: Reduce Your Storage Footprint with a Revolutionary New Compaction S...
Scylla Summit 2022: IO Scheduling & NVMe Disk Modelling
Ad

Similar to Eliminating Volatile Latencies Inside Rakuten’s NoSQL Migration (20)

PDF
New Ways to Reduce Database Costs with ScyllaDB
PDF
Running a DynamoDB-compatible Database on Managed Kubernetes Services
PDF
Moving from DynamoDB to ScyllaDB: Technical Comparison and the Path to Success
PDF
ScyllaDB Virtual Workshop
PDF
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
PDF
Using ScyllaDB for Extreme Scale Workloads
PDF
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
PDF
ScyllaDB Virtual Workshop: Getting Started with ScyllaDB 2024
PDF
Transforming the Database: Critical Innovations for Performance at Scale
PDF
Building Event Streaming Architectures on Scylla and Kafka
PDF
5 Factors When Selecting a High Performance, Low Latency Database
PDF
Build DynamoDB-Compatible Apps with Python
PPTX
Pragmatic CQRS with existing applications and databases (Digital Xchange, May...
PPTX
Scylla Virtual Workshop 2022
PDF
Keynote -- Percona Live Europe 2018
PDF
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
PDF
Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...
PDF
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
PDF
The True Cost of NoSQL DBaaS Options
PDF
ShareChat’s Path to High-Performance NoSQL with ScyllaDB
New Ways to Reduce Database Costs with ScyllaDB
Running a DynamoDB-compatible Database on Managed Kubernetes Services
Moving from DynamoDB to ScyllaDB: Technical Comparison and the Path to Success
ScyllaDB Virtual Workshop
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
Using ScyllaDB for Extreme Scale Workloads
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
ScyllaDB Virtual Workshop: Getting Started with ScyllaDB 2024
Transforming the Database: Critical Innovations for Performance at Scale
Building Event Streaming Architectures on Scylla and Kafka
5 Factors When Selecting a High Performance, Low Latency Database
Build DynamoDB-Compatible Apps with Python
Pragmatic CQRS with existing applications and databases (Digital Xchange, May...
Scylla Virtual Workshop 2022
Keynote -- Percona Live Europe 2018
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
The True Cost of NoSQL DBaaS Options
ShareChat’s Path to High-Performance NoSQL with ScyllaDB
Ad

More from ScyllaDB (20)

PDF
Understanding The True Cost of DynamoDB Webinar
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
PDF
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
PDF
Powering a Billion Dreams: Scaling Meesho’s E-commerce Revolution with Scylla...
PDF
Leading a High-Stakes Database Migration
PDF
Achieving Extreme Scale with ScyllaDB: Tips & Tradeoffs
PDF
Securely Serving Millions of Boot Artifacts a Day by João Pedro Lima & Matt ...
PDF
How Agoda Scaled 50x Throughput with ScyllaDB by Worakarn Isaratham
PDF
How Yieldmo Cut Database Costs and Cloud Dependencies Fast by Todd Coleman
PDF
ScyllaDB: 10 Years and Beyond by Dor Laor
PDF
Reduce Your Cloud Spend with ScyllaDB by Tzach Livyatan
PDF
Migrating 50TB Data From a Home-Grown Database to ScyllaDB, Fast by Terence Liu
PDF
Vector Search with ScyllaDB by Szymon Wasik
PDF
Workload Prioritization: How to Balance Multiple Workloads in a Cluster by Fe...
PDF
Two Leading Approaches to Data Virtualization, and Which Scales Better? by Da...
PDF
Scaling a Beast: Lessons from 400x Growth in a High-Stakes Financial System b...
PDF
Object Storage in ScyllaDB by Ran Regev, ScyllaDB
PDF
Lessons Learned from Building a Serverless Notifications System by Srushith R...
PDF
A Dist Sys Programmer's Journey into AI by Piotr Sarna
Understanding The True Cost of DynamoDB Webinar
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Powering a Billion Dreams: Scaling Meesho’s E-commerce Revolution with Scylla...
Leading a High-Stakes Database Migration
Achieving Extreme Scale with ScyllaDB: Tips & Tradeoffs
Securely Serving Millions of Boot Artifacts a Day by João Pedro Lima & Matt ...
How Agoda Scaled 50x Throughput with ScyllaDB by Worakarn Isaratham
How Yieldmo Cut Database Costs and Cloud Dependencies Fast by Todd Coleman
ScyllaDB: 10 Years and Beyond by Dor Laor
Reduce Your Cloud Spend with ScyllaDB by Tzach Livyatan
Migrating 50TB Data From a Home-Grown Database to ScyllaDB, Fast by Terence Liu
Vector Search with ScyllaDB by Szymon Wasik
Workload Prioritization: How to Balance Multiple Workloads in a Cluster by Fe...
Two Leading Approaches to Data Virtualization, and Which Scales Better? by Da...
Scaling a Beast: Lessons from 400x Growth in a High-Stakes Financial System b...
Object Storage in ScyllaDB by Ran Regev, ScyllaDB
Lessons Learned from Building a Serverless Notifications System by Srushith R...
A Dist Sys Programmer's Journey into AI by Piotr Sarna

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Modernizing your data center with Dell and AMD
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Monthly Chronicles - July 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Diabetes mellitus diagnosis method based random forest with bat algorithm
“AI and Expert System Decision Support & Business Intelligence Systems”
Advanced methodologies resolving dimensionality complications for autism neur...
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Unlocking AI with Model Context Protocol (MCP)
Modernizing your data center with Dell and AMD
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation

Eliminating Volatile Latencies Inside Rakuten’s NoSQL Migration

  • 1. Eliminating Volatile Latencies Inside Rakuten’s NoSQL Migration Hitesh Shah Sr. Engineering Manager Rakuten Catalog Platform
  • 2. 2 Defining Observability for Your Cloud DBaaS April 20, 2022, 10 AM PT | 1 PM ET | 6 PM GMT UPCOMING WEBINAR
  • 4. Eliminating Volatile Latencies Inside Rakuten’s NoSQL Migration Hitesh Shah Sr. Engineering Manager Rakuten Catalog Platform
  • 5. 5 + For distributed, data-intensive apps that require high performance and low latency + 400+ users worldwide + Results + Comcast: Reduced P99 latencies by 95% + FireEye: 1500% improvement in throughput + Discord: Reduced C* nodes from ~140 to 6 + iFood: 9X cost reduction vs. DynamoDB + Open Source, Enterprise and Cloud options + Fully compatible with Apache Cassandra and Amazon DynamoDB About ScyllaDB 1ms <1ms 10ms 1M 10M ScyllaDB Universe of 400+ Users
  • 6. 400+ Companies Use ScyllaDB Seamless experiences across content + devices Fast computation of flight pricing Corporate fleet management Real-time analytics 2,000,000 SKU -commerce management Real-time location tracking for friends/family Video recommendation management IoT for industrial machines Synchronize browser properties for millions Threat intelligence service using JanusGraph Real time fraud detection across 6M transactions/day Uber scale, mission critical chat & messaging app 6 Network security threat detection Power ~50M X1 DVRs with billions of reqs/day Precision healthcare via Edison AI Inventory hub for retail operations Property listings and updates Unified ML feature store across the business Cryptocurrency exchange app Geography-based recommendations Distributed storage for distributed ledger tech Global operations- Avon, Body Shop + more Predictable performance for on sale surges GPS-based exercise tracking
  • 7. Biography slide 7 Hitesh Shah Sr. Engineering Manager ■ Passionate Engineer - Predominantly worked with bay area tech ■ Focused on development as well as operations ■ Interests - Distributed systems, Dynamically scalable platforms ■ Foodie, hiking, movie buff, reading Company Logo
  • 8. Agenda ■ Overview of Rakuten Catalog Platform ■ Generic Catalog Platform on NoSql • Cassandra as a logical choice ■ Challenges with Cassandra ■ Why ScyllaDB ■ Migration Approach ■ Post Migration ■ Lessons Learned ■ ScyllaDB concerns ■ Let’s stay in touch! 8
  • 12. + Total Catalog items: 1B+ + Number of Items processed daily: 250M+ + Read QPS: 10k-15k per Node + Write QPS: 3k-5k per Node Data Processing Volumes 12
  • 15. Product Catalog Key Features 15 + Near real-time price updates + Near real-time availability updates + Discovering purchasing trends — analytics + Discovering shopper preferences — analytics + Large volume of data + Fast growing catalog + with 100s of millions of catalog items + Catalog Enrichment Support + Low latency requirements
  • 16. Cassandra as a first class NoSql DB 16 + Highly scalable - naturally horizontally scalable + Effective with huge amount of data + Fast writes (append-only) without impacting reads + Fast reads — distributed + Column-family store + appeals to enrichments of specific elements + Speed of deployment + Analytics with large data processing
  • 18. + Inconsistent Performance; Volatile Latencies + JVM Issues; OOM; long GC Pauses + Single Slow node can impact cluster + Requires tons of manual operations + Horizontal scalability at stiff cost Issues with Cassandra 18
  • 19. + 5x-6x Performance Improvements + Improved TCO; Better ROI + Consistent Latencies + Seastar framework + Much better parallelism + Drop-in Replacement Why ScyllaDB 19
  • 20. + Enterprise Support + Private slack channel; SLAs + ScyllaDB custom shard-aware driver for Java + Incremental Compaction Strategy + Workload Prioritization + ScyllaDB Manager Why ScyllaDB Enterprise 20
  • 22. Framework for Migration ScyllaDB Evaluation: + Candidate Use Cases + Data Ingestion + Serving customers + Proof of Concept + Running pipeline against ScyllaDB + Internal Benchmarking + Multiple iterations with various configurations + Tracking and evaluating ScyllaDB performance + Evaluating Shard-aware custom driver Evaluation Methodology 22
  • 24. + ScyllaDB Engagement + Making a final decision + Finalizing production topology + Planning live Database migration + Training Team with ScyllaDB Making a Decision 24
  • 25. + Functional Validation/Testing + Commissioning production cluster + Backup of c* cluster + Restoring Data in ScyllaDB cluster + Making ScyllaDB cluster ready + Replaying live production traffic/transactions + Switching to ScyllaDB + Post switchover production issues and resolutions + Decommissioning old c* cluster Production Migration 25
  • 27. + Average Feed Ingestion - 30-35% faster + Improved SLAs + 2.5x-5x improvements in feed publishing times + Quicker turnaround for catalog changes + 21 Nodes in cassandra to 6 Nodes in ScyllaDB + Hardware $$$ savings KPI Improvements 27
  • 28. + Lengthy ScyllaDB evaluation cycle + Complex Technology + ScyllaDB Ramp Up curve is non-trivial + ScyllaDB sizing is the key and is misunderstood + Finalizing the cluster topology/server configuration was the key + Migrating Live production database is challenging + detailed planning + tight execution + customer communication Lessons Learned 28
  • 29. + Lack of documentation + ScyllaDB not bug free, of course + Operational and Setup complexities + Monitoring ScyllaDB (i.e. internal metrics) is costly + ScyllaDB Monitoring Stack is free but..! + Hardware resource intensive ScyllaDB Concerns 29
  • 31. United States 2445 Faber St, Suite #200 Palo Alto, CA USA 94303 Israel Maskit 4 Herzliya, Israel 4673304 www.scylladb.com @scylladb Thank You! Q&A