What is "Peak Memory Reserved" of a query execution plan in TIBCO Data Virtualization?

What is "Peak Memory Reserved" of a query execution plan in TIBCO Data Virtualization?

book

Article ID: KB0073255

calendar_today

Updated On:

Products

TIBCO Data Virtualization

Description

This article aims to explain what "Peak Memory Reserved" of a query execution plan is in TIBCO Data Virtualization (TDV).

Issue/Introduction

What is "Peak Memory Reserved" of a query execution plan in TIBCO Data Virtualization.

Resolution

TDV users can find “peak memory reserved“ in each query plan statistic. The query engine dynamically allocates this value specific to the current running request. By default, the initialized "peak memory reserved" is 2000000, however the maximum value can be configured in Studio using TDV Studio Menu > Administration > Configuration > /Server/Memory/Managed memory/"Maximum Memory per Request". This value is the percentage of managed memory that a single request is limited to during execution.

This can be used to prevent excessive memory use by a single request. This value is locally defined. It will not be altered when restoring a backup and will not be replicated in a cluster. Users can set the percentage of available memory to limit one request.

Note:
1)    For TDV version 7.0.x, “Maximum Memory per Request” is 100%, by default. This is however, configurable based on a customer's use case. The optimal recommended range is between 20% to 30%.
2)    For TDV version 8.0 and higher, by default, “Maximum Memory per Request” is 30% for optimal performance. This is also configurable based on the use case. 
3)    Also, for TDV 8.0 and higher versions, there is a new feature called "workload management" which allows granular query/memory control.

Sample Query Execution Plan of a query:

Name:
SELECT
Rows Returned:
220
Estimated Rows Returned:
Unknown
Total execute time which include children time and wait time.:
121.4 msecs
Foreground Node Processing Time:
2.5 msecs
Peak memory reserved:
4000000

Projection:
orderdetails0.orderid OrderID, orderdetails0.productid ProductID, orderdetails0.discount Discount, orders.orderdate OrderDate, customers.companyname CompanyName, customers.contactfirstname CustomerContactFirstName, customers.contactlastname CustomerContactLastName, customers.phonenumber CustomerContactPhone, productCatalog_xform.ProductName ProductName, inventorytransactions.transactionid TransactionID, purchaseorders.daterequired DateRequired, purchaseorders.datepromised DatePromised, purchaseorders.shipdate ShipDate, suppliers.supplierid SupplierID, suppliers.suppliername SupplierName, suppliers.contactname SupplierContactName, suppliers.phonenumber SupplierPhoneNumber