« Cambridge's Maven Raises $12M More For Video Expansion | Main | GM Needed For Intnl Travel Site Vayama »
August 11, 2006
Want Interview W/Stanford PhD Start-up? Crack These Puzzlers

Aster Data Systems is a stealth-mode Palo Alto start-up looking for engineers for a scalable analytics platform that will run on large distributed systems. To get an interview, you need to know how to answer these questions, good luck.
Question 1
Write a header file "keywords.h" such that the program specified by the source files below has the intended behavior. Be sure not to violate the One Definition Rule. Elegant solutions preferred.
--------------------------------------------------------------------------------
// File call-foo.cpp
#include "keywords.h"
void call( KEYWORD(foo) )
{
std::cout << "called with foo keyword" << std::endl;
}
--------------------------------------------------------------------------------
// File call-bar.cpp
#include "keywords.h"
void call( KEYWORD(bar) )
{
std::cout << "called with bar keyword" << std::endl;
}
--------------------------------------------------------------------------------
// File main.cpp
#include "keywords.h"
void call( KEYWORD(foo) );
void call( KEYWORD(bar) );
int main()
{
call( foo ); // directly invokes the function in call-foo.cpp
call( bar ); // directly invokes the function in call-bar.cpp
}
--------------------------------------------------------------------------------
Question 2
When considering Redo, Undo, and Undo-Redo recovery schemes, which of the following are true and why:
[a] Undo requires pinning of disk blocks in memory, redo and undo-redo do not.
[b] Redo requires more memory buffers per transaction than undo-redo logging.
What is the minimum, average and maximum number of times a key can appear in a B+ tree?
Question 3
Assume you want to design a distributed hashtable that can store pairs and supports key lookup: given a it returns the corresponding with (of course) blazingly high performance.
Asserting that complexity is the root of all evils, you decide to use a static function to map keys to IP addresses. Thus, given a , clients of the system could issue the appropriate request to the mapped IP address in order to store a pair or retrieve a based on the supplied .
State what are some fundamental limitations/problems with this design. In which situations you expect it to perform well and in which to perform bad?
Posted by BT at August 11, 2006 09:12 PM
Trackback Pings
TrackBack URL for this entry:
http://www.thealarmclock.com/mt/mt-tb.cgi/1813