In-Memory database supporting transactions The Next CEO of Stack OverflowSimple in-memory databaseTest connection to database C#Am I coding Java in C#?Creating orders for gift transactionsReducing memory footprint of ReportViewerSupporting Enum in EF 5 with .Net 4.0Prefer simplicity over testability?Messenger supporting notifications and requestsConverting from binary to unarySieve32Fast - A very fast, memory efficient, multi-threaded Sieve of EratosthenesCustom observable types and their supporting classes
Does destroying a Lich's phylactery destroy the soul within it?
Traveling with my 5 year old daughter (as the father) without the mother from Germany to Mexico
Can someone explain this formula for calculating Manhattan distance?
What connection does MS Office have to Netscape Navigator?
Strange use of "whether ... than ..." in official text
Is it convenient to ask the journal's editor for two additional days to complete a review?
What would be the main consequences for a country leaving the WTO?
Computationally populating tables with probability data
Easy to read palindrome checker
Calculate the Mean mean of two numbers
When "be it" is at the beginning of a sentence, what kind of structure do you call it?
How to find image of a complex function with given constraints?
Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?
How many extra stops do monopods offer for tele photographs?
Why is information "lost" when it got into a black hole?
IC has pull-down resistors on SMBus lines?
Can this note be analyzed as a non-chord tone?
Can you teleport closer to a creature you are Frightened of?
What difference does it make using sed with/without whitespaces?
free fall ellipse or parabola?
Redefining symbol midway through a document
Lucky Feat: How can "more than one creature spend a luck point to influence the outcome of a roll"?
Which one is the true statement?
What happened in Rome, when the western empire "fell"?
In-Memory database supporting transactions
The Next CEO of Stack OverflowSimple in-memory databaseTest connection to database C#Am I coding Java in C#?Creating orders for gift transactionsReducing memory footprint of ReportViewerSupporting Enum in EF 5 with .Net 4.0Prefer simplicity over testability?Messenger supporting notifications and requestsConverting from binary to unarySieve32Fast - A very fast, memory efficient, multi-threaded Sieve of EratosthenesCustom observable types and their supporting classes
$begingroup$
I referred to this question here but it does not address the question that I have with regards to my question. I have a C# implementation of an in-memory database that I came up with during a recent interview. I was told that my code was okay in terms of getting the job done but could be more efficient dealing with transactions. I am not sure how I could improve this. I would greatly appreciate any suggestions.
The database should support GET, SET, DELETE, COUNT as basic operations. END signifies that the user is not going to issue any more commands. Input is read from stdin.
eg.
SET a 10
GET a //returns 10
COUNT a //returns 1
DELETE a
GET a //returns 0.
A transaction is the equivalent of the DB transactions support the above operations in an atomic manner. It is initiated by a BEGIN command, rollback means rolling back the active transaction, since rolling transactions are supported, commit writes all open transactions to memory. A rollback issued with no transactions open or a commit issued with no transactions open will result in a "NO TRANSACTIONS" being printed.
BEGIN
SET a 10
GET a
BEGIN
SET a 20
GET a
ROLLBACK
GET a
ROLLBACK
GET a
END
Here are my classes:
public class Operation
private readonly Dictionary<string, int> valueStore;
private readonly Dictionary<int, int> valueCount;
public Operation()
valueStore = new Dictionary<string, int>();
valueCount = new Dictionary<int, int>();
//Used for copying over old data for supporting transactions
public Operation(Operation operation)
valueStore = new Dictionary<string, int>(operation.valueStore);
valueCount = new Dictionary<int, int>(operation.valueCount);
//set a variable to a value in the datastore and update counts
internal void Set(string variable, int value)
if (!valueStore.ContainsKey(variable))
valueStore.Add(variable, value);
else
valueCount[valueStore[variable]] -= 1;
valueStore[variable] = value;
if (!valueCount.ContainsKey(value))
valueCount.Add(value, 1);
else
valueCount[value] += 1;
//Get value from datastore, return null if not present
internal void Get(string variable)
if (valueStore.ContainsKey(variable))
Console.WriteLine(valueStore[variable]);
else
Console.WriteLine("NULL");
//Get count from datastore, return 0 if not present
internal void Count(int value)
if (valueCount.ContainsKey(value))
Console.WriteLine(valueCount[value]);
else
Console.WriteLine("0");
//Delete value from data store and update count.
internal void Delete(string variable)
if (valueStore.ContainsKey(variable))
int value = valueStore[variable];
valueCount[value] -= 1;
valueStore.Remove(variable);
else
Console.WriteLine("Variable does not exist");
/*
* We need to override equals to compare two operations
* because when we have two begins, 1 commit followed by
* a rollback we should technically have no transactions
* to rollback, because the last committed and current
* transactions are both same
*/
public bool Equals(Operation other)
if (valueStore.Keys.Count == other.valueStore.Keys.Count)
foreach (string variable in valueStore.Keys)
if (other.valueStore.ContainsKey(variable)
&& other.valueStore[variable] == valueStore[variable])
continue;
else
return false;
else
return false;
return true;
public override int GetHashCode()
unchecked
int hash = 17;
hash = hash * 31 + valueStore.GetHashCode();
hash = hash * 31 + valueCount.GetHashCode();
return hash;
public class Transaction
private readonly Stack<Operation> transactions;
public Transaction()
transactions = new Stack<Operation>();
internal Operation Begin(Operation operation)
transactions.Push(operation);
return new Operation(operation);
internal Operation Commit(Operation operation)
transactions.Clear();
transactions.Push(operation);
return new Operation(operation);
internal Operation Rollback(Operation operation)
if (transactions.Count != 0)
Operation lastCommitted = transactions.Pop();
if (lastCommitted.Equals(operation))
Console.WriteLine("NO TRANSACTION");
transactions.Push(lastCommitted);
return lastCommitted;
else
Console.WriteLine("NO TRANSACTION");
return operation;
public class Database
private Operation commands;
private Transaction transaction;
public Database()
commands = new Operation();
transaction = new Transaction();
public void HandleInput()
Console.WriteLine("Hello user, enter some commands");
string line = "";
while ((line = Console.ReadLine()) != null)
if (line == "END")
break;
else
HandleUserInput(line);
private void HandleUserInput(string inputLine)
/*
* Need to use exceptions for parsing and use try catch block for FormatException
* Assuming that input commands will be valid(eg. Get will have 2 params,
* Count will have 2 params etc.)
*/
string[] parameters = inputLine.Split(' ');
string op = parameters[0];
string variable;
int value;
switch (op.ToUpper())
case "GET":
variable = parameters[1];
commands.Get(variable);
break;
case "SET":
variable = parameters[1];
value = int.Parse(parameters[2]);
commands.Set(variable, value);
break;
case "DELETE":
variable = parameters[1];
commands.Delete(variable);
break;
case "COUNT":
value = int.Parse(parameters[1]);
commands.Count(value);
break;
case "BEGIN":
commands = transaction.Begin(commands);
break;
case "ROLLBACK":
commands = transaction.Rollback(commands);
break;
case "COMMIT":
commands = transaction.Commit(commands);
break;
default:
Console.WriteLine("Invalid operation: " + op + "nTry again.");
break;
c# .net interview-questions
New contributor
$endgroup$
add a comment |
$begingroup$
I referred to this question here but it does not address the question that I have with regards to my question. I have a C# implementation of an in-memory database that I came up with during a recent interview. I was told that my code was okay in terms of getting the job done but could be more efficient dealing with transactions. I am not sure how I could improve this. I would greatly appreciate any suggestions.
The database should support GET, SET, DELETE, COUNT as basic operations. END signifies that the user is not going to issue any more commands. Input is read from stdin.
eg.
SET a 10
GET a //returns 10
COUNT a //returns 1
DELETE a
GET a //returns 0.
A transaction is the equivalent of the DB transactions support the above operations in an atomic manner. It is initiated by a BEGIN command, rollback means rolling back the active transaction, since rolling transactions are supported, commit writes all open transactions to memory. A rollback issued with no transactions open or a commit issued with no transactions open will result in a "NO TRANSACTIONS" being printed.
BEGIN
SET a 10
GET a
BEGIN
SET a 20
GET a
ROLLBACK
GET a
ROLLBACK
GET a
END
Here are my classes:
public class Operation
private readonly Dictionary<string, int> valueStore;
private readonly Dictionary<int, int> valueCount;
public Operation()
valueStore = new Dictionary<string, int>();
valueCount = new Dictionary<int, int>();
//Used for copying over old data for supporting transactions
public Operation(Operation operation)
valueStore = new Dictionary<string, int>(operation.valueStore);
valueCount = new Dictionary<int, int>(operation.valueCount);
//set a variable to a value in the datastore and update counts
internal void Set(string variable, int value)
if (!valueStore.ContainsKey(variable))
valueStore.Add(variable, value);
else
valueCount[valueStore[variable]] -= 1;
valueStore[variable] = value;
if (!valueCount.ContainsKey(value))
valueCount.Add(value, 1);
else
valueCount[value] += 1;
//Get value from datastore, return null if not present
internal void Get(string variable)
if (valueStore.ContainsKey(variable))
Console.WriteLine(valueStore[variable]);
else
Console.WriteLine("NULL");
//Get count from datastore, return 0 if not present
internal void Count(int value)
if (valueCount.ContainsKey(value))
Console.WriteLine(valueCount[value]);
else
Console.WriteLine("0");
//Delete value from data store and update count.
internal void Delete(string variable)
if (valueStore.ContainsKey(variable))
int value = valueStore[variable];
valueCount[value] -= 1;
valueStore.Remove(variable);
else
Console.WriteLine("Variable does not exist");
/*
* We need to override equals to compare two operations
* because when we have two begins, 1 commit followed by
* a rollback we should technically have no transactions
* to rollback, because the last committed and current
* transactions are both same
*/
public bool Equals(Operation other)
if (valueStore.Keys.Count == other.valueStore.Keys.Count)
foreach (string variable in valueStore.Keys)
if (other.valueStore.ContainsKey(variable)
&& other.valueStore[variable] == valueStore[variable])
continue;
else
return false;
else
return false;
return true;
public override int GetHashCode()
unchecked
int hash = 17;
hash = hash * 31 + valueStore.GetHashCode();
hash = hash * 31 + valueCount.GetHashCode();
return hash;
public class Transaction
private readonly Stack<Operation> transactions;
public Transaction()
transactions = new Stack<Operation>();
internal Operation Begin(Operation operation)
transactions.Push(operation);
return new Operation(operation);
internal Operation Commit(Operation operation)
transactions.Clear();
transactions.Push(operation);
return new Operation(operation);
internal Operation Rollback(Operation operation)
if (transactions.Count != 0)
Operation lastCommitted = transactions.Pop();
if (lastCommitted.Equals(operation))
Console.WriteLine("NO TRANSACTION");
transactions.Push(lastCommitted);
return lastCommitted;
else
Console.WriteLine("NO TRANSACTION");
return operation;
public class Database
private Operation commands;
private Transaction transaction;
public Database()
commands = new Operation();
transaction = new Transaction();
public void HandleInput()
Console.WriteLine("Hello user, enter some commands");
string line = "";
while ((line = Console.ReadLine()) != null)
if (line == "END")
break;
else
HandleUserInput(line);
private void HandleUserInput(string inputLine)
/*
* Need to use exceptions for parsing and use try catch block for FormatException
* Assuming that input commands will be valid(eg. Get will have 2 params,
* Count will have 2 params etc.)
*/
string[] parameters = inputLine.Split(' ');
string op = parameters[0];
string variable;
int value;
switch (op.ToUpper())
case "GET":
variable = parameters[1];
commands.Get(variable);
break;
case "SET":
variable = parameters[1];
value = int.Parse(parameters[2]);
commands.Set(variable, value);
break;
case "DELETE":
variable = parameters[1];
commands.Delete(variable);
break;
case "COUNT":
value = int.Parse(parameters[1]);
commands.Count(value);
break;
case "BEGIN":
commands = transaction.Begin(commands);
break;
case "ROLLBACK":
commands = transaction.Rollback(commands);
break;
case "COMMIT":
commands = transaction.Commit(commands);
break;
default:
Console.WriteLine("Invalid operation: " + op + "nTry again.");
break;
c# .net interview-questions
New contributor
$endgroup$
add a comment |
$begingroup$
I referred to this question here but it does not address the question that I have with regards to my question. I have a C# implementation of an in-memory database that I came up with during a recent interview. I was told that my code was okay in terms of getting the job done but could be more efficient dealing with transactions. I am not sure how I could improve this. I would greatly appreciate any suggestions.
The database should support GET, SET, DELETE, COUNT as basic operations. END signifies that the user is not going to issue any more commands. Input is read from stdin.
eg.
SET a 10
GET a //returns 10
COUNT a //returns 1
DELETE a
GET a //returns 0.
A transaction is the equivalent of the DB transactions support the above operations in an atomic manner. It is initiated by a BEGIN command, rollback means rolling back the active transaction, since rolling transactions are supported, commit writes all open transactions to memory. A rollback issued with no transactions open or a commit issued with no transactions open will result in a "NO TRANSACTIONS" being printed.
BEGIN
SET a 10
GET a
BEGIN
SET a 20
GET a
ROLLBACK
GET a
ROLLBACK
GET a
END
Here are my classes:
public class Operation
private readonly Dictionary<string, int> valueStore;
private readonly Dictionary<int, int> valueCount;
public Operation()
valueStore = new Dictionary<string, int>();
valueCount = new Dictionary<int, int>();
//Used for copying over old data for supporting transactions
public Operation(Operation operation)
valueStore = new Dictionary<string, int>(operation.valueStore);
valueCount = new Dictionary<int, int>(operation.valueCount);
//set a variable to a value in the datastore and update counts
internal void Set(string variable, int value)
if (!valueStore.ContainsKey(variable))
valueStore.Add(variable, value);
else
valueCount[valueStore[variable]] -= 1;
valueStore[variable] = value;
if (!valueCount.ContainsKey(value))
valueCount.Add(value, 1);
else
valueCount[value] += 1;
//Get value from datastore, return null if not present
internal void Get(string variable)
if (valueStore.ContainsKey(variable))
Console.WriteLine(valueStore[variable]);
else
Console.WriteLine("NULL");
//Get count from datastore, return 0 if not present
internal void Count(int value)
if (valueCount.ContainsKey(value))
Console.WriteLine(valueCount[value]);
else
Console.WriteLine("0");
//Delete value from data store and update count.
internal void Delete(string variable)
if (valueStore.ContainsKey(variable))
int value = valueStore[variable];
valueCount[value] -= 1;
valueStore.Remove(variable);
else
Console.WriteLine("Variable does not exist");
/*
* We need to override equals to compare two operations
* because when we have two begins, 1 commit followed by
* a rollback we should technically have no transactions
* to rollback, because the last committed and current
* transactions are both same
*/
public bool Equals(Operation other)
if (valueStore.Keys.Count == other.valueStore.Keys.Count)
foreach (string variable in valueStore.Keys)
if (other.valueStore.ContainsKey(variable)
&& other.valueStore[variable] == valueStore[variable])
continue;
else
return false;
else
return false;
return true;
public override int GetHashCode()
unchecked
int hash = 17;
hash = hash * 31 + valueStore.GetHashCode();
hash = hash * 31 + valueCount.GetHashCode();
return hash;
public class Transaction
private readonly Stack<Operation> transactions;
public Transaction()
transactions = new Stack<Operation>();
internal Operation Begin(Operation operation)
transactions.Push(operation);
return new Operation(operation);
internal Operation Commit(Operation operation)
transactions.Clear();
transactions.Push(operation);
return new Operation(operation);
internal Operation Rollback(Operation operation)
if (transactions.Count != 0)
Operation lastCommitted = transactions.Pop();
if (lastCommitted.Equals(operation))
Console.WriteLine("NO TRANSACTION");
transactions.Push(lastCommitted);
return lastCommitted;
else
Console.WriteLine("NO TRANSACTION");
return operation;
public class Database
private Operation commands;
private Transaction transaction;
public Database()
commands = new Operation();
transaction = new Transaction();
public void HandleInput()
Console.WriteLine("Hello user, enter some commands");
string line = "";
while ((line = Console.ReadLine()) != null)
if (line == "END")
break;
else
HandleUserInput(line);
private void HandleUserInput(string inputLine)
/*
* Need to use exceptions for parsing and use try catch block for FormatException
* Assuming that input commands will be valid(eg. Get will have 2 params,
* Count will have 2 params etc.)
*/
string[] parameters = inputLine.Split(' ');
string op = parameters[0];
string variable;
int value;
switch (op.ToUpper())
case "GET":
variable = parameters[1];
commands.Get(variable);
break;
case "SET":
variable = parameters[1];
value = int.Parse(parameters[2]);
commands.Set(variable, value);
break;
case "DELETE":
variable = parameters[1];
commands.Delete(variable);
break;
case "COUNT":
value = int.Parse(parameters[1]);
commands.Count(value);
break;
case "BEGIN":
commands = transaction.Begin(commands);
break;
case "ROLLBACK":
commands = transaction.Rollback(commands);
break;
case "COMMIT":
commands = transaction.Commit(commands);
break;
default:
Console.WriteLine("Invalid operation: " + op + "nTry again.");
break;
c# .net interview-questions
New contributor
$endgroup$
I referred to this question here but it does not address the question that I have with regards to my question. I have a C# implementation of an in-memory database that I came up with during a recent interview. I was told that my code was okay in terms of getting the job done but could be more efficient dealing with transactions. I am not sure how I could improve this. I would greatly appreciate any suggestions.
The database should support GET, SET, DELETE, COUNT as basic operations. END signifies that the user is not going to issue any more commands. Input is read from stdin.
eg.
SET a 10
GET a //returns 10
COUNT a //returns 1
DELETE a
GET a //returns 0.
A transaction is the equivalent of the DB transactions support the above operations in an atomic manner. It is initiated by a BEGIN command, rollback means rolling back the active transaction, since rolling transactions are supported, commit writes all open transactions to memory. A rollback issued with no transactions open or a commit issued with no transactions open will result in a "NO TRANSACTIONS" being printed.
BEGIN
SET a 10
GET a
BEGIN
SET a 20
GET a
ROLLBACK
GET a
ROLLBACK
GET a
END
Here are my classes:
public class Operation
private readonly Dictionary<string, int> valueStore;
private readonly Dictionary<int, int> valueCount;
public Operation()
valueStore = new Dictionary<string, int>();
valueCount = new Dictionary<int, int>();
//Used for copying over old data for supporting transactions
public Operation(Operation operation)
valueStore = new Dictionary<string, int>(operation.valueStore);
valueCount = new Dictionary<int, int>(operation.valueCount);
//set a variable to a value in the datastore and update counts
internal void Set(string variable, int value)
if (!valueStore.ContainsKey(variable))
valueStore.Add(variable, value);
else
valueCount[valueStore[variable]] -= 1;
valueStore[variable] = value;
if (!valueCount.ContainsKey(value))
valueCount.Add(value, 1);
else
valueCount[value] += 1;
//Get value from datastore, return null if not present
internal void Get(string variable)
if (valueStore.ContainsKey(variable))
Console.WriteLine(valueStore[variable]);
else
Console.WriteLine("NULL");
//Get count from datastore, return 0 if not present
internal void Count(int value)
if (valueCount.ContainsKey(value))
Console.WriteLine(valueCount[value]);
else
Console.WriteLine("0");
//Delete value from data store and update count.
internal void Delete(string variable)
if (valueStore.ContainsKey(variable))
int value = valueStore[variable];
valueCount[value] -= 1;
valueStore.Remove(variable);
else
Console.WriteLine("Variable does not exist");
/*
* We need to override equals to compare two operations
* because when we have two begins, 1 commit followed by
* a rollback we should technically have no transactions
* to rollback, because the last committed and current
* transactions are both same
*/
public bool Equals(Operation other)
if (valueStore.Keys.Count == other.valueStore.Keys.Count)
foreach (string variable in valueStore.Keys)
if (other.valueStore.ContainsKey(variable)
&& other.valueStore[variable] == valueStore[variable])
continue;
else
return false;
else
return false;
return true;
public override int GetHashCode()
unchecked
int hash = 17;
hash = hash * 31 + valueStore.GetHashCode();
hash = hash * 31 + valueCount.GetHashCode();
return hash;
public class Transaction
private readonly Stack<Operation> transactions;
public Transaction()
transactions = new Stack<Operation>();
internal Operation Begin(Operation operation)
transactions.Push(operation);
return new Operation(operation);
internal Operation Commit(Operation operation)
transactions.Clear();
transactions.Push(operation);
return new Operation(operation);
internal Operation Rollback(Operation operation)
if (transactions.Count != 0)
Operation lastCommitted = transactions.Pop();
if (lastCommitted.Equals(operation))
Console.WriteLine("NO TRANSACTION");
transactions.Push(lastCommitted);
return lastCommitted;
else
Console.WriteLine("NO TRANSACTION");
return operation;
public class Database
private Operation commands;
private Transaction transaction;
public Database()
commands = new Operation();
transaction = new Transaction();
public void HandleInput()
Console.WriteLine("Hello user, enter some commands");
string line = "";
while ((line = Console.ReadLine()) != null)
if (line == "END")
break;
else
HandleUserInput(line);
private void HandleUserInput(string inputLine)
/*
* Need to use exceptions for parsing and use try catch block for FormatException
* Assuming that input commands will be valid(eg. Get will have 2 params,
* Count will have 2 params etc.)
*/
string[] parameters = inputLine.Split(' ');
string op = parameters[0];
string variable;
int value;
switch (op.ToUpper())
case "GET":
variable = parameters[1];
commands.Get(variable);
break;
case "SET":
variable = parameters[1];
value = int.Parse(parameters[2]);
commands.Set(variable, value);
break;
case "DELETE":
variable = parameters[1];
commands.Delete(variable);
break;
case "COUNT":
value = int.Parse(parameters[1]);
commands.Count(value);
break;
case "BEGIN":
commands = transaction.Begin(commands);
break;
case "ROLLBACK":
commands = transaction.Rollback(commands);
break;
case "COMMIT":
commands = transaction.Commit(commands);
break;
default:
Console.WriteLine("Invalid operation: " + op + "nTry again.");
break;
c# .net interview-questions
c# .net interview-questions
New contributor
New contributor
New contributor
asked 4 mins ago
SindhuSindhu
1
1
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sindhu is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216612%2fin-memory-database-supporting-transactions%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sindhu is a new contributor. Be nice, and check out our Code of Conduct.
Sindhu is a new contributor. Be nice, and check out our Code of Conduct.
Sindhu is a new contributor. Be nice, and check out our Code of Conduct.
Sindhu is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216612%2fin-memory-database-supporting-transactions%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown