Date post: | 13-May-2015 |
Category: |
Technology |
Upload: | wesnoor |
View: | 1,104 times |
Download: | 0 times |
http://www.alachisoft.com/ncache/index.html 1
NCacheNCache
Fast & Scalable .NET AppsFast & Scalable .NET Apps
in Server Farmsin Server Farms
Distributed .NET Data Cache
Distributed ASP.NET Sessions
Iqbal KhanIqbal [email protected] Ph: +1 (925) 236-2125 Ph: +1 (925) 236-2125
Alachisoft.NET Performance Solutions
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 revenue-funded modelImpressive growth from profitable and revenue-funded 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)
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 your existing apps: into your existing 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
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:
Reduce pressure on databaseReduce pressure 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 for reliabilitySession replicated for reliability Fast & scalable session storage
3.3. Runtime Data Sharing for Server Apps Runtime 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
Alachisoft
NCache 3.8 5
Main Uses of NCacheMain Uses of NCache
1.1. Enterprise Distributed Data CacheEnterprise Distributed Data Cache Performance & ScalabilityPerformance & Scalability: Reduce expensive db trips: Reduce expensive 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 storage session storage ReliabilityReliability: 100% uptime. Sessions replicated.: 100% uptime. Sessions replicated. Easy adoptionEasy adoption:: No code change required to use No code change required to use
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 6
Enterprise Distributed Data CacheEnterprise Distributed Data Cache
NCache Distributed Cache
Windows 2003/2008 (32-bit & 64-bit) .NET 1.1/2.0/3.5
ASP.NET Apps .NET Web Services Java Apps Grid Computing Apps
Filesystem Database Servers Mainframe
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 7
High Availability (100% High Availability (100% Uptime)Uptime)Dynamic Cache ClusterDynamic Cache Cluster
Cache Cluster
NCache Srv
AddServer
AtRuntime
RemoveServer
AtRuntime
NCache Srv NCache Srv
Remote Clients (Web/App Servers) TCP based Cache ClusterTCP based Cache Cluster Does not use Windows Does not use Windows
ClusteringClustering
Peer to peer architecturePeer to peer architecture No single point of failureNo single point of failure
Add/remove servers at Add/remove servers at runtimeruntime
Without stopping cache or your Without stopping cache or your appapp
Data adjusted automatically Data adjusted automatically based on caching topologybased on caching topology
Hot Apply config changesHot Apply config changes Change config properties while Change config properties while
cache is runningcache is running
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 8
High Availability (100% High Availability (100% Uptime)Uptime)Dynamic ConfigurationDynamic Configuration
Connection failoverConnection failover Auto-connect to other serversAuto-connect to other servers
Cluster membership infoCluster membership info Propagate to clients at runtimePropagate to clients at runtime
Cache topology infoCache topology info Propagate to clients at runtimePropagate to clients at runtime Connection strategy at runtimeConnection strategy at runtime
Dynamic Cache Cluster
NCache Srv
Remote Clients (Web/App Servers)
NCache SrvNCache Srv
Cluster Membership Info
Cache Topology Info
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 9
Caching TopologiesCaching TopologiesMirrored Cache (2-node active/passive)Mirrored Cache (2-node active/passive)
Server 1 Server 2
Mirrored Cache
1 2
3 4
5 6
Active
1 2
3 4
5 6
Passive(Backup)
Async Backup
Remote Clients (Web/App Servers) All clients connect to active All clients connect to active
nodenode
Passive node becomes active Passive node becomes active if active node goes down. if active node goes down. Clients also automatically Clients also automatically connect to itconnect to it
Mirroring to passive node Mirroring to passive node done asynchronouslydone asynchronously
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
Alachisoft
NCache 3.8 10
Caching TopologiesCaching TopologiesReplicated CacheReplicated Cache
Entire cache copied to all Entire cache copied to all serversservers
Each update done to all Each update done to all serversservers
Clients connect evenly to all Clients connect evenly to all servers. All servers active.servers. All servers active.
Good for read-intensive Good for read-intensive scenariosscenarios
Server 1 Server 2
Replicated Cache
1 2
3 4
5 6
Active
Synchronous Updates
Remote Clients (Web/App Servers)
1 2
3 4
5 6
Active
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 11
Caching Topologies Caching Topologies Partitioned CachePartitioned Cache
Extremely scalableExtremely scalable
Location transparencyLocation transparency
Good for larger clustersGood for larger clusters
Distribution map sent to all Distribution map sent to all clientsclients
No replication availableNo replication available
Server 1 Server 2
Partitioned CacheRemote Clients (Web/App Servers)
21
Partition 1
43
Partition 2
DistributionMap
DistributionMap
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 12
Caching Topologies Caching Topologies Partitioned-Replica CachePartitioned-Replica Cache
Each partition has one replicaEach partition has one replica
Async & Sync replicationAsync & Sync replication
Location transparency.Location transparency.
Extremely scalableExtremely scalable
Reliability due to replicationReliability due to replication
Server 1 Server 2
Partition-Replica CacheRemote Clients (Web/App Servers)
21
Partition 1
43
Replica 2
43
Partition 2
21
Replica 1
DistributionMap
DistributionMap
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 13
Caching TopologiesCaching TopologiesClient CacheClient Cache
Web/App Server(Client Node) ... Web/App Server
(Client Node)
Cache Cluster
NCache Client Nodes
Server 1 Server 2
Server 3
Dynamic Clustered Cache
Cached Item
1 2
3 4
5 6
1 2
3 4
5 6
1 2
3 4
5 6
Client Cache Client Cache
SynchronizedSynchronized
Clustered cache on separate Clustered cache on separate tiertier
Client has local client cacheClient has local client cache
Client cache InProc or OutProcClient cache InProc or OutProc
Client cache automatically Client cache automatically synchronized with clustered synchronized with clustered cachecache
Gives further boost to client Gives further boost to client appsapps
Good for read-intensive appsGood for read-intensive apps
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 14
Caching TopologiesCaching TopologiesPerformance Data (2-node cluster)Performance Data (2-node cluster)
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
Partition-Replica Partition-Replica CacheCache
60,000 reads/sec60,000 reads/sec 44,000 writes/sec44,000 writes/sec
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 15
Caching TopologiesCaching TopologiesBridge Topology (for WAN replication)Bridge Topology (for WAN replication)
Server 1(Active)
Server 2(Passive Mirror)
Bridge
Primary Site (Active)
Remote Client(.NET)
Remote Client(.NET) ... Remote Client
(Java)
NCache Client Nodes
Server 1 Server 2
Server 3
Cache Cluster
.NET Client
NCache NCache
NCache
Java Client
Remote Client(.NET)
Remote Client(.NET) ... Remote Client
(Java)
NCache Client Nodes
Server 1 Server 2
Server 3
Cache Cluster
.NET Client
NCache NCache
NCache
Java Client
Disaster Recovery Site
Replicate (WAN)
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 16
Poweful Cache AdministrationPoweful Cache Administration
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 17
Powerful Cache MonitoringPowerful Cache Monitoring
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 18www.alachisoft.com
Important FeaturesImportant Features
Max cache sizeMax cache size To control memory consumption. Evicts item when cache reaches Max To control memory consumption. Evicts item when cache reaches Max
SizeSize
Eviction policiesEviction policies LRU, LFU, Priority, and “Do Not Evict”LRU, LFU, Priority, and “Do Not Evict”
Cache security (authenticate + authorize)Cache security (authenticate + authorize) Authenticate with Active Directory. Authorize as “Admin” or “User”Authenticate with Active Directory. Authorize as “Admin” or “User”
CompressionCompression Specify compression threshold. Uses GZip on client-side. Specify compression threshold. Uses GZip on client-side.
Server Configuration OptionsServer Configuration Options Rejoin a cache cluster upon reboot Rejoin 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
Alachisoft
NCache 3.8 19
NCache ASP.NET 2.0 Session State NCache ASP.NET 2.0 Session State ProviderProvider
Load Balancer (LB)
Dynamic Cluster (TCP based)
Thin Client(Browser based)
Thin Client(Browser based)
Thin Client(Browser based)...
Business& DataObjects
Web Server (IIS)
ASP.NET Pages
ASP.NET Session
Distributed Cache
NC Session State Provider (SSP)
Business& DataObjects
Web Server (IIS)
ASP.NET Pages
ASP.NET Session
Distributed Cache
NC Session State Provider (SSP
Business& DataObjects
Web Server (IIS)
ASP.NET Pages
ASP.NET Session
Distributed Cache
NC Session State Provider (SSP)
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 20
Object Caching API is SimpleObject Caching API is Simple
Initialize & Dispose the CacheInitialize & Dispose the Cache Cache Cache cache = cache = NCacheNCache.InitializeCache(.InitializeCache(“myReplicatedCache”“myReplicatedCache”);); cache.Dispose();cache.Dispose();
Read from the CacheRead from the Cache objectobject obj = cache.Get( obj = cache.Get(“myKey”“myKey”);); objectobject obj = cache[ obj = cache[“myKey”“myKey”];]; boolbool isPresent = isPresent = cache.Contains(cache.Contains(“myKey”“myKey”););
Add to the CacheAdd to the Cache cache.Add(cache.Add(“myKey”“myKey”, obj);, obj); cache.Insert(cache.Insert(“myKey”“myKey”, obj);, obj); cache[cache[“myKey”“myKey”] = obj;] = obj;
Remove from the CacheRemove from the Cache objectobject obj = cache.Remove( obj = cache.Remove(“myKey”“myKey”););
ClearClear cache.Clear();cache.Clear();
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 21
Important Object Caching Important Object Caching FeaturesFeatures ExpirationsExpirations
Absolute-time + idle-timeAbsolute-time + idle-time Auto-reload data on expiration (if read-thru enabled)Auto-reload data on expiration (if read-thru enabled)
Cache dependenciesCache dependencies Key, file, and custom dependenciesKey, file, and custom dependencies
Synchronize cache with databaseSynchronize cache with database .NET event notifications (SqlDependency) for SQL Server 2005 & Oracle .NET event notifications (SqlDependency) for SQL Server 2005 & Oracle
10g R210g R2 Polling based for all OLEDB compliant databasesPolling based for all OLEDB compliant databases
Read-through and write-throughRead-through and write-through You implement read-thru and write-thru handlers called by NCacheYou implement read-thru and write-thru handlers called by NCache Write has write-behind option that queues up database updatesWrite has write-behind option that queues up database updates
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 22www.alachisoft.com
Important Object Caching Important Object Caching FeaturesFeatures 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 for pessimistic locking (writer-lock)Lock/Unlock for pessimistic locking (writer-lock) Object versioning for optimistic locking (reader-lock)Object versioning for optimistic locking (reader-lock)
Bulk operationsBulk operations Get, Add, Insert, RemoveGet, Add, Insert, Remove
http://www.alachisoft.com/ncache/index.html
Alachisoft
NCache 3.8 23
Important Object Caching Important Object Caching FeaturesFeatures 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 NCache implements a cache manager for CABNCache implements a cache manager for CAB No code change required to integrate (only config file changes)No code change required to integrate (only config file changes)
NHibernate integrationNHibernate integration Cache provider for NHibernate implementedCache provider for NHibernate implemented No code change required to integrate (only config file changes)No code change required to integrate (only config file changes)
Java clientJava client No Java-to-.NET interoperability used. Native NCache socket protocol.No Java-to-.NET interoperability used. Native NCache socket protocol. Event notifications availableEvent notifications available Object Query Language availableObject Query Language available
http://www.alachisoft.com/ncache/index.html