Alachisoft in TechEd America and TechEd Europe

June 7, 2012

Alachisoft has announced its participation in TechEd America and TechEd Europe to be held in Orland from June 11-14,2012 and June 22-25, 2012 in Amsterdam respectively, according to the Alachisoft Newsletter. Alachisoft will showcase two of its premier products there, NCache and StorageEdge.

Iqbal Khan, The Technology Evangelist at Alachisoft, will demonstrate to the visitors how NCache reduces expensive database trips resulting in enhanced performance and extended scalability, especially since these qualities are now considered core requirements for a reliable and efficient enterprise application.

While StorageEdge promises to strengthen your SharePoint ROI by assisting in offloading BLOBs onto cheaper storage tiers with various filtering options to help improve user experience and bandwidth. Though I’ve discussed the benefits and features of StorageEdge in detail in my earlier post, below are some of the highlights,

    – RBS Filestream provider
    – BLOB Externalization
    – Archiving to multi-Tire Storage
    – Rational Archiving for Compliance
    – File Share linker
    – Database Mirroring
    – Asynchronous BLOB Writing

Visitors will witness these remarkable features and noticed the strength of StorageEdge and NCache via live demos and presentations at the booth, apart from the brochures.

The event, hosted by Microsoft, is the leading event for business and IT professionals from all over the world. TechEd is offering most comprehensive education across Microsoft current and soon-to –be –released suites of products, solutions, tools and services. This will be the 20th Annual TechEd North America this June in Orlando and it will deliver four days of hand –on training from Microsoft experts.

Alachisoft also participated in the Last year’s TechEd which was held in Atlanta, North America. “This helped us build confidence in our customers who see us there every year and projected our growing influence and strategic place among up and coming companies. Thank you to all who were part of it and made it a success” said by CTO Iqbal Khan at the end of the last year’s event.


Improve the performance of .NET App

May 7, 2012

The classic ASP.NET is stand alone and inProc in nature so it has some limitations. It is good for smaller web farms only but when your app is running in a multi-server environment, it may ends up with some performance and scalability issues. So the use of a third party distributed is recommended as the cache in this case is distributed over multiple servers so it not only boost the performance of the app but also provides the scalable data all the time. Even MicroSoft itself realized this factor and they have introduced MS AppFabric. But when it comes to distributed aching, NCache is a matures and well established distributed cache provider.

NCache is an in-memory object caching solution for .NET applications with real-time data access needs. It not only lets you cache read-only data but also complex transactional data with relationships. As a result, your application can cache most of its data and improve performance. NCache helps remove performance& scalability bottlenecks related to your data storage and databases and scale your .NET and Java apps to extreme transaction processing (XTP)

Alachisoft, the makers of NCache and StorageEdge for SharePoint has recently released the latest version of NCache i.e. NCache 4.1. In this release, the following features have been added along with the features of earlier edition, NCache 3.8 SP4,

1. String sharing between Java and .NET (vice versa)
2. SQL Cache Dependency Custom Queue/Notification Service

There are three different editions of NCache are available which are,
NCache Express
NCache Professional
NCache Enterprise

You can learn more about the different features of these editions from the edition comparison list.

Download NCache


Share Data across ASP.NET Farm Using Distributed Caching

April 3, 2012

If you have a web farm and you are using ASP.NET session State server or SQL Server for storing sessions then you can face the following issues.

Single point of failure (data loss)

In the case of Session State Server, all the function are performed on a single node. In other words, the whole web farm is dependent upon a single node and if that node goes down, the whole web farm will go down. it may leads to single point of failure.

Slow performance on peak loads

As all the operations are being performed on a single node, it may results in performance issue during the peak load time. When there are numbers of requests at the same, it may choked up which will not only effects it performance but also ultimately the whole node will go down, which means the complete data lose.

Scalability issues due to database bottlenecks

As Session State Server is a database driven application, database may become a bottleneck when its size will exceed from a certain limit. For every request, session state server has to make a trip to the database which can cause the scalability issues.

Solution:

In situations like these,you should move to a distributed caching solution like NCache so that you can improve your application performance and remove the limitations of Session State Server.

With NCache you can enable the distributed caching without changing your application code. You can plug-in the cache with a web.config change. NCache provides couple of topologies which are optimized for different types of applications. There is a powerful dynamic clustering feature which lets you add/remove cache servers at runtime without stopping your application.

Client-cache

client-optimization – Based on Hasing alog the client makes intelligent decisions for storing and finding the data. It directly talks to the server where the data is stored and in a single call it fetches the data and gives linear scalability as you add more servers to your cache cluster. For read intensive applications the performance can be boost further with the help of client cache because it reduces the network trips for fetching the data from the remote cache.

About Alachisoft:

Alachisoft, is located in San Francisco Bay Area, California, is a leading provider of NCache and StorageEdge. NCache is a high performance in-memory object caching solution for mission critical .NET and Java applications with real-time data access needs. While StorageEdge optimizes SharePoint storage and performance. It externalizes all BLOBs from SharePoint content database and reduces the database size by 95%.

Download Free Version of NCache


NCache Features which AppFabric does not have

March 9, 2012

If the performance of a .NET application is effected during the peak load times, it is the end users who will be effected ultimately. This is the reason why distributed caching has become a hot cake for the .NET developers. it not only boost the performance of the application during peak load times, but it also provides scalability and reliability. There are numbers of third party distributed cache providers which are doing very good job, NCache and App Fabric being the two most famous ones.

Below is a list of features which make NCache the premier distributed cache provider.

1- Rich set of object caching features:

a: Cache Dependency for data relationship mgmt:
i) Key based
ii) File based
iii)Custom

b: Database synchronized
i) .NET events based with sqlCacheDependency for SQL 2005/2008 or Oracle on Windows.
ii) Polling based for any OLEDB compliant database

c: Absolute expirations

d: Group/sub-group items

e: Searching
i) Object Query Languages
ii) LINQ based searching

f: Streaming API for audio/video content:

g: Event Notification
i) AppFabric Key based notifications are not flexible you cannot register for specific event. If you enable notification on a key you will be notified whenever one of the followings happens (AddItem, ReplaceItem, RemoveItem, CreateRegion, RemoveRegion, ClearRegion). NCache on the other hand lets you specify an exact event on which to be notified so your app is not overwhelmed with unnecessary notifications

ii) Custom notifications that are initiated by client apps and used for using NCache as a runtime data sharing platform among different apps.

h: Read-thru/Write-thru/Write-behind

i: Compact serialization
NCache 3.8 provides a dynamic compact serialization which does not require any programming but is faster and more compact than regular .NET serialization. It also allows you to cache third-party objects that are otherwise not serializable.

j: Cache Loader
to pre-populate the cache upon startup

2: Dynamic Clustering & quick Failover with consistent data:

i) AppFabric has a single point of failure if the server that contains your cluster information goes down the whole cluster shuts down failing your application completely. On the other hand, NCache has a peer to peer dynamic clustering without single point of failure. You can add/drop any servers at runtime without stopping your application. Partition-Replica is totally dynamic with high availability in NCache.

ii) AppFabric failover results in data loss whereas with NCache 100% consistent data is seamlessly available before and after the failover.

iii) AppFabric requires a minimum of 3 nodes to satisfy the “majority lead hosts” rule even for this partial failover with some data loss whereas NCache requires just 2 servers for loss-less quick failover.

3- Change cluster configurations on the fly:

i) Unlike AppFabric, where you have to stop the entire cluster and your application to do any change on cluster configurations, the dynamic clustering in NCache allows you to change cluster configurations on the fly with “Hot Apply Configuration” option.

ii) You can increase the size of your cluster if your user base increases without stopping your cluster or your application.

4- Caching Topologies for Scalability:

a: Mirrored Cache
A Mirrored Cache is almost as fast as a stand-alone Local Cache which has no clustering cost. But, at the same time, a Mirrored Cache provides reliability through replication in case the active cache server goes down.

b: Partition-Replica
Partition-Replica is totally dynamic in NCache where you don’t have to do anything to set it up. Unlike AppFabric, you can choose to have synchronous or asynchronous replication to improve your application performance.

c: Client Cache
Client Cache that is local to your app sever but actually synchronizes with clustered cache. App Fabric only has local stand-alone cache which doesn’t address the issue of data integrity.

d: Bridge Topology
Bridge Topology that allows you to replicate cache across WAN asynchronously and without slowing down your main caches in each location. I think you guys needed this feature if I am not mistaken

5- Self-Healing Dynamic Clustering for 100% Uptime:

NCache provides a totally dynamic cache cluster where you can add/remove cache servers at runtime without stopping the cache or your application. NCache cluster recovers automatically recovers from network shortages.

6- GUI based Administration/Monitoring:

a: NCache Manager
GUI based NCache Manager let you configure and administer all cache clusters and clients from one place. The GUI has gone through a lot of improvements.

b: NCache Monitor
A totally new dashboard-style monitoring tool that lets you monitor all the caches and also your application together with them.

c: Command Line Tools
A number of command line tools to let you script and automate cache deployment. Power Shell support provided.

d: Alerts
Various alerts provided through Windows Events and also Emails. You can specify alerts on the following:

i) Cache start
ii) Cache stop
iii) Cache size above a certain threshold
iv) State transfer start when a node is added/removed in Partitioned/Partition-Replica Cache
v) State transfer end
vi) Node joined cluster
vii) Node left cluster

e: Cache Configuration Options
i) Automatic GZip Compression based on an item size threshold
ii) Eviction policy options (Least Recently Used, Least Frequently Used, Priority, Do not Evict)

7- View State Caching:

View State Caching reduces your ASP.NET payload sent to the browser by the web server and improves your response times.

8- Output Caching:

This speeds up rendering somewhat static pages since their output is cached at the web server.

9- Active Directory based Security:

Unlike AppFabric, NCache gives you multi-level security on the cache cluster servers. So you can aurthorize your specific clients to talk to it and prevent any intruders to read/write to the cache or change cluster configurations.

10- JavaScript/CSS optimization

Minify & merge multiple Javascript files into one to reduce multiple HTTP calls that a browser makes to load multiple Javascript files.

11- Java & JSP Support:

i) Native Java API
ii) Support for storing Java/JSP sessions in NCache
iii) Unix clients for Java API


Release of NCache 4.1

October 26, 2011

Alachisoft , the developers of leading softwares like StorageEdge and NCache, has released the new version of NCache i.e. NCache 4.1 .

Like the early releases, this release is also full of new and exciting features. NCache 4.1 is not only embedded with some high quality features but there are some major enhancements too.I’m going to discus some of the most important features here.

This new release gives you a whole package for Run Time Data Sharing between multiple platforms (java & .Net) and it contains object level sharing , version based sharing, asynchronous data sharing (event based) and online data sharing across the WAN.

Due to XML serialization with the involvement of DB, Object sharing between .net and java was slow in the earlier editions. But this problem has been overcome in this edition with the help of run time data sharing. As runtime data sharing uses binary serialization instead of typical XML serialization without DB, the results are much faster and trouble free.

Another exciting feature of which has been introduced in NCache 4.1 is Continuous query. With the help of Continuous query you can synchronizes cache and application with each other. It lets you register against a query, which means application can ask for notifications whenever a record (data-set) is updated\modified, added or deleted.

Perhaps the most important feature of NCache is the introduction of much enhanced Bridge Topology. Bridge topology creates bridge node(s) where complete cache is replicated asynchronously over the WAN.

Runtime Data Sharing between .NET & Java

With the help of NCache now you store either .NET objects in the cache can read them as Java objects from your java application or vice versa. Most importantly, this transformation of .NET objects to Java is done by runtime data sharing which is a binary sharing instead of XLM sharing which is much slower as described above.

Multiple Objects Version Support (.NET & Java)

You can now share multiple versions of the same .NET or Java classes across multiple applications.

Continuous Query (.NET & Java)

NCache lets you specify a data-set based on an SQL-like query. It then maintains this data-set in the cache cluster for you and monitors any runtime changes in it, including additions, updates, or deletes.

For complete list of features of NCache 4.1 please visit What’s New Page

Or download 60-day fully working trial Version of NCache from the Download Page


Compact Serialization Vs .Net Serialization

August 1, 2011

Serialization is the process of converting the state of an object into a form that can be transferred on the wire. The opposite of serialization is deserialization, which converts a stream into an object. In distributed applications the serialization takes place whenever the data has to go out of the process or machine. Serialization in general is a slow process because of the IO and can become a performance bottleneck for distributed applications.

The .NET framework provides multiple serialization techniques such as binary, SOAP and XML serialization. Binary Serialization is commonly used and is much faster than the other serialization techniques. It preserves type consistency, which is useful for preserving the state of an object between different invocations of an application.

Although, .NET binary serialization is fast but it has some serious limitations. When it comes to network, speed of transfer of data is dependent on the data size. When a data is shared process to process while traveling on network, it should be serialized. Whenever an object is serialized, it contains so much Meta data of the object that it becomes very difficult to transfer it on the network. Bigger the object, more time it takes to travel on the network. Serialization uses reflection. Reflection is an I/O process which affects performance badly in case of the applications that uses distributed caching as the size of the serialized objects gets almost double.

Draw backs of binary serialization are:

• Slow reflection

• As the object size gets bigger, it affects the performance and slower network trips.

•People who use distributed caching experience a lot of data transferring which gets slower.

NCache is a distributed caching solution which provides you a feature called compact serialization which can help you fix problem occurring in binary serialization.

Compact Serialization is a process which produces a compact form of serialized object for performance improvement which results in faster network trips. It works by serializing the object in compact in form of data and process. The concept behind the compact serialization is that every keyword/data type is assigned a unique 2-byte type handle by the framework, which lets the deserializer uniquely identify them.
For example, suppose the framework assign a handle 0 to System.Int32. Then the serializer writes the 2-byte handle followed by 4 bytes of object value to the stream. Deserializer reads the handle, finds out the object type, and then creates and gives the object its value.

On other hand the binary serialization writes the complete type information with object data.

How Compact serialization is better than .Net serialization?

• In compact serialization, the serialized object does not contain the complete type information and assemblies. It only contains an object value and a unique 2-byte handle is used as a reference to uniquely identify the type’s details while deserializing an object which reduces the object size.

• Compact serialization also avoids the reflection which also reduces the overhead.

• You don’t need to code.

• It reduces the number of IO operations (minimum or no reflection) which increases performance of the application.

• Faster network trips reduce the cost and improves the performance as the size of the object is reduced.

SOME HELPFUL LINKS:

NCache Home Page

Download NCache


Dynamic Clustering in Distributed Caching

July 8, 2011

Distributed caching is the ultimate source of high performance, scalability and reliability for your application. Cache cluster is one of the notable features of distributed caching. A cache cluster is a collection of one or more cache servers with every server connected to every other server in the cluster. Runtime adjustment of clusters like increase or decrease in size of the cluster without stopping it is called dynamic clustering. It gives your application 100% up time all the time

Business needs vary throughout the year. Heavy load is experienced on special occasions like Christmas, New Year, and during holiday seasons. On such events, runtime demand increases (In situations like these, you’ve to make frequent runtime adjustments in your application  which demands high performance, reliability and scalability. So, use distributed caching which provides you dynamic clustering.

If any of the cache server goes offline for maintenance reasons, the whole application will go down which is not acceptable in any situation so use distributed caching as it is the best available choice. NCache is a distributed caching solution which provides you dynamic clustering. NCache uses peer-to-peer architecture in which each node is interconnected. If one node goes down then the other takes its responsibility and you don’t experience any down times.

Dynamic clustering helps you get 100% uptime. It also improves reliability, performance and scalability of your application. You can even maintain your cache server, by keeping your application live. Your application won’t go offline during the whole process.

When you make any change on the cluster like addition or removal of cache server, it should be intelligent enough to know the changes made on cluster. Similarly client should be up to date about cache changes too. Otherwise your application will perform oddly.

NCache does not use any OS-based clustering (like Windows Clustering) but instead it creates its own TCP based dynamic cluster of cache servers which helps NCache to provide you 100% uptime without going offline at any stage.

Failover Support by NCache:

When a cache cluster is created, it appoints a cluster coordinator that manages all members of the cluster. The coordinator is the senior-most server in the cluster. If the coordinator ever goes down, this duty passes on to the next senior-most server in the cluster. This auto recovery dynamic cluster of NCache provides your application full failover support.

There are two types of failovers that NCache supports:

  • Failover support within cluster: When a cache server is added or removed from the cluster, the cluster members are updated about the change within cluster so each cache server adjusts its connections to all other cache servers.
  • Failover support for cache clients: This means that all the cache clients also automatically adjust themselves if a cache server is added or removed.

Benefits are:

  • 100% application uptime
  • Reliability
  • Self healing
  • Load balancing
  • Satisfied/happy customer

%d bloggers like this: