NCache 3.8
Transcript of NCache 3.8
-
8/7/2019 NCache 3.8
1/23
http://www.alachisoft.com/ncache/index.html 1
NCacheNCacheFast & Scalable .NET AppsFast & Scalable .NET Apps
in Server Farmsin Server Farms
Distributed .NET Data CacheDistributed .NET Data Cache
Distributed ASP.NET SessionsDistributed ASP.NET Sessions
IqbalIqbal [email protected]@alachisoft.com Ph: +1 (925) 236Ph: +1 (925) 236--21252125
Alachisoft.NET Performance Solutions
-
8/7/2019 NCache 3.8
2/23
Alachisoft
NCache 3.8 2www.alachisoft.com
Alachisoft Company HistoryAlachisoft Company History
1.1. Founded in California in 1996Founded in California in 1996 Experts in enterprise applications in Java, C++, and .NETExperts in enterprise applications in Java, C++, and .NET
2.2. Became Alachisoft in 2003 (product company)Became Alachisoft in 2003 (product company)
Impressive growth from profitable and revenueImpressive growth from profitable and revenue--funded modelfunded model
3.3. Headquarters: San Francisco Bay AreaHeadquarters: San Francisco Bay Area 2410 Camino Ramon, Suite 175, San Ramon, CA 945832410 Camino Ramon, Suite 175, San Ramon, CA 94583
4.
4. NCache launched in July
2005NCache launched in July
2005
Current version: 3.8 (8Current version: 3.8 (8thth version)version)
-
8/7/2019 NCache 3.8
3/23
Alachisoft
NCache 3.8 3www.alachisoft.com
Supporting Our CustomersSupporting Our Customers
1.1. Annual Maintenance & SupportAnnual Maintenance & Support Free upgrades for 1 yearFree upgrades for 1 year
Email & telephone based supportEmail & telephone based support
2.2. 24x7 Support24x7 Support Email & telephone based supportEmail & telephone based support
3.3. Professional ServicesProfessional Services Cache IntegrationCache Integration: into yourexisting apps: into yourexisting apps
Caching API TrainingCaching API Training: for your developers: for your developers
Cache Configuration TrainingCache Configuration Training: for your IT staff: for your IT staff
-
8/7/2019 NCache 3.8
4/23
Alachisoft
NCache 3.8 4
Main Benefits of NCacheMain Benefits of NCache
1.1. Higher Application Performance & ScalabilityHigher Application Performance & Scalability Performance:Performance: Extremely fast in-memory cache
Scalability:Scalability:
Reducepressure on databaseReducepressure on database
Linearly scale out cache clusterLinearly scale out cache cluster
2.2. Reliable & Scalable ASP.NET Session StorageReliable & Scalable ASP.NET Session Storage Session replicated forreliabilitySession replicated forreliability
Fast & scalable session storage
3.3. Runtime Data Sharing for Server AppsRuntime Data Sharing for Server Apps Asynchronous data sharing in producer/consumer modelAsynchronous data sharing in producer/consumer model
Powerful event notification for app coordinationPowerful event notification for app coordination
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
5/23
Alachisoft
NCache 3.8 5
Main Uses of NCacheMain Uses of NCache
1.1. Enterprise Distributed Data CacheEnterprise Distributed Data Cache Performance & ScalabilityPerformance & Scalability: Reduceexpensive db trips: Reduceexpensive db trips
ReliabilityReliability: Dynamic clustering & replication: Dynamic clustering & replication ASP.NET apps, web services, distributed apps, grid computing appsASP.NET apps, web services, distributed apps, grid computing apps
2.2. Distributed ASP.NET Sessions for Web FarmsDistributed ASP.NET Sessions for Web Farms Faster and more scalableFaster and more scalable session storagesession storage
ReliabilityReliability: 100% uptime. Sessions replicated.: 100% uptime. Sessions replicated.
Easy adoptionEasy adoption:: No code changerequired to useNo code changerequired to use
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
6/23
Alachisoft
NCache 3.8 6
Enterprise Distributed Data CacheEnterprise Distributed Data Cache
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
7/23
Alachisoft
NCache 3.8 7
High Availability (100% Uptime)High Availability (100% Uptime)Dynamic Cache ClusterDynamic Cache Cluster
TCP based Cache ClusterTCP based Cache Cluster
Does not use Windows ClusteringDoes not use Windows Clustering
Peer to peer architecturePeer to peer architecture
No singlepoint of failureNo singlepoint of failure
Add/remove servers at runtimeAdd/remove servers at runtime
Without stopping cache or your appWithout stopping cache or your app
Data adjusted automatically basedData adjusted automatically basedon caching topologyon caching topology
Hot ApplyHot Apply configconfig changeschanges
ChangeChange configconfig properties whileproperties whilecache is runningcache is running
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
8/23
-
8/7/2019 NCache 3.8
9/23
Alachisoft
NCache 3.8 9
Caching TopologiesCaching TopologiesMirrored Cache (2Mirrored Cache (2--node active/passive)node active/passive)
All clients connect to active nodeAll clients connect to active node
Passive node becomes active ifPassive node becomes active if
active node goes down. Clientsactive node goes down. Clientsalso automatically connect to italso automatically connect to it
Mirroring to passive node doneMirroring to passive node doneasynchronouslyasynchronously
Recommended use:Recommended use: Up to 10 app serversUp to 10 app servers
2 cache server cluster2 cache server cluster
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
10/23
Alachisoft
NCache 3.8 10
Caching TopologiesCaching TopologiesReplicated CacheReplicated Cache
Entire cache copied to all serversEntire cache copied to all servers
Each update done to all serversEach update done to all servers
Clients connectevenly to allClients connectevenly to allservers. All servers active.servers. All servers active.
Good forreadGood forread--intensive scenariosintensive scenarios
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
11/23
Alachisoft
NCache 3.8 11
Caching TopologiesCaching TopologiesPartitioned CachePartitioned Cache
Extremely scalableExtremely scalable
Location transparencyLocation transparency
Good for larger clustersGood for larger clusters
Distribution map sent to all clientsDistribution map sent to all clients
No replication availableNo replication available
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
12/23
Alachisoft
NCache 3.8 12
Caching TopologiesCaching TopologiesPartitionedPartitioned--Replica CacheReplica Cache
Each partition has onereplicaEach partition has onereplica
AsyncAsync & Sync replication& Sync replication
Location transparency.Location transparency.
Extremely scalableExtremely scalable
Reliability due to replicationReliability due to replication
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
13/23
Alachisoft
NCache 3.8 13
Caching TopologiesCaching TopologiesClient CacheClient Cache
Clustered cache on separate tierClustered cache on separate tier
Client has local client cacheClient has local client cache
Client cacheClient cache InProcInProc oror OutProcOutProc
Client cache automaticallyClient cache automaticallysynchronized with clustered cachesynchronized with clustered cache
Gives further boost to client appsGives further boost to client apps
Good forreadGood forread--intensive appsintensive apps
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
14/23
Alachisoft
NCache 3.8 14
Caching TopologiesCaching TopologiesPerformance Data (2Performance Data (2--node cluster)node cluster)
0
10000
20000
30000
40000
50000
60000
Mirrored Replicated Partition-Replica
Reads/sec (1 kb)
Writes/sec (1 kb)
Mirrored CacheMirrored Cache
30,000 reads/sec30,000 reads/sec
25,000 writes/sec25,000 writes/sec
Replicated CacheReplicated Cache 60,000 reads/sec60,000 reads/sec
2500 writes/sec2500 writes/sec
PartitionPartition--Replica CacheReplica Cache
60,000 reads/sec60,000 reads/sec
44,000 writes/sec44,000 writes/sec
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
15/23
Alachisoft
NCache 3.8 15
Caching TopologiesCaching TopologiesBridge Topology (for WAN replication)Bridge Topology (for WAN replication)
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
16/23
Alachisoft
NCache 3.8 16
PowefulPoweful Cache AdministrationCache Administration
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
17/23
Alachisoft
NCache 3.8 17
Powerful Cache MonitoringPowerful Cache Monitoring
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
18/23
Alachisoft
NCache 3.8 18www.alachisoft.com
Important FeaturesImportant Features
Max cache sizeMax cache size To control memory consumption. Evicts item when cachereaches Max SizeTo control memory consumption. Evicts item when cachereaches Max Size
Eviction policiesEviction policies LRU, LFU, Priority, and Do NotEvictLRU, LFU, Priority, and Do NotEvict
Cache security (authenticate + authorize)Cache security (authenticate + authorize) Authenticate with Active Directory. Authorize as Admin or UserAuthenticate with Active Directory. Authorize as Admin or User
CompressionCompression Specify compression threshold. UsesSpecify compression threshold. Uses GZipGZip on clienton client--side.side.
Server Configuration OptionsServer Configuration Options Rejoin a cache cluster upon rebootRejoin a cache cluster upon reboot
Multiple NIC support (one for client/server & one for cluster)Multiple NIC support (one for client/server & one for cluster)
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
19/23
Alachisoft
NCache 3.8 19
NCache ASP.NET 2.0 Session State ProviderNCache ASP.NET 2.0 Session State Provider
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
20/23
Alachisoft
NCache 3.8 20
Object Caching API is SimpleObject Caching API is Simple
Initialize & Dispose the CacheInitialize & Dispose the Cache CacheCachecache =cache = NCacheNCache.InitializeCache(.InitializeCache(myReplicatedCachemyReplicatedCache););
cache.Disposecache.Dispose();();
Read from the CacheRead from the Cache objectobjectobj = cache.Get(obj = cache.Get(myKeymyKey););
objectobjectobjobj = cache[= cache[myKeymyKey];]; boolbool isPresentisPresent == cache.Containscache.Contains((myKeymyKey););
Add to the CacheAdd to the Cache cache.Addcache.Add((myKeymyKey,, objobj););
cache.Insertcache.Insert((myKeymyKey,, objobj););
cache[cache[myKeymyKey] =] = objobj;;
Remove from the CacheRemove from the Cache objectobjectobjobj == cache.Removecache.Remove((myKeymyKey););
ClearClear cache.Clearcache.Clear();();
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
21/23
Alachisoft
NCache 3.8 21
Important Object Caching FeaturesImportant Object Caching Features
ExpirationsExpirations AbsoluteAbsolute--time + idletime + idle--timetime
AutoAuto--reload data on expiration (ifreadreload data on expiration (ifread--thru enabled)thru enabled)
Cache dependenciesCache dependencies Key, file, and custom dependenciesKey, file, and custom dependencies
Synchronize cache with databaseSynchronize cache with database .NETevent notifications (.NETevent notifications (SqlDependencySqlDependency) for SQL Server 2005 & Oracle 10g R2) for SQL Server 2005 & Oracle 10g R2
Polling based for all OLEDB compliant databasesPolling based for all OLEDB compliant databases
ReadRead--through and writethrough and write--throughthrough You implementreadYou implementread--thru and writethru and write--thru handlers called by NCachethru handlers called by NCache
Write has writeWrite has write--behind option that queues up database updatesbehind option that queues up database updates
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
22/23
Alachisoft
NCache 3.8 22www.alachisoft.com
Important Object Caching FeaturesImportant Object Caching Features
Event notifications (cluster wide)Event notifications (cluster wide) Register interest in specific cached items to be notified at insert/removeRegister interest in specific cached items to be notified at insert/remove
Register interest to be notified at ALL add/insert/remove (off by default)Register interest to be notified at ALL add/insert/remove (off by default)
Send custom notifications to other NCache clients (cluster wide)Send custom notifications to other NCache clients (cluster wide)
Tagging & Searching CacheTagging & Searching Cache Object Query Language for searching on object attributesObject Query Language for searching on object attributes
Tagging for arbitrary grouping and searching of cached objectsTagging for arbitrary grouping and searching of cached objects
Pessimistic & Optimistic LockingPessimistic & Optimistic Locking
Lock/Unlock forpessimistic locking (writerLock/Unlock forpessimistic locking (writer--lock)lock) Object versioning for optimistic locking (readerObject versioning for optimistic locking (reader--lock)lock)
Bulk operationsBulk operations Get, Add, Insert, RemoveGet, Add, Insert, Remove
http://www.alachisoft.com/ncache/index.html
-
8/7/2019 NCache 3.8
23/23
Alachisoft
NCache 3.8 23
Important Object Caching FeaturesImportant Object Caching Features
Compact serializationCompact serialization Mix with regular .NET serialization. Faster and more compact.Mix with regular .NET serialization. Faster and more compact.
Caching Application Block (CAB) integrationCaching Application Block (CAB) integration NCacheNCache implements a cache manager for CABimplements a cache manager for CAB
No code changerequired to integrate (onlyNo code changerequired to integrate (only configconfig file changes)file changes)
NHibernateNHibernate integrationintegration Cacheprovider forCacheprovider for NHibernateNHibernate implementedimplemented
No code changerequired to integrate (onlyNo code changerequired to integrate (only configconfig file changes)file changes)
Java clientJava client No JavaNo Java--toto--.NET interoperability used. Native NCache socketprotocol..NET interoperability used. Native NCache socketprotocol. Event notifications availableEvent notifications available Object Query Language availableObject Query Language available
http://www.alachisoft.com/ncache/index.html