MICHAEL ALEXANDER MALCOLM
Pilots at Orange Ave, Los Altos, CA

License number
California A1179626
Issued Date
Sep 2015
Expiration Date
Sep 2017
Category
Airmen
Type
Authorized Aircraft Instructor
Address
Address
490 Orange Ave, Los Altos, CA 94022

Professional information

Michael Malcolm Photo 1

Multiple Cache Communication And Uncacheable Objects

US Patent:
6715037, Mar 30, 2004
Filed:
Jul 26, 2002
Appl. No.:
10/206388
Inventors:
Michael A. Malcolm - Los Altos CA
Assignee:
Blue Coat Systems, Inc. - Sunnyvale CA
International Classification:
G06F 1200
US Classification:
711119, 711124, 707 10, 709218, 709219, 709232, 709252
Abstract:
A method and system for operating multiple communicating caches. Between caches, unnecessary transmission of repeated information is reduced. Pairs of communicating caches compress transmitted information, including noncacheable objects. A first cache refrains from unnecessarily transmitting the same information to a second cache when each already has a copy. This includes both maintaining a record at a first cache of information likely to be stored at a second cache, and transmitting a relatively short identifier for that information in place of the information itself. Caches are disposed in a graph structure, including a set of root caches and a set of leaf caches. Both root and leaf caches maintain noncacheable objects beyond their initial use, along with a digest of the non-cacheable objects. When a server devices returns identical information to a root cache, root caches can transmit only a digest to leaf caches, avoiding re-transmitting the entire noncacheable object.


Michael Malcolm Photo 2

Multiple Cache Communication

US Patent:
6427187, Jul 30, 2002
Filed:
Jul 31, 1998
Appl. No.:
09/127249
Inventors:
Michael A. Malcolm - Los Altos CA
Assignee:
Cache Flow, Inc. - Sunnyvale CA
International Classification:
G06F 1200
US Classification:
711119, 711124, 707 10, 709218, 709219, 709232, 709252
Abstract:
The invention provides a method and system for operating multiple communicating caches. Between caches, unnecessary transmission of repeated information is substantially reduced. Each cache maintains information to improve the collective operation of the system of multiple communicating caches. This can include information about the likely contents of each other cache, or about the behavior of client devices or server devices coupled to other caches in the system. Pairs of communicating caches substantially compress transmitted information. This includes both reliable compression, in which the receiving cache can reliably identify the compressed information in response to the message, and unreliable compression, in which the receiving cache will sometimes be unable to identify the compressed information. A first cache refrains from unnecessarily transmitting the same information to a second cache when each already has a copy. This includes both maintaining a record at a first cache of information likely to be stored at a second cache, and transmitting a relatively short identifier for that information in place of the information itself.


Michael Malcolm Photo 3

Providing Parity In A Raid Sub-System Using Non-Volatile Memory

US Patent:
6480969, Nov 12, 2002
Filed:
Jun 30, 1999
Appl. No.:
09/345246
Inventors:
David Hitz - Sunnyvale CA
Michael Malcolm - Los Altos CA
James Lau - Cupertino CA
Byron Rakitzis - Mountain View CA
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
H02H 305
US Classification:
714 6, 714711
Abstract:
The present invention is a method for providing error correction for an array of disks using non-volatile random access memory (NV-RAM). Non-volatile RAM is used to increase the speed of RAID recovery from a disk error(s). This is accomplished by keeping a list of all disk blocks for which the parity is possibly inconsistent. Such a list of disk blocks is much smaller than the total number of parity blocks in the RAID subsystem. The total number of parity blocks in the RAID subsystem is typically in the range of hundreds of thousands of parity blocks. Knowledge of the number of parity blocks that are possibly inconsistent makes it possible to fix only those few blocks, identified in the list, in a significantly smaller amount of time than is possible in the prior art. The technique for safely writing to a RAID array with a broken disk is complicated. In this technique, data that can become corrupted is copied into NV-RAM before the potentially corrupting operation is performed.


Michael Malcolm Photo 4

Method For Allocating Files In A File System Integrated With A Raid Disk Sub-System

US Patent:
6138126, Oct 24, 2000
Filed:
Jul 21, 1999
Appl. No.:
9/359168
Inventors:
David Hitz - Sunnyvale CA
Michael Malcolm - Los Altos CA
James Lau - Cupertino CA
Byron Rakitzis - Mountain View CA
Assignee:
Network Appliance, Inc.
International Classification:
G06F 1730
US Classification:
707202
Abstract:
A method is disclosed for integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The file system examines this information and uses it to optimize the location of blocks as they are written to the RAID system. Thus, the system uses explicit knowledge of the underlying RAID disk layout to schedule disk allocation. The method uses separate current-write location (CWL) pointers for each disk in the disk array where the pointers simply advance through the disks as writes occur. The algorithm used has two primary goals. The first goal is to keep the CWL pointers as close together as possible, thereby improving RAID efficiency by writing to multiple blocks in the stripe simultaneously. The second goal is to allocate adjacent blocks in a file on the same disk, thereby improving read back performance. The method satisfies the first goal by always writing on the disk with the lowest CWL pointer.


Michael Malcolm Photo 5

Network Object Cache Engine

US Patent:
2003004, Feb 27, 2003
Filed:
Jul 31, 2002
Appl. No.:
10/209957
Inventors:
Michael Malcolm - Los Altos CA, US
Robert Zarnke - Waterloo, CA
Assignee:
CacheFlow, Inc. - Sunnyvale CA
International Classification:
G06F012/16
US Classification:
714/004000, 709/203000, 711/133000
Abstract:
The invention provides a method and system for caching information objects transmitted using a computer network. A cache engine determines directly when and where to store those objects in a memory (such as RAM) and mass storage (such as one or more disk drives), so as to optimally write those objects to mass storage and later read them from mass storage, without having to maintain them persistently. The cache engine actively allocates those objects to memory or to disk, determines where on disk to store those objects, retrieves those objects in response to their network identifiers (such as their URLs), and determines which objects to remove from the cache so as to maintain sufficient operating space. The cache engine collects information to be written to disk in write episodes, so as to maximize efficiency when writing information to disk and so as to maximize efficiency when later reading that information from disk. The cache engine performs write episodes so as to atomically commit changes to disk during each write episode, so the cache engine does not fail in response to loss of power or storage, or other intermediate failure of portions of the cache. The cache engine also stores key system objects on each one of a plurality of disks, so as to maintain the cache holographic in the sense that loss of any subset of the disks merely decreases the amount of available cache. The cache engine also collects information to be deleted from disk in delete episodes, so as to maximize efficiency when deleting information from disk and so as to maximize efficiency when later writing to those areas having former deleted information. The cache engine responds to the addition or deletion of disks as the expansion or contraction of the amount of available cache.


Michael Malcolm Photo 6

Allocating Files In A File System Integrated With A Raid Disk Sub-System

US Patent:
7818498, Oct 19, 2010
Filed:
Mar 13, 2007
Appl. No.:
11/724074
Inventors:
David Hitz - Sunnyvale CA, US
Michael Malcolm - Los Altos CA, US
James Lau - Cupertino CA, US
Byron Rakitzis - Mountain View CA, US
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
G06F 12/00
US Classification:
711114, 707640, 707661
Abstract:
Integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The present invention uses separate current-write location (CWL) pointers for each disk in the disk array where the pointers simply advance through the disks as writes occur. The present invention writes on the disk with the lowest CWL pointer. A new disk is chosen only when the algorithm starts allocating space for a new file, or when it has allocated N blocks on the same disk for a single file. A sufficient number of blocks are defined as all the buffers in a chunk of N sequential buffers in a file. The result is that CWL pointers are never more than N blocks apart on different disks, and large files have N consecutive blocks on the same disk.


Michael Malcolm Photo 7

File System Image Transfer

US Patent:
7174352, Feb 6, 2007
Filed:
May 10, 2001
Appl. No.:
09/854187
Inventors:
Steven R. Kleiman - Los Altos CA, US
David Hitz - Los Altos CA, US
Guy Harris - Mountain View CA, US
Sean W. O'Malley - Tucson AZ, US
Michael Malcolm - Los Altos CA, US
James Lau - Los Altos Hills CA, US
Byron Rakitzis - Burlingame CA, US
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
G06F 17/00
US Classification:
707203, 707204
Abstract:
The invention provides a method and system for duplicating all or part of a file system while maintaining consistent copies of the file system. The file server maintains a set of snapshots, each indicating a set of storage blocks making up a consistent copy of the file system as it was at a known time. Each snapshot can be used for a purpose other than maintaining the coherency of the file system, such as duplicating or transferring a backup copy of the file system to a destination storage medium. In a preferred embodiment, the snapshots can be manipulated to identify sets of storage blocks in the file system for incremental backup or copying, or to provide a file system backup that is both complete and relatively inexpensive. Also in a preferred embodiment, shadow snapshots can be maintained, with a shadow snapshot including a set of member storage blocks that formed a consistent file system other than an active file system, with a set of selected member storage blocks removed from the consistent file system.


Michael Malcolm Photo 8

Providing Parity In A Raid Sub-System Using Non-Volatile Memory

US Patent:
2003003, Feb 20, 2003
Filed:
Aug 28, 2002
Appl. No.:
10/233311
Inventors:
David Hitz - Los Altos CA, US
Michael Malcolm - Los Altos CA, US
James Lau - Los Altos Hills CA, US
Byron Rakitzis - Burlingame CA, US
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
G06F011/00
US Classification:
714/006000
Abstract:
The present invention is a method for providing error correction for an array of disks using non-volatile random access memory (NV-RAM). Non-volatile RAM is used to increase the speed of RAID recovery from a disk error(s). This is accomplished by keeping a list of all disk blocks for which the parity is possibly inconsistent. Such a list of disk blocks is much smaller than the total number of parity blocks in the RAID subsystem. The total number of parity blocks in the RAID subsystem is typically in the range of hundreds of thousands of parity blocks. Knowledge of the number of parity blocks that are possibly inconsistent makes it possible to fix only those few blocks, identified in the list, in a significantly smaller amount of time than is possible in the prior art. The technique for safely writing to a RAID array with a broken disk is complicated. In this technique, data that can become corrupted is copied into NV-RAM before the potentially corrupting operation is performed.


Michael Malcolm Photo 9

Method For Allocating Files In A File System Integrated With A Raid Disk Sub-System

US Patent:
6038570, Mar 14, 2000
Filed:
May 31, 1995
Appl. No.:
8/464591
Inventors:
David Hitz - Sunnyvale CA
Michael Malcolm - Los Altos CA
James Lau - Cupertino CA
Byron Rakitzis - Mountain View CA
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
G06F 1730
US Classification:
707204
Abstract:
The present invention is a method for integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The file system examines this information and uses it to optimize the location of blocks as they are written to the RAID system. Thus, the system uses explicit knowledge of the underlying RAID disk layout to schedule disk allocation. The present invention uses separate current-write location (CWL) pointers for each disk in the disk array where the pointers simply advance through the disks as writes occur. The algorithm used has two primary goals. The first goal is to keep the CWL pointers as close together as possible, thereby improving RAID efficiency by writing to multiple blocks in the stripe simultaneously. The second goal is to allocate adjacent blocks in a file on the same disk, thereby improving read back performance. The present invention satisfies the first goal by always writing on the disk with the lowest CWL pointer.


Michael Malcolm Photo 10

Write Anywhere File-System Layout

US Patent:
6289356, Sep 11, 2001
Filed:
Sep 14, 1998
Appl. No.:
9/153094
Inventors:
David Hitz - Sunnyvale CA
Michael Malcolm - Los Altos CA
James Lau - Cupertino CA
Byron Rakitzis - Mountain View CA
Assignee:
Network Appliance, Inc. - Sunnyvale CA
International Classification:
G06F 1200
US Classification:
707201
Abstract:
The present invention provides a method for keeping a file system in a consistent state and for creating read-only copies of a file system. Changes to the file system are tightly controlled. The file system progresses from one self-consistent state to another self-consistent state. The set of self-consistent blocks on disk that is rooted by the root inode is referred to as a consistency point. To implement consistency points, new data is written to unallocated blocks on disk. A new consistency point occurs when the fsinfo block is updated by writing a new root inode for the inode file into it. Thus, as long as the root inode is not updated, the state of the file system represented on disk does not change. The present invention also creates snapshots that are read-only copies of the file system. A snapshot uses no disk space when it is initially created.