Iqbal Khan iqbal@alachisoft.com Ph: +1 (925) 236-2125 .NET Performance Solutions NCache Fast & Scalable .NET Apps in Server Farms Distributed .NET Data Cache Distributed ASP.NET Sessions Iqbal Khan iqbal@alachisoft.com Ph: +1 (925) 236-2125 http://www.alachisoft.com/ncache/index.html
Alachisoft Company History Founded in California in 1996 Experts in enterprise applications in Java, C++, and .NET Became Alachisoft in 2003 (product company) Impressive growth from profitable and revenue-funded model Headquarters: San Francisco Bay Area 2410 Camino Ramon, Suite 175, San Ramon, CA 94583 NCache launched in July 2005 Current version: 3.8 (8th version) NCache 3.8 www.alachisoft.com
Supporting Our Customers Annual Maintenance & Support Free upgrades for 1 year Email & telephone based support 24x7 Support Professional Services Cache Integration: into your existing apps Caching API Training: for your developers Cache Configuration Training: for your IT staff NCache 3.8 www.alachisoft.com
Main Benefits of NCache Higher Application Performance & Scalability Performance: Extremely fast in-memory cache Scalability: Reduce pressure on database Linearly scale out cache cluster Reliable & Scalable ASP.NET Session Storage Session replicated for reliability Fast & scalable session storage Runtime Data Sharing for Server Apps Asynchronous data sharing in producer/consumer model Powerful event notification for app coordination NCache 3.8 http://www.alachisoft.com/ncache/index.html
Main Uses of NCache Enterprise Distributed Data Cache Performance & Scalability: Reduce expensive db trips Reliability: Dynamic clustering & replication ASP.NET apps, web services, distributed apps, grid computing apps Distributed ASP.NET Sessions for Web Farms Faster and more scalable session storage Reliability: 100% uptime. Sessions replicated. Easy adoption: No code change required to use NCache 3.8 http://www.alachisoft.com/ncache/index.html
Enterprise Distributed Data Cache NCache 3.8 http://www.alachisoft.com/ncache/index.html
High Availability (100% Uptime) Dynamic Cache Cluster TCP based Cache Cluster Does not use Windows Clustering Peer to peer architecture No single point of failure Add/remove servers at runtime Without stopping cache or your app Data adjusted automatically based on caching topology Hot Apply config changes Change config properties while cache is running NCache 3.8 http://www.alachisoft.com/ncache/index.html
High Availability (100% Uptime) Dynamic Configuration Connection failover Auto-connect to other servers Cluster membership info Propagate to clients at runtime Cache topology info Connection strategy at runtime NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Mirrored Cache (2-node active/passive) All clients connect to active node Passive node becomes active if active node goes down. Clients also automatically connect to it Mirroring to passive node done asynchronously Recommended use: Up to 10 app servers 2 cache server cluster NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Replicated Cache Entire cache copied to all servers Each update done to all servers Clients connect evenly to all servers. All servers active. Good for read-intensive scenarios NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Partitioned Cache Extremely scalable Location transparency Good for larger clusters Distribution map sent to all clients No replication available NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Partitioned-Replica Cache Each partition has one replica Async & Sync replication Location transparency. Extremely scalable Reliability due to replication NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Client Cache Clustered cache on separate tier Client has local client cache Client cache InProc or OutProc Client cache automatically synchronized with clustered cache Gives further boost to client apps Good for read-intensive apps NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Performance Data (2-node cluster) Mirrored Cache 30,000 reads/sec 25,000 writes/sec Replicated Cache 60,000 reads/sec 2500 writes/sec Partition-Replica Cache 44,000 writes/sec NCache 3.8 http://www.alachisoft.com/ncache/index.html
Caching Topologies Bridge Topology (for WAN replication) NCache 3.8 http://www.alachisoft.com/ncache/index.html
Poweful Cache Administration NCache 3.8 http://www.alachisoft.com/ncache/index.html
Powerful Cache Monitoring NCache 3.8 http://www.alachisoft.com/ncache/index.html
Important Features Max cache size Eviction policies To control memory consumption. Evicts item when cache reaches Max Size Eviction policies LRU, LFU, Priority, and “Do Not Evict” Cache security (authenticate + authorize) Authenticate with Active Directory. Authorize as “Admin” or “User” Compression Specify compression threshold. Uses GZip on client-side. Server Configuration Options Rejoin a cache cluster upon reboot Multiple NIC support (one for client/server & one for cluster) NCache 3.8 http://www.alachisoft.com/ncache/index.html www.alachisoft.com
NCache ASP.NET 2.0 Session State Provider http://www.alachisoft.com/ncache/index.html
Object Caching API is Simple Initialize & Dispose the Cache Cache cache = NCache.InitializeCache(“myReplicatedCache”); cache.Dispose(); Read from the Cache object obj = cache.Get(“myKey”); object obj = cache[“myKey”]; bool isPresent = cache.Contains(“myKey”); Add to the Cache cache.Add(“myKey”, obj); cache.Insert(“myKey”, obj); cache[“myKey”] = obj; Remove from the Cache object obj = cache.Remove(“myKey”); Clear cache.Clear(); NCache 3.8 http://www.alachisoft.com/ncache/index.html
Important Object Caching Features Expirations Absolute-time + idle-time Auto-reload data on expiration (if read-thru enabled) Cache dependencies Key, file, and custom dependencies Synchronize cache with database .NET event notifications (SqlDependency) for SQL Server 2005 & Oracle 10g R2 Polling based for all OLEDB compliant databases Read-through and write-through You implement read-thru and write-thru handlers called by NCache Write has write-behind option that queues up database updates NCache 3.8 http://www.alachisoft.com/ncache/index.html
Important Object Caching Features Event notifications (cluster wide) Register interest in specific cached items to be notified at insert/remove Register interest to be notified at ALL add/insert/remove (off by default) Send custom notifications to other NCache clients (cluster wide) Tagging & Searching Cache Object Query Language for searching on object attributes Tagging for arbitrary grouping and searching of cached objects Pessimistic & Optimistic Locking Lock/Unlock for pessimistic locking (writer-lock) Object versioning for optimistic locking (reader-lock) Bulk operations Get, Add, Insert, Remove NCache 3.8 http://www.alachisoft.com/ncache/index.html www.alachisoft.com
Important Object Caching Features Compact serialization Mix with regular .NET serialization. Faster and more compact. Caching Application Block (CAB) integration NCache implements a cache manager for CAB No code change required to integrate (only config file changes) NHibernate integration Cache provider for NHibernate implemented Java client No Java-to-.NET interoperability used. Native NCache socket protocol. Event notifications available Object Query Language available NCache 3.8 http://www.alachisoft.com/ncache/index.html