sql >> データベース >  >> RDS >> Mysql

PolyScale.ai –グローバルキャッシングを使用したMySQLとPostgreSQLのスケーリング

    PolyScale.aiのBenHaganによるゲスト投稿

    データ駆動型アプリケーションは、単純なマイクロサービスから、大きな負荷がかかるリアルタイムのイベント駆動型システムまで、幅広い複雑さを網羅しています。ただし、パフォーマンスの向上を担当する開発チームやDevOpsチームが証明するように、データ駆動型アプリをグローバルに高速化することは「重要」です。

    JAMstackなどの最新のアプリケーションアーキテクチャは、データと永続性の要件をAPIに移動することで、関心の分離を強化します。静的コンテンツ、ビジネスロジック、およびデータの永続性を明確に分離することで、それぞれを個別にスケーリングおよび管理できます。

    多くの企業は、モノリシックアプリケーションを分離してマイクロサービスを利用することに重点を置いており、サーバーレス環境内にデプロイすることがよくあります。より良い環境分離のためのより多くのデカップリングへのこのシフトは、ビジネスロジックが展開される場所とそれがどのように拡張されるかに関して、より良い地域の俊敏性を提供することもできます。アプリケーションは、単一のCI/CDアクションでグローバルに展開できるようになりました。

    ただし、データ層はより複雑になります。トランザクションの一貫性、高可用性、負荷がかかった状態でのクエリのパフォーマンスなど、実際的な課題があります。 PIIの順守やコンプライアンス要件などの制約があります。そして、物理法則がレイテンシーに課すような克服できない限界があります。

    アプリケーションのキャッシュ

    多くの開発チームは、Redisや自社開発システムなどの永続層に支えられたアプリケーション層でこれらの問題を解決するためにキャッシュを利用しています。概念は単純です。クライアントから要求されたデータを一定期間保存し、それが再び表示された場合、オリジンデータベースに頼ることなく次の要求を処理する準備ができています。優れたキャッシュ戦略を設計することは、独自の一連の課題をもたらします。どのデータをキャッシュするか、どのようにキャッシュするか、そしていつ行うかです。そしておそらくもっと重要なのは、キャッシュからデータを削除する対象、方法、時期です。キャッシング戦略は、開発者や場合によっては部門チーム全体で、アプリケーションに追加されるすべての新機能セットに対して明確に定義され、理解され、採用されている必要があります。開発時間と複雑さはコストです。

    データベースの読み取り-レプリカ

    あるいは、多くの企業はデータベース読み取りレプリカを使用してレイテンシーとスケーリングの課題を解決します。リードレプリカは、プライマリデータベースの読み取り専用インスタンスであり、プライマリに更新が行われると、自動的に(非同期に)同期されます。堅実なリードレプリカ戦略を設計することは、それ自体の微妙なことでいっぱいの困難な作業であり、それほど微妙なコストや複雑さではありません。

    その複雑さの多くは、ScaleGridで調整できます。フルマネージドのリードレプリカは、ScaleGrid(HAサポート付き)のボタンをクリックするだけで、すべての主要なクラウドとリージョンにデプロイできます。主な利点は、データがプライマリデータベースと自動的に同期されることです。

    ただし、リードレプリカは、複数の、場合によっては多数の複数のデータベースサーバーとそれに関連するコストを実行する必要性を回避することはできません。

    別のアプローチ:PolyScale.aiエッジキャッシュ

    PolyScaleは、異なるアプローチを採用するデータベースエッジキャッシュです。 PolyScaleのキャッシュには、クエリの待機時間の改善とデータベースのワークロードの削減という2つの主な利点があります。それを少し分解しましょう:

    • 地域のレイテンシ CDNのように解決されます。 PolyScaleは、Points of Presence(PoP)のグローバルエッジネットワークを提供し、データベースクエリ応答を元のクライアントの近くに格納して、応答を大幅に高速化します。

    • 読み取りクエリのパフォーマンス PolyScaleは、クエリの複雑さに関係なく、キャッシュされたデータベース要求を10ミリ秒未満で処理するため、劇的に改善されます。さらに、読み取り要求がPolyScaleから提供されることを考えると、この負荷がオリジンデータベースに影響を与えることはありません。

    実装

    PolyScaleは、コードを記述したりサーバーをデプロイしたりすることなく、数分で実装できます。データベースクライアント(Webアプリケーション、マイクロサービス、TableauなどのBIツール)の接続文字列をPolyScaleホスト名で更新するだけです。その後、データベーストラフィックはエッジネットワークを通過し、キャッシュの準備が整います。

    MySQLおよびPostgresとのワイヤー互換性があるため、PolyScaleはデータベースクライアントに対して完全に透過的であるため、現在のアーキテクチャに変更はありません。移行、トランザクション性の変更、現在のクエリ言語の変更はありません。本当にプラグアンドプレイ。

    どのように機能しますか?

    PolyScaleのグローバルネットワークプロキシとネイティブデータベースワイヤプロトコルをキャッシュするため、データベースクライアントに対して透過的です。クエリが検査され、読み取られます(SQL SELECT )パフォーマンスを高速化するために、要求元のオリジンの近くに地理的にキャッシュできます。他のすべてのトラフィック(INSERTUPDATE およびDELETE )ソースデータベースにシームレスに渡されます。

    PolyScaleのAIは、完全な自動化への道を進んでいます。プラットフォームは、必要に応じてキャッシュを構成するのではなく、トラフィックのフローを測定し、キャッシュプロパティを継続的に調整して、最適なパフォーマンスを提供します。 PolyScale AIキャッシングモデルの詳細については、こちらをご覧ください。

    結論

    PolyScale.aiは、データ層でのパフォーマンスとスケーリングに対する最新のプラグアンドプレイアプローチを提供します。 PolyScaleプラットフォームは、完全な自動化への道を進んでおり、接続すると、最適なパフォーマンスを得るためにデータのキャッシュをインテリジェントに管理します。

    PolyScaleは現在のデータベースとワイヤー互換であるため、読み取りを数分でグローバルにスケーリングするために変更を加える必要はありません。試してみてください!


    1. SQLServerの固有の制約に関する洞察

    2. Microsoft Accessは簡単に習得できますか?

    3. Postgresqlのid列の位置は重要ですか?

    4. PostgreSQLでパーセンタイルを計算する方法