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

Reshaping json / reparing json inside shell script (remove trailing comma)

Spaces in which all closed sets are regular closed

Is there a reasonable and studied concept of reduction between regular languages?

Does higher Oxidation/ reduction potential translate to higher energy storage in battery?

Physiological effects of huge anime eyes

How to use ReplaceAll on an expression that contains a rule

What steps are necessary to read a Modern SSD in Medieval Europe?

Does Germany produce more waste than the US?

Reference request: Grassmannian and Plucker coordinates in type B, C, D

Help/tips for a first time writer?

Players Circumventing the limitations of Wish

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?

From jafe to El-Guest

Traduction de « Life is a roller coaster »

Lucky Feat: How can "more than one creature spend a luck point to influence the outcome of a roll"?

How to Implement Deterministic Encryption Safely in .NET

What would be the main consequences for a country leaving the WTO?

Easy to read palindrome checker

Expectation in a stochastic differential equation

"Eavesdropping" vs "Listen in on"

Is it ever safe to open a suspicious HTML file (e.g. email attachment)?

Do scriptures give a method to recognize a truly self-realized person/jivanmukta?

What does "shotgun unity" refer to here in this sentence?



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










0












$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;











share







New contributor




Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$
















    0












    $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;











    share







    New contributor




    Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$














      0












      0








      0





      $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;











      share







      New contributor




      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $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





      share







      New contributor




      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 4 mins ago









      SindhuSindhu

      1




      1




      New contributor




      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Sindhu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          0






          active

          oldest

          votes












          Your Answer





          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.









          draft saved

          draft discarded


















          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.









          draft saved

          draft discarded


















          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          कुँवर स्रोत दिक्चालन सूची"कुँवर""राणा कुँवरके वंशावली"

          Why is a white electrical wire connected to 2 black wires?How to wire a light fixture with 3 white wires in box?How should I wire a ceiling fan when there's only three wires in the box?Two white, two black, two ground, and red wire in ceiling box connected to switchWhy is there a white wire connected to multiple black wires in my light box?How to wire a light with two white wires and one black wireReplace light switch connected to a power outlet with dimmer - two black wires to one black and redHow to wire a light with multiple black/white/green wires from the ceiling?Ceiling box has 2 black and white wires but fan/ light only has 1 of eachWhy neutral wire connected to load wire?Switch with 2 black, 2 white, 2 ground and 1 red wire connected to ceiling light and a receptacle?

          चैत्य भूमि चित्र दीर्घा सन्दर्भ बाहरी कडियाँ दिक्चालन सूची"Chaitya Bhoomi""Chaitya Bhoomi: Statue of Equality in India""Dadar Chaitya Bhoomi: Statue of Equality in India""Ambedkar memorial: Centre okays transfer of Indu Mill land"चैत्यभमि