Microsoft
Principal Scientist Manager and Lab Director
Microsoft
Principal Development Lead
Microsoft Aug 2006 - Aug 2008
Researcher
Microsoft Jun 1994 - May 2001
Software Design Engineer
Education:
University of Wisconsin - Madison 2001 - 2006
Doctorates, Doctor of Philosophy, Computer Science
Luther College 1990 - 1994
Bachelors, Bachelor of Arts, Computer Science
Skills:
Distributed Systems Software Design Software Engineering Software Development Algorithms Machine Learning Computer Science Quality Assurance C++ C# Data Mining Java Information Retrieval C
A method, computer-readable medium, and system for providing a quality measurement based on communications within a communication application. Communication attributes that include information associated with a user's communications are obtained. In embodiments, such communication attributes may pertain to communication duration and communication frequency. Upon obtaining communication attributes, a quality measurement may be determined based on the communication attributes. Such a quality measurement provides an indication of the quality of the user's communications. In embodiments, the quality measurement may be stored, communicated to a user, or implemented within a communication application.
Alan Dale Halverson - Verona WI, US Krishnaram Kenthapadi - Mountain View CA, US Nina Mishra - Newark CA, US Umar Ali Syed - Philadelphia PA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 7/00 G06F 17/30
US Classification:
707706, 707746, 707765, 707770
Abstract:
Techniques and systems are disclosed for returning temporally-aware results from an Internet-based search query. To determine if a query is temporally-based one or more query features are collected and input into a trained classifier, yielding a temporal classification for the query. Further, if a query is classified as temporal, the query results are shifted by determining an alternate set of results for the query, and returning one or more alternate results to one or more users. Based on user interactions with the one or more alternate results, the classifier can be updated, for example, by changing the query to a non-temporal query if the user interactions identify it as such.
Performing Parallel Joins On Distributed Database Data
Nikhil Teletia - Madison WI, US Alan Dale Halverson - Verona WI, US José A. Blakeley - Redmond WA, US Milind Madhukar Joshi - Redmond WA, US Jose Aguilar Saborit - Dana Point CA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 17/30
US Classification:
707714, 707764
Abstract:
The present invention extends to methods, systems, and computer program products for performing parallel joins on distributed database data. Embodiments of the invention include a phased semi-join reduction strategy using replication and shuffle operations to join a first and a second data source. A filter building phase uses replication and pushes down a “Distinct” (e. g. , SQL) operator to produce a list of join keys for the first data source (one side of the join). A shuffle phase for the second data source is modified to join to the key list produced in the first phase as a row filtering mechanism. A join phase then joins the first and second data sources.
Sreenivas Gollapudi - Cupertino CA, US Alan Halverson - Sunnyvale CA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 7/06
US Classification:
707 5, 707E17014
Abstract:
Large numbers of lists of entities may be mined for similar entities to related searches. A representation for each list may be determined to provide for a comparison between lists and to support membership checks. A score for an element in a list may be computed that represents the validity of an item in the corpus of lists. Thus, a spurious element would receive a very low score, where a valid element would receive a higher score. A list weight is then computed using the constituent element weights, and the element and list weight are used to compute the nearest neighbors of a given query element.
Panayiotis Tsaparas - Palo Alto CA, US Krishnaram N. G. Kenthapadi - Mountain View CA, US Alan Halverson - Sunnyvale CA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06Q 99/00
US Classification:
705 1
Abstract:
A social network may be used to determine a rating of a user with no prior history. The ratings for unrated nodes may be inferred from the existing ratings of users associated with the unrated node in either or both the underlying social network or other social networks. Additionally in some implementations, the effect of the rating of a rated node to an unrated node diminishes as the strength of their relationships decreases. In some cases, a social network may be modeled as an electrical network, and ratings may be modeled as voltages on the nodes of the social network, relationships in the social network may be modeled as connections in the electrical network, and in some cases the strength of relationships may be modeled as conductance of the connections. Ratings for nodes may be determined using Kirchhoff's Law and in some cases by solving a set of linear equations or by propagating positive and negative ratings using a random walk with absorbing states.
Nina Mishra - Newark CA, US Rakesh Agrawal - San Jose CA, US Sreenivas Gollapudi - Cupertino CA, US Alan Halverson - Sunnyvale CA, US Krishnaram N. G. Kenthapadi - Mountain View CA, US Rina Panigrahy - Mountain View CA, US John C. Shafer - Los Altos CA, US Panayiotis Tsaparas - Palo Alto CA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 7/00 G06F 17/30
US Classification:
707102, 707E17005
Abstract:
Data from a click log may be used to generate training data for a search engine. The pages clicked as well as the pages skipped by a user may be used to assess the relevance of a page to a query. Labels for training data may be generated based on data from the click log. The labels may pertain to the relevance of a page to a query.
Data Visibility For Nested Transactions In Distributed Systems
- Redmond WA, US Alan Dale HALVERSON - Verona WI, US Sandeep LINGAM - Redmond WA, US Srikumar RANGARAJAN - Sammamish WA, US
International Classification:
G06F 16/27 G06F 9/46 G06F 16/901
Abstract:
Methods for data visibility in nested transactions in distributed systems are performed by systems and devices. Distributed executions of queries are performed in processing systems according to isolation level protocols with unique nested transaction identifiers for data management and versioning across one or more data sets, one or more compute pools, etc., within a logical server via a single transaction manager that oversees the isolation semantics and data versioning. A distributed query processor of the systems and devices performs nested transaction versioning for distributed tasks by generating nested transaction identifiers, encoded in data rows, which are used to enforce correct data visibility. Data visibility is restricted to previously committed data from distributed transactions and tasks, and is blocked for distributed transactions and tasks that run concurrently. Local commits for completed transactions and tasks are used to minimize transaction manager interactions, and instant rollbacks are enabled for aborted transactions and tasks.
Methods For Automatic Selection Of Degrees Of Parallelism For Efficient Execution Of Queries In A Database System
- Redmond WA, US Rathijit Sen - Madison WI, US Harshada Chavan - Plymouth MN, US Alan Halverson - Verona WI, US
International Classification:
G06F 17/30 G06F 9/52
Abstract:
Methods for automatic selection of degrees of parallelism for efficient execution of queries in a database system are performed by systems and devices. An incoming query associated with a query system is received and features of the incoming query are determined. A system state of the query system and a set of executing queries are also determined, along with a query state of each executing query in the set. At runtime of the incoming query, allocation of a degree of parallelism for executing the query is determined by calculating different possible execution times for the incoming query at least partially concurrently with the set of executing queries. Execution times are calculated for different parallel thread options and based on query features, system state, or query states of executing queries. The execution of the incoming query is initialized with the parallel thread option corresponding to a specific execution completion time.
Centennial, ColoradoComputer Programmer/Applications Software at Vario... Computer Applications, Author, Pianist, Lightworker, Networking
Wrote 2 books: Magnificent Transition and Love Power - The Clean Energy Fuel Of The Future