P o st g r e S Q L F o r A u r o r aAurora is now fully compatible withboth PostgreSQL and MySQL
8.
1/10th The CostOfCommercial GradeDatabasesFully PostgreSQLCompatibleSeveral times betterperformance than typicalPostgreSQL databaseScalable,Durable and SecureMigrate FromRDS For PostgreSQLAmazon Aurora PostgreSQL-Compatible Edition
9.
新しいメトリクス画⾯• Throughput– Select–Commit– DML/DDL• Latency– Select– Commit– DML/DDL• Cache Hit Ratio– Buffer Cache– Result Set• Deadlocks• Login Failures• Blocked Transactions
Writer / Readerノードの識別•innodb_read_onlyを参照– SHOW GLOBAL VARIABLES LIKE 'innodb_read_onlyʼ;– OFF: Writer– ON: Reader• アプリケーションやドライバでAuroraノードに対する負荷分散やフェイルオーバーロジックの実装に利⽤可能– メトリクススキーマのSEESION_IDも利⽤可能
チューニングTips#1> SELECT *FROM Table;#1> SELECT * FROM Table WHERE id BETWEEN 1 AND 10000;#2> SELECT * FROM Table WHERE id BETWEEN 10001 AND 20000;#3> SELECT * FROM Table WHERE id BETWEEN 20001 AND 30000;#4> .........• SELECT (Parallel Read Aheadで大幅性能改善)• DELETE / UPDATE#1> DELETE * FROM Table WHERE id>= 100000;#1> DELETE FROM Table WHERE id BETWEEN 10000 AND 20000;#2> DELETE FROM Table WHERE id BETWEEN 20001 AND 30000;#3> DELETE FROM Table WHERE id BETWEEN 300001AND 40000;#4> .........
30.
パフォーマンスの改善• Large datasetread performance– スケジューラの改善により、IO/CPUヘビーなワークロードでAuroraが動的に処理スレッド数を調整することでIO数/CPU利⽤率のバランスがとれ、性能を向上させる• Fast Insert– Primary keyで並んでいるデータを LOAD DATA や INSERT INTO ... SELECT で並列に実⾏した場合の速度を改善 (将来的には他のワークロードにも適⽤予定)– モニタリング⽤にGlobal変数を追加• aurora_fast_insert_cache_hits: キャッシュのcursorにヒットした• aurora_fast_insert_cache_misses: ヒットせずindexを⾛査した• Parallel Read Ahead– B-Treeスキャン性能を向上させる。Disk pageの読み込みパターンを⾃動的に判断し、事前にフェッチしバッファキャッシュに載せることで速度改善を⾏う。– 現在は、Writerで有効になっており、今後の改善でReaderにも適⽤を⾏う
Improved index build•secondary indexの作成/変更を⾼速化– db.r3.8xlargeを利⽤した場合、最⼤約75%⾼速化– ボトムアップ⽅式でインデックスを構築し、不要なページ分割を排除することで⾼速
50.
Faster index build§MySQL 5.6 はLinuxの先読みを活用していますが、これにはbtreeに連続したブロックアドレスが必要です。そのためエントリーをトップダウンで新しいbtreeに挿入する際に、分割とたくさんのロギングを引き起こします。§ Auroraはtree内のポジション(ブロックアドレスではなく)を元にブロックをスキャンしてプリフェッチ§ Auroraはリーフブロックを作製してからブランチを作製していく• 分割が発生しない• 各ページは1度のみ参照される• 1ページに1ログレコード2-4X better than MySQL 5.6 or MySQL 5.7024681012r3.large on 10GBdatasetr3.8xlarge on10GB datasetr3.8xlarge on100GB datasetHoursRDS MySQL 5.6 RDS MySQL 5.7 Aurora 2016
Lambda Function Integration•Amazon Aurora内からAWS Lambdaを呼び出せる– ストアードプロシジャーとして実⾏ (mysql.lambda_async)– ⾮同期でLambdaを実⾏する– IAM Roleで事前にAuroraへ権限を付与しておくDELIMITER ;;CREATE PROCEDURE SNS_Publish_Message (IN subject VARCHAR(255), IN message TEXT) LANGUAGESQLBEGINCALL mysql.lambda_async(’Lambda ARN', CONCAT('{ "subject" : "', subject, '", "message" : "', message, '" }') );END;;DELIMITER ;
54.
Load Data FromS3• S3バケットに保存されたデータを直接Auroraにインポート可能– テキスト形式(LOAD DATA FROM S3)・XML形式(LOAD XML FROM S3)– LOAD DATA INFILEとほぼ同様のオプションをサポート (圧縮形式のデータは現在未サポート)<row column1="value1" column2="value2" /><row column1="value1" column2="value2" /><row><column1>value1</column1><column2>value2</column2></row><row><field name="column1">value1</field><field name="column2">value2</field></row>
55.
拡張モニタリング50+ system/OS metrics| sorted process list view | 1–60 sec granularityalarms on specific metrics | egress to Amazon CloudWatch Logs | integration with third-party tools