No announcement yet.

How does VoltDB manage the memory when it execute SQL which need a lot of memory?

  • Filter
  • Time
  • Show
Clear All
new posts

  • How does VoltDB manage the memory when it execute SQL which need a lot of memory?

    When the C++ code compute a complex SQL , could it happens that the memory usage is larger than the machine's limit?How does VoltDB deal with it?

  • #2
    When the SQL execution engine (C++ code) is executing a query it may copy records to "temp tables" in memory in order to perform certain operations on that data. There is a limit of 100MB per partition for these temp tables. If the limit is exceeded, the query results in a SQL error. If it is part of a transaction that involved writes, the transaction will roll back. This limit is configurable, but should be set only with careful consideration of available memory.


    • #3
      Thank you ! Do you think SSD is a good way to solve the limited memory problem?


      • #4
        VoltDB is architected to use 100% main memory for data, as it's intended for fast transaction processing.

        Many fast data problems will fit in main memory, and in many cases that seem to require a larger capacity, it is often where the previous implementation used a single disk-based database, but with VoltDB the data retention period can be reduced to fit in memory, with older records exported to a disk-based analytic data store such as Hadoop or a column store database.

        VoltDB can use SSD for durability, and we recommend SSD or a disk controller with battery-backed write cache for the most demanding synchronous command logging configurations.