Sunday, May 31, 2015

We were discussing Riverbed Operating System (RiOS) technical concepts. we now review connection pooling and SSL acceleration. Applications open many connections during their execution. Many of these are short-lived yet they require significant overhead to initiate communications. If for example, the loading of a webpage requires a client to open TCP connections, then each slows down the application. RiOS can maintain a pool of open connections for these purposes. Here the connections are already open and there is no overhead associated with using one. Each such pre-opened connection is ready for data transfer and is not considered dirty from previous use. Connection pooling can improve on overheads by as much as 50%.
In addition to connection pooling, another common practice is the use of SSL with application connections. SSL comes with different trust models. RiOS can accelerate SSL traffic while letting private keys be held in the data center and without requiring fake certificates. Both the RiOS appliance and client can auto-discover their peers and begin optimizing SSL traffic. RiOS also provides central management of SSL acceleration capabilities.  Allowing the organization to use their own certificate with their SSL connections and not require them to keep fake certificates or server private keys in branch offices makes RiOS flexible and improves the security. RiOS only distributes temporary session keys to branch office appliances.
RiOS optimizes both http and https traffic. For static web content, a "learning mechanism" allows the RiOS clients to track the objects that are requested for particular web page and accelerate future requests by using the learned information and pre-fetching associated content. In addition, the learned information is sent in parallel for normally sequential data creating additional optimization benefits.
#codingexercise
Double  GetNthRootSumOddRaisedPDividedQAndEvenRaisedPTimesQ (Double [] A,Double  p, Double q)
{
If ( A== null) return 0;
Return A.NthRootSumOddRaisedPDividedQAndEvenRaisedPTimesQ(p, q);
}

Saturday, May 30, 2015

We were discussing Riverbed Operating System (RiOS) technical concepts.  We now look at the use of Window Scaling and Virtual Window Expansion. Window Scaling is a standard TCP technique to increase the net throughput when the TCP window is the bottleneck.  The maximum amount of data per round-trip goes up because the number of bytes that can be "in flight" without being acknowledged is increased. Although this is a TCP implementation, the configuration lies with the user which often requires some esoteric settings to be tweaked.
This configuration by the user is avoided by RiOS in automatic window scaling.  RiOS virtually expands the TCP windows and enables capacity that is hundreds of times greater than the basic TCP payloads. As a TCP proxy, RiOS effectively repacks TCP payloads with the help of references instead of the actual data.  Since we noted earlier that the use of references saves a lot of data duplication and the proprietary hierarchical references can be used for several segments that are indexed, the TCP frame is virtually expanded and often by a factor of several hundred or more. Consequently, there's fewer roundtrips needed to deliver a given amount of data. The use of references to repack the TCP data is referred to as the Virtual Window Expansion.
RiOS also makes use of high speed TCP and Max speed TCP. These are techniques used for high latency links or where packet loss is high.  These techniques can accelerate TCP based applications so that a single connection runs at hundreds of Mbps even when round trip latencies are high. The potential benefits include : higher throughput, faster replication, backup and mirroring and better utilization of links. These techniques don't need to pre-determine the bandwidth. They can self-adjust the transmission for appropriate throughput.  The difference between high speed TCP and max speed TCP is that the high speed TCP will back down in speed as a result of packet loss or congestion where as max TCP is designed to use a set amount of bandwidth regardless of congestion or packet loss.

#codingexercise

Double  GetNthRootSumOddRaisedPTimesQAndEvenRaisedPDividedQ (Double [] A,Double  p, Double q)


{


If ( A== null) return 0;


Return A.NthRootSumOddRaisedPTimesQAndEvenRaisedPDividedQ(p, q);


}


Friday, May 29, 2015

We were discussing Riverbed Operating System (RiOS) technical concepts. For Data Deduplication, RiOS intercepts and analyzes TCP traffic, segmenting the data and indexing it. It replaces duplicate segments with proprietary hierarchical references that save massive amounts of data.The segments are compressed using a Lempel-Ziv based algorithm that achieves good peak compression ratios. The size of the segments stored on disk is approximately 100 bytes allowing detection of fine grained changes in the traffic. Since the comparison is at byte level, the same works for both encrypted as well as unencrypted traffic. This scalable data reduction (SDR) technique can be performed interchangeably on disk or in memory. It can be done adaptively as well in either location or both. The best fit for particular connections or overall workload determines the strategy. Since disk accesses are involved, the appliances are fitted with solid state disks for better performance.
It is important to note that segments are byte chunks and agnostic of the metadata on the corresponding data transfer. Filenames, e-mails, objects or anything that the segment belongs to does not affect are not recognized. This is both a convenience as well as a limitation.  The convenience is that the changes are detected even if they are fine grained and applied consistently regardless of file renaming, object cloning or email replies. The limitation is that an application protocol could have been added that tags the traffic with metadata based on time or space for more information to the SDR. In any case, the SDR has to work across all TCP traffic and therefore differs from cache based solutions that cannot recognize the data as the same when tracking file or object based entities.
RiOS overcomes the chattiness of transport protocols through transport streamlining which is  set of techniques that reduce the number of round trips necessary to transport information across the WAN while maintaining the reliability and resiliency of the transport.The techniques involve window scaling, intelligent repacking of payloads, connection management and other protocol optimization techniques. These are standard techniques and therefore RiOS remains true to the fundamentals such as congestion control, error detection, connection management for good neighbor etc without adding extra requirements such as the use of a tunnel, proprietary protocols or other non-standard protocol optimization techniques. Consequently this native transport streamlining design avoids the issues such as traffic mixing, MTU sizes or TCP over TCP that affect alternative designs based on tunnels etc.

#codingexercise
Double  GetNthRootSumOddRaisedPMinusQAndEvenRaisedPPlusQ (Double [] A,Double  p, Double q)

{

If ( A== null) return 0;

Return A.NthRootSumOddRaisedPMinusQAndEvenRaisedPPlusQ(p, q);

}

Thursday, May 28, 2015

We were discussing Riverbed Operating System (RiOS) technical concepts. We know that RiOS can accelerate TCP based connections. These include but are not limited to CIFS, NFS, FTP, HTTP, HTTPS and database connections. Data Streamlining reduces bandwidth consumption by 60 to 95 %.
We now look at the specifics of data de-duplication. RiOS intercepts and analyzes TCP traffic, segmenting the data and indexing it. The indexed data is resident on disk and can be compared. If a segment of data has been seen before, it is not transferred across the WAN, instead a reference is sent in its place. This process  enables duplicate data to be replaced by a reference. RiOS has patented this reference. It includes a hierarchical structure with a single reference that can represent many segments and therefore the ability to reduplicate a large amount of data. If the data has not been seen before, the segments are compressed using Lempel-Ziv based algorithm and sent across to the RiOS appliance on the other side of WAN. These segments are also stored on the counterpart appliance. The original data is reconstructed using the new data and references to the existing data and passed through to the client. LZ Compression allows peak compression ratios of 100:1 to be achieved.

Wednesday, May 27, 2015

We were discussing Riverbed Operating System (RiOS) technical concepts. Let us look into network integration. RiOS solution does not demand anything from the network topology. It also does not require the use of tunnels. Since there are no tunnels involved, peers can be auto-discovered, full mesh environments can be supported and there is no limit to scale. There is no hindrance to the use of web cache communication protocols, policy based routing, or other out of path deployment options.
The purpose of mentioning this non-invasive, application neutral acceleration with little or no change to network is to say that this approach differs from a overarching one panacea fix all strategy. It's also not quite like a solution that requires different vendors to "bolt and glue" their products. That said, WAN optimization can proceed through multiple vendors who can combine or reuse some of the patterns introduced with RiOS.
The use of minimal configurations helps with the following in these ways:
Data Streamlining:
Reduce WAN bandwidth utilization by 60-95%
eliminate redundant transfers
perform cross application optimization
and provide quality of service for all the applications.
The support for data streamlining includes features for rule-based policy administration of optimization classes, packet marking, enforcement for QoS and route control.
These enable tremendous ease of use with most QoS measures.
#codingexercise

Double  GetNthRootProductOddRaisedPMinusQAndEvenRaisedPPlusQ (Double [] A,Double  p, Double q)




{




If ( A== null) return 0;


By



Return A.NthRootProductOddRaisedPMinusQAndEvenRaisedPPlusQ(p, q);




}


Tuesday, May 26, 2015

We continue to read up on Riverbed Optimization System (RiOS) technical overview. In the previous post, we discussed RiOS as a transparent TCP proxy where an innovative three channel mechanism replaces the logical single end to end connection. With RiOS, all TCP traffic can be intercepted and accelerated regardless of the application that generates it. This means that there is no application category or bracket to which RiOS is specific. In addition, transport streamlining optimizes the behavior of TCP on the WAN. And these can be applied to both encrypted data and clear.
Application caching is therefore not required which anyways is application specific and providing marginal benefits.
That mentioned we can refer to application specific optimizations. There are some applications like Windows File sharing or Exchange e-mail, where the application protocol matters. Aside from data and transport streamlining, application streamlining enables RiOS to alleviate application specific behavior although introducing TCP optimizers or data compression devices have shown limited performance gains.
Having discussed traffic, we now shift attention to data and disk usages. RiOS implements a Universal Data Store. This lets it reduce data to efficiently scale across multiple peers because of the use of a single store. The significance of this improvement can be seen in the number of per-peer data store savings. Moreover per peer segmentation often reduces usable disk space to very small portions. This manifests in such performance bottlenecks as data store "misses" or "cold hits". On the other hand, with a universal datastore and accelerated traffic, RiOS can now support efficient sharing in a large scale enterprise environment.
The data is guaranteed to be coherent because the single copy is accessed through the server. The server handles permissions and file locking. The client requests happen as if the intermediary accelerator device is not there.  Hence, the data can be considered original by branch offices. It may be interesting to note that in the absence of the single copy of server, obsolete and multiple stale versions of the master have a chance to proliferate. Perhaps its worthwhile to mention that the locking    available from the server also includes OpLocks which enables latency optimizations over CIFS that can help reduce contention for the same file.
#codingexercise answer
In response to the question asked in the previous post, something like this could work :
var l = new SortedList ();
Items.ForEach ( x => l.Add (x) ),

Sunday, May 24, 2015

We continue our discussion on the Riverbed Optimization System. We noted that its a powerful WAN accelerator. We review some of the technical concepts. The Riverbed Optimization System (RiOS) operates as a transparent TCP Proxy. RiOS implements the logical single end to end TCP connection with three back to back TCP connections. These connections are established in a one-to-one ratio with no encapsulation, traffic mixing, or tunnel configuration. The two outer connections look the same as a simple logical end to end connection to both the client and the server while the inner connection is invisible. This inner connection lets RiOS perform a variety of performance improvements for transmissions across the WAN. Due to this design of TCP connections across WAN, there is no disruption or reconfiguration of clients, servers or routers. For each of the software clients across the branch office computers, RiOS replace the original end to end TCP connections with two or three back to back connections. The server side connections appear the same as its original connections while the RiOS optimized connection accelerates WAN traffic directly over the remote compute device.
By referring to the proxy as transparent, it is implied that the source and the destination IP header information is maintained as the optimized traffic flows through the device. In the event that this may not jive with the various network rules and firewalls, RiOS provides three visibility modes: Correct Addressing, Correct Addressing Plus Port Transparency and Full IP address and Port Transparency.
Correct Addressing refers to a mode in which the RiOS addresses optimized traffic across the WAN to accurately reflect the source, destination, and nature of each packet. The IP addresses are meaningful only to those appliances while that of the unoptimized traffic is relevant only to LAN.
Correct Addressing plus Port Transparency introduces "spoofing" for the traffic sent over the WAN. The WAN traffic is still addressed to and from the appliance's IP addresses - only the port information is spoofed.
With Full IP address and Port Transparency, RiOS offers a complete address spoofing operations. Here the optimized traffic is addressed identically to unoptimized traffic on the LAN.

#codingexercise




Double  GetNthRootProductOddRaisedPPlusQAndEvenRaisedPMinusQ (Double [] A,Double  p, Double q)



{



If ( A== null) return 0;

By


Return A.NthRootProductOddRaisedPPlusQAndEvenRaisedPMinusQ(p, q);



}

In light of the coding exercises, perhaps I want to draw attention to an actual interview question.
This interview question made you think if you wanted a different data structure.
Entries are placed in a singly linked list that may have duplicates but can also be compared. We want the most efficient algorithm to sort them descending.