Introduction to FusionCache

Microsoft Developer
28 May 202412:32

Summary

TLDRこのエピソードでは、Microsoft社が開発したオープンソースライブラリ「Fusion Cache」について解説しています。Fusion Cacheは、データアクセスとキャッシュを簡単に扱えるように設計されたライブラリで、開発者が様々なキャッシュタイプを統一的に扱えるよう工夫されています。デモでは、最小限のコード変更で非常に効果的なキャッシュを実現する方法を紹介し、キャッシュがデータベースへの負荷を軽減し、パフォーマンスを向上させる効果を示しました。また、開発者体験を重視し、既存のコードに変更を加えることなく、様々な機能を追加できる柔軟性と、キャッシュStampedeの問題を防ぐなどの利点を強調しています。

Takeaways

  • 😀 FusionCacheはオープンソースのキャッシュライブラリで、データアクセスとキャッシュを扱いやすくする目的で開発されました。
  • 🛠️ FusionCacheは様々なキャッシュタイプを統一された方法で扱うことができ、メモリキャッシュ、分散キャッシュ、HTTPキャッシュ、CDN、オフラインキャッシュなどに対応しています。
  • 💡 開発者はFusionCacheを使い、オープンソースコミュニティに貢献することを目的としています。
  • 🔧 FusionCacheはインメモリキャッシュとして使用することもでき、分散キャッシュと組み合わせてハイブリッドキャッシュとしても機能します。
  • 🎯 FusionCacheは.NETのIMemoryCacheと互換性があり、コードを変更することなく分散キャッシュエンジンをプラグインできます。
  • 📈 キャッシュスパンは1秒で設定されており、マイクロキャッシュとして非常に短時間のキャッシュにも適しています。
  • 🛡️ FusionCacheはキャッシュスタンプード(キャッシュの一斉アクセス)を防ぎ、効率的なリソース使用を保証します。
  • 🚀 開発者はFusionCacheを使い、ローカル開発でインメモリキャッシュから始め、必要に応じて分散キャッシュに移行できます。
  • 🔄 FusionCacheは開発者体験を重視しており、簡単に使用でき、既存のコードを変更することなく機能を拡張できます。
  • 🌟 自動回復機能が強調されており、FusionCacheは問題が発生した場合に自動的に修復を試みます。
  • 🌐 FusionCacheはオープンソースであり、コミュニティによる貢献やコードの閲覧が可能です。

Q & A

  • Fusion Cacheとはどのようなライブラリですか?

    -Fusion Cacheは、データアクセスとキャッシュに関して特に、開発者が悩む問題を軽減するためのオープンソースのキャッシュライブラリです。様々なキャッシュタイプを統一された方法で扱うことができ、アクセスパターンも明確にされています。

  • Fusion Cacheを開発した動機は何ですか?

    -開発者は異なるタイプのキャッシュと長年にわたって悩んだ経験から、Fusion Cacheを開発しました。オープンソースコミュニティに貢献するという思いもあり、統一された方法でキャッシュを扱えるようにしたかったとのことです。

  • Fusion Cacheはどのようにして異なるキャッシュエンジンと連携しますか?

    -Fusion Cacheは.NETの共通抽象化であるIistributedCacheを利用して、既存の分散キャッシュ実装にプラグインすることができます。これにより、インメモリキャッシュと分散キャッシュの両方の利点を活用することが可能です。

  • Fusion Cacheを使わずに開発を行う場合と比較して、どのような利点がありますか?

    -Fusion Cacheを使えば、キャッシュStampede問題を防ぐことができ、遅いデータベース呼び出しやトランザクションの失敗から保護されます。また、開発者は既存のコードを変更することなく、分散キャッシュを簡単に追加できます。

  • Fusion Cacheを実装する際の主なステップは何ですか?

    -まず、サービスにFusion Cacheを追加し、デフォルトのエントリオプションを設定します。次に、必要に応じてIdistributedCacheの実装をプラグインして、キャッシュレイヤーを拡張します。

  • Fusion Cacheを用いたデモでどのような結果が得られましたか?

    -デモでは、Fusion Cacheを導入することで、HTTPの応答時間が劇的に短縮されたことが示されました。キャッシュを導入前は5秒でしたが、導入後は平均333ミリ秒に改善されました。

  • Fusion Cacheの主な特徴の一つとして開発者が挙げたものは何ですか?

    -開発者は、Fusion Cacheの主な特徴として「自己修復」機能を挙げています。これは、分散キャッシュやバックエンドで問題が発生した場合に自動的に修復を試みる機能です。

  • Fusion Cacheを使用する際の利便性について教えてください。

    -Fusion Cacheは非常に使いやすいライブラリであり、開発者が既に慣れているメモリキャッシュと同様の使い方をすることができます。また、既存のコードを変更することなく、新機能を追加することができます。

  • Fusion Cacheはオープンソースライブラリであると聞きましたが、それはどのような意味ですか?

    -オープンソースライブラリであるFusion Cacheは、誰もが自由に利用、変更、再配布が可能です。これにより、コミュニティからの貢献も受けられるだけでなく、開発者がコードを確認し、理解を深めることもできます。

  • Fusion Cacheを実際に使用した例として、どのようなデータベースとの連携が行われていますか?

    -Fusion CacheはSQL Serverのような実際のデータベースと連携し、1秒のキャッシュで非常に大きなパフォーマンスの向上を実現することができます。これにより、1秒のキャッシュでクエリ1秒から数千にまでスケールアップすることが可能です。

  • Fusion Cacheを導入することで得られる主な利点は何ですか?

    -Fusion Cacheを導入することで、開発者はよりスケーラブルなソリューションを作成することができ、パフォーマンスの向上だけでなく、コードの変更なしに分散キャッシュを活用することができます。

Outlines

00:00

😀 Fusion Cacheの紹介とその背景

この段落では、MicrosoftのオープンソースライブラリであるFusion Cacheについて紹介しています。JYさんが作成したこのライブラリは、データアクセスとキャッシュに関する問題を解決することを目的としています。JYさんは多くのキャッシュタイプを扱う経験から、一つのパッケージにまとめ、統一された方法で扱えるようにしたと説明しています。また、オープンソースコミュニティに貢献するという思いからプロジェクトを開始したと語っています。Fusion Cacheは単なるキャッシュ以上の機能を持っているとJYさんが述べ、.NETのIMemoryCacheのようにインメモリキャッシュとして使用できるだけでなく、ハイブリッドキャッシュとして機能する可能性があることも紹介されています。

05:02

😉 Fusion Cacheのデモンストレーションと機能紹介

JYさんはFusion Cacheを使用した簡単なデモを行っています。このデモでは、.NETの最小APIを使用して仮想のデータベースを模擬し、Fusion Cacheをサービスに追加しています。デモではマイクロキャッシュとして1秒のキャッシュを設定しており、データベースからの遅延を5秒間に比べて、キャッシュによるパフォーマンスの向上が示されています。また、キャッシュスタンプードというキャッシュに関する一般的な問題にも触れており、Fusion Cacheはこれを防ぐ機能を組み込んでいます。k6というストレステストツールを使用して、キャッシュの有効性を検証し、レスポンス時間を5秒から335ミリ秒に短縮する効果を示しています。

10:06

🎉 Fusion Cacheの使いやすさと開発者体験

最後の段落では、Fusion Cacheの使いやすさと開発者体験について語られています。JYさんはFusion CacheをMemory Cacheと同様に簡単に入れ替え可能で、既存のコードを変更することなく、機能を追加できるという利点を強調しています。また、開発者が徐々にフェーズセーフタイムアウトや分散キャッシュを有効化できる柔軟性があることも紹介されています。JYさんの好みとして、開発者体験とFusion Cacheが「ただ働きます」という点を挙げています。また、コミュニティからのフィードバックも好評で、誰もが簡単に使用できると報告されています。最後に、Fusion Cacheがオープンソースであることを強調し、誰もが貢献したり、使用することができます。

Mindmap

Keywords

💡Fusion Cache

Fusion Cacheは、ビデオの中心となるオープンソースのキャッシングライブラリです。ビデオでは、データアクセスとキャッシングを容易にするという目的で開発されたと紹介されています。キャッシュの種類にはメモリキャッシュ、分散キャッシュ、HTTPキャッシュ、CDN、オフラインキャッシュなどがありますが、Fusion Cacheはそれらを統一された方法で扱うことができるパッケージを提供しています。ビデオでは、開発者がFusion Cacheを用いてコードの変更なしにローカルキャッシュから分散キャッシュへ移行することができるという利便性を強調しています。

💡オープンソース

オープンソースとは、ソフトウェアのソースコードが公開されており、誰でも自由に使用、改変、再配布が可能なソフトウェア開発の方法です。ビデオでは、Fusion Cacheがオープンソースであると語られており、開発者がライブラリを自由に使用し、貢献することができるという利点が説明されています。また、オープンソースであることで、コミュニティによるサポートやバグの早期発見、機能の追加などが期待できます。

💡キャッシング

キャッシングは、コンピュータサイエンスの分野でよく使われる技術で、データや処理の結果を一時的に高速な記憶装置に保存しておき、再度同じ処理を行う際にはそのデータを再利用するというものです。ビデオでは、Fusion Cacheを使用することで、データアクセスの高速化やリソースの節約が実現できると説明されています。また、キャッシュStampedeやフェールセーフティムアウトのような問題を回避する機能も備えていると触れられています。

💡分散キャッシュ

分散キャッシュは、複数のコンピュータやサーバーにデータを分散して保存するキャッシュシステムです。ビデオでは、Fusion Cacheが分散キャッシュと組み合わせて使用することで、より大きなスケールでのキャッシュを実現できると紹介されています。分散キャッシュを使用することで、データの一貫性や可用性の向上、負荷分散などが期待できますが、ネットワークのレイテンシや障害に対する対応が課題となります。

💡メモリキャッシュ

メモリキャッシュは、コンピュータのRAMを利用してデータを一時的に保存するキャッシュ技術です。ビデオでは、Fusion Cacheがメモリキャッシュとして機能することができると説明されています。メモリキャッシュはアクセス速度が非常に早く、ローカル環境下での開発においても有効ですが、スケールアウトする際には分散キャッシュへの移行が必要になる場合があります。

💡キャッシングスタンプード

キャッシングスタンプードは、キャッシュされたデータが無くなった際に多数のリクエストが同時にデータベースにアクセスし、その結果、リソースの無駄遣いとデータベースへの負荷が高くなる現象です。ビデオでは、Fusion Cacheがこの問題を防ぐ機能を有していると紹介されています。Fusion Cacheは、キャッシュミスが発生した場合に自動的にデータベースからの取得を管理し、複数のリクエストが同時にデータベースにアクセスすることを防ぎます。

💡フェイルセーフタイムアウト

フェイルセーフタイムアウトは、システムがタイムアウトする前に何らかのアクションを実行する機能です。ビデオでは、Fusion Cacheがフェイルセーフタイムアウトをサポートしており、遅延が発生したデータベース呼び出しやトランザクションの失敗に対して保護が働くと説明されています。これにより、システムは予期しない遅延に対して適切に対処し、サービスの可用性を確保できます。

💡.NET

.NETは、マイクロソフトが開発したソフトウェア開発プラットフォームであり、アプリケーション開発に必要なツール、フレームワーク、ライブラリを提供しています。ビデオでは、Fusion Cacheが.NET環境下で動作し、IMemoryCacheやIDistributedCacheなどの.NETの抽象化を利用してキャッシュを管理していると紹介されています。これにより、.NET開発者は既存の知識を活かしつつ、Fusion Cacheを活用することが可能です。

💡マイクロキャッシング

マイクロキャッシングは、非常に短い期間(例:1秒)データをキャッシュに保存する技術です。ビデオでは、Fusion Cacheを使用してマイクロキャッシングを実装し、データベースへのアクセスを高速化するデモが行われています。マイクロキャッシングは、データの変更が頻発する状況下でも有効であり、キャッシュの有効期間を短くすることでデータの一貫性を確保することができます。

💡ストレステスト

ストレステストは、システムが限界まで或者是超過して機能し続けることができるかを検証するテスト手法です。ビデオでは、k6というストレステストツールを使用して、Fusion Cacheを導入することでシステムのパフォーマンスがどのように向上するのかを検証しています。ストレステストは、システムの耐障害性やスケーラビリティを評価する上で重要な役割を果たします。

Highlights

Fusion Cache is an open source caching library designed to simplify data access and caching.

It was created to address the challenges of working with various types of caches like memory cache, distributed cache, HTTP caching, CDN, and offline caches.

Fusion Cache offers a uniform and consolidated approach to caching with clear naming and access patterns.

It can function as both an in-memory cache and a hybrid cache, integrating with existing distributed cache implementations.

Developers can start with local or in-memory caching and easily scale to a distributed cache without changing their code.

Fusion Cache automatically handles the interaction between memory cache and distributed cache layers.

It provides the benefits of both memory cache and distributed cache, overcoming their individual limitations.

Fusion Cache includes a demo using minimal APIs and endpoints in .NET to simulate a database call.

The demo illustrates the effectiveness of micro-caching with a one-second cache duration.

Fusion Cache automatically handles cache notifications and protects against cache stampede.

It ensures only one request per cache key goes to the database, preventing resource wastage.

The library includes features like phase-safe timeouts and auto-recovery for self-healing in production.

Fusion Cache aims to provide an excellent developer experience, making it easy to use and integrate.

It allows developers to add more features like distributed caching without altering existing code.

The library is open source, enabling community contributions and transparency.

Fusion Cache's logo is also noted for being fantastic, adding to the overall appeal of the project.

A real-world example using Fusion Cache with SQL Server demonstrates significant performance improvements with just a one-second cache.

The episode encourages viewers to try Fusion Cache for creating more scalable solutions.

Transcripts

play00:00

hey in this episode of open at Microsoft

play00:02

we'll be discussing about caching with a

play00:04

fantastic open source Library named

play00:06

Fusion cache stay tuned for

play00:10

[Music]

play00:11

more hey JY super nice to have you here

play00:14

uh at open source at Microsoft I know

play00:17

that you have created a fantastic

play00:18

library that use every day Fusion cache

play00:21

so I really looking forward to have you

play00:23

explaining all about it so let's start

play00:25

right away what is fusion cach and why

play00:27

you have created it yeah first of all

play00:30

thank you for having me here so fish

play00:32

cash is a cing library uh as the name

play00:34

suggests that uh tries to ease the pain

play00:39

of working with uh data access and

play00:41

caching in particular so the idea came

play00:44

up to me uh after years and years in my

play00:46

career of having to deal with all

play00:48

different types of caches and I mean

play00:51

memory cach distributor cache HTTP

play00:53

caching CDN offline caches all these

play00:55

things so I tried to wrap them up

play00:57

together in a nice package that has a

play01:00

kind of a uniform and Consolidated way

play01:03

of doing things with clear names and a

play01:06

clear access pattern and stuff like that

play01:08

so I wanted to give back to the open

play01:11

source community that gave us a lot to

play01:14

all of us so that was like my way of

play01:16

doing it and so some years ago I took

play01:19

the plunge and said okay why not let's

play01:20

try to do one open source project and

play01:22

this is it no that's nice so you're

play01:24

saying it's more than caching because

play01:26

you know as a developer when I think

play01:27

about caching immediately usually I

play01:29

think about r or something like that but

play01:31

here you're saying you have created a

play01:33

library that is actually a cach on its

play01:36

own my understanding but can also use

play01:39

any of these additional caching uh

play01:41

engines that we already have or or it's

play01:43

kind of a

play01:44

replacement yeah yeah absolutely it can

play01:46

be both and inmemory cache only so kind

play01:49

of like imemory cache in net and

play01:52

actually right now it uses it underneath

play01:55

but it can also work as a what is called

play01:58

um an hybrid cache meaning a multi L

play02:00

cache Yeah so basically you can um plug

play02:03

it in any existing implementation of I

play02:06

distributed cache which in net is the

play02:08

common abstraction of a distributed cach

play02:10

and so basically we will use that as a

play02:12

second level and will automatically

play02:14

handle the the I call the dance between

play02:16

the two layers uh so yeah so that

play02:19

basically you can get the best of both

play02:21

worlds because if you do like a business

play02:23

101 graph chart you have basically the

play02:26

pros of memory cache and some cons and

play02:29

they are the opposite of the pros and

play02:30

cons of the distribut so you mix them

play02:32

together yeah and you get the best

play02:34

worlds that is cool that is cool so as a

play02:36

developer I can start with Fusion cache

play02:38

use it locally or in memory and then

play02:40

when you realize I may I I may need more

play02:43

I can just plug in an additional caching

play02:45

engine that is a distributed engine and

play02:48

just use it but basically without

play02:49

changing my code that's that's my

play02:51

understanding yeah exactly one of the

play02:53

things that some people had to do is

play02:56

that they start with caching and then

play02:57

use memory cach because yeah I mean it's

play03:00

cool okay but then they can only so much

play03:03

scale vertically up to a certain point

play03:05

and then you have to scale horizontally

play03:06

multi Noe and in that case they usually

play03:08

switch to Ed cach but in that case the

play03:11

abstraction changes and they have to

play03:12

change all the pieces in the code all

play03:14

their their cash. get Etc so it's a lot

play03:17

of work and the P the access pattern

play03:19

changes also the super cache has some

play03:22

pros but also some cons because it is

play03:24

distributed so it means that it's um

play03:27

it's like um it has the the the problem

play03:29

of the fallacies of distributed

play03:31

companies these ways basically latency

play03:34

is not zero network is not always there

play03:36

all these things yeah so memory and and

play03:38

distributed together give you the best

play03:40

of world you do not have to change

play03:42

anything in your existing code so you

play03:44

can start memory and go distribut or mix

play03:46

both ways that's that's fantastic do you

play03:48

have any code that I can see and we can

play03:50

share with people watching the show yeah

play03:53

absolutely uh prepar a very small demo

play03:56

nice very very small if it's in the

play03:58

screen so it should be nice to follow so

play04:00

basically it uses minimal apis minimal

play04:03

endpoints in in x.net and basically it

play04:05

set up a fake database which we can see

play04:07

it's basically just a class that delays

play04:10

for 5 seconds simulating as low datab

play04:12

base go and then returns a random number

play04:15

uh then it set up Fusion cache in this

play04:17

piece which basically say add Fusion

play04:19

cach to the services usual dependence

play04:21

injection way and some default entry

play04:24

options soal which are basically the

play04:26

default uh options for each entry in the

play04:28

cache in this case I set up one second

play04:31

cache so this is what is commonly known

play04:33

as micro caching meaning very very small

play04:35

cache and this is is nice because

play04:38

sometimes people think oh I don't know

play04:40

you know cach data for like 10 minutes

play04:42

stuff like that what if the data changes

play04:44

and stuff like that notification which

play04:46

by the way Fusion cach handles

play04:47

automatically for you but that's another

play04:49

thing and but we just one second is just

play04:52

really a no-brainer just why not like

play04:54

it's very rare that you cannot have one

play04:57

second of cash so what I would like to

play04:59

show is is this so it's a simply it's a

play05:02

simple endpoint that Returns the get

play05:05

value from database now if on the right

play05:08

hand side of the screen we have k6 so I

play05:10

prepared a k6 test which uh is a stress

play05:13

testing tool and while it is running it

play05:15

will take about 20 seconds oh right it's

play05:18

an error but it's correct because I

play05:20

haven't out oh yeah yeah I yeah I guess

play05:25

that cash can can fix that yeah yeah

play05:28

absolutely so

play05:30

okay let's run it it's going so this is

play05:33

the test plan for k6 basically it's a r

play05:36

pop of two seconds up to 10 virtual

play05:37

users then 5 Seconds up to a th000

play05:40

virtual users then 10 seconds of sustain

play05:43

load to 1,000 users and then run down to

play05:46

zero users yeah now get back to the code

play05:49

here almost finished what we can see

play05:51

right now we will see that basically the

play05:53

the HTTP duration which is here and you

play05:58

can see that the average minimum median

play06:01

Max and and the percentiles are

play06:03

basically all 5 Seconds why because

play06:05

there's no cash and the database call

play06:07

even though it's simulated takes 5

play06:09

Seconds Now by simply commenting out the

play06:13

the call to database and uncommenting

play06:15

the call to the cach we where by the way

play06:18

here you can see it highlight so it's

play06:20

exactly the same call basically we

play06:22

simply say cash get or set give it a

play06:24

cash key and the call back so when the

play06:27

data is not in the cash what should cash

play06:29

to get the DAT to database we simply

play06:31

restart the web

play06:34

server and we just like that we rerun k6

play06:39

again and we can see we will see the

play06:42

numbers uh drastically uh um getting

play06:45

slower smaller and smaller because of

play06:47

caching now one thing that I like to say

play06:50

while it is running is that on top of

play06:52

being a cash it also protects you from

play06:55

the most common problem in the caching

play06:56

World which is known as cash Stampede uh

play06:59

which is something that some people

play07:01

think imemory cach in.net protects you

play07:03

from because there's a method called get

play07:05

or create but it doesn't protect you so

play07:08

basically very shortly cash stamped

play07:10

means uh if a th000 request comes in for

play07:13

the same value and is not in the cash

play07:15

all of them will go to the database at

play07:16

the same time and the cash so it's a

play07:19

waste of resources with cashed

play07:21

protection which is built into Fusion

play07:23

cash and you don't have to do anything

play07:25

you only one will get will go to the

play07:26

database and just to be clear only one

play07:29

per cash key so product one product two

play07:32

they will not like lock each other of

play07:34

course now k6 run finished and we can

play07:37

see the average from 5 Seconds to 335

play07:41

milliseconds so definitely better the

play07:43

minimum is 53 microc second yeah because

play07:48

that's from memory yeah Alpha

play07:50

millisecond yeah yeah and then the

play07:52

median the max the max of course is 5

play07:54

Seconds because I mean the first one

play07:56

will go to database and then we have

play07:58

like a

play07:59

percentile of 400 something milliseconds

play08:02

yeah so this is a very small demo but

play08:05

it's something that I think can be

play08:06

effective because you don't have to even

play08:09

think about having like one second cash

play08:11

is really a problem so by just doing

play08:13

that these are yeah yeah it's amazing

play08:15

and and and moving from non-cached

play08:18

version to a cached version is literally

play08:20

like two line of code uh basically you

play08:22

specify you specify the key and

play08:24

basically the the function you want to

play08:26

be called when uh the cash expires right

play08:30

yeah that's the factory yeah yeah and

play08:31

then fion Fusion cash takes care of all

play08:34

the Stampede problem and I I I know that

play08:37

on gab you you have a list of other

play08:39

problem that are prevented by Fusion

play08:41

cash so um that's amazing so out of all

play08:46

the nice feature that Fusion cach has

play08:49

what is your favorite if you have

play08:51

one nice one H H there are a

play08:56

lot well you know what if I will answer

play09:00

you this at the beginning probably I

play09:02

would have said phase safe and soft our

play09:05

timeouts basically it's it's the two

play09:07

main features that protects us from slow

play09:11

database calls and the trans failures

play09:13

okay but that was at beginning more

play09:16

recently I would have said probably Auto

play09:18

Recovery which is a big feature that I'm

play09:20

working on a lot and I'm still working

play09:22

on which is basically selfhealing so

play09:24

when something bad happens in production

play09:26

like on the distributed cach or the back

play09:28

plane or whatever it automatically try

play09:30

to fix that together and and the demo

play09:34

usually do with the the small

play09:35

application I call simulator which is

play09:37

included in the source code of of the

play09:39

the solution uh is nice because you can

play09:41

see everything destructing in production

play09:43

going red and then as soon as you get

play09:45

back like radi or or man cash or

play09:47

whatever you automatically get all green

play09:50

so it's it's really to see to say even

play09:52

if I say so myself but I think the most

play09:56

the best one the one I prefer the most

play09:58

is like an overarching theme of uh

play10:02

developer experience and and fusion cach

play10:05

um being it just works so to speak so

play10:09

what I I think I Tred to what I Tred to

play10:11

do and I think I got it in the most ways

play10:14

H and also what the community told me

play10:16

mostly about is that it's really nice

play10:19

and easy to use and you basically just

play10:22

if you're used to memory cash you swap

play10:24

it out for Fusion cash and it's the same

play10:27

but you get protected from cash stamped

play10:29

and then slowly you can add more

play10:32

features you can enable phase save

play10:33

timeouts you can enable the distributor

play10:35

cache all without changing your existing

play10:37

code now one thing I can I can show you

play10:40

is um is very quickly here where where I

play10:44

say I set up Fusion cache so add Fusion

play10:47

cache first line second one is I

play10:49

configure the the default entry options

play10:51

if I go here and I do with distributed

play10:54

cash oh I can simply yeah just like that

play10:57

I can pass an instance of any I

play10:59

distributed cach or I can use the to

play11:02

resolve one or whatever and these which

play11:04

are my thousands and thousands of code

play11:08

in yeah will not change that's fantastic

play11:09

absolutely and I can even you do it like

play11:12

programmatically meaning oh I'm I'm

play11:14

locally a locally I just use memory I

play11:16

don't need in development distribut cach

play11:19

because I know that in production

play11:20

everything will be the same so I can

play11:21

work locally only one level and in

play11:23

production with two levels that's very

play11:26

nice oh that's great and it's even

play11:28

better that every is open source so

play11:30

people can also contribute if they want

play11:32

or or just you know see you know all the

play11:34

techniques that you use to make this

play11:35

happen so oh and also the the logo is

play11:38

fantastic I tell you thank

play11:41

you yeah that's great uh so to wrap up

play11:45

uh not only uh the link to the um

play11:48

repository will be available in

play11:50

description also an example that use a

play11:53

fusion cach with the real database aure

play11:55

SQL in my case that shows how again

play11:58

Improvement uh it's really easy to be

play12:01

obtained just with one second cash you

play12:03

can go from a few query per second to

play12:05

thousand and I I I think that's all uh

play12:09

it was great to have you in this episode

play12:11

Fusion cach is great uh if you are

play12:13

watching this episode go and try fure

play12:16

cach out right now it's super easy to

play12:17

use and just helps you to create more

play12:20

scalable solution and with that see you

play12:22

in the next episode thanks so much

Rate This

5.0 / 5 (0 votes)

Related Tags
Fusion Cacheオープンソースデータキャッシュ効率化.NETメモリキャッシュ分散キャッシュ開発者向けキャッシュStampede自動修復スケーラビリティ
Do you need a summary in English?