#11 JADE 7.0 File Structure Changes and Memory Usage (2024)

This bulletin is designed as a precursor to the full documentation included with JADE 7.0. It is not meant as replacement reading nor a white paper on memory management.

In earlier releases, the space to store a database entity (a JADE object or index block, for example) was allocated serially in a file. In this discussion, these entities are referred to as database objects. When a database object was deleted, its space was tracked and that space could be reused. The database engine made calls to the operating system to read or write individual database objects. The operating system buffered parts of database files in its own system-wide cache and it was responsible for all physical I/O to the database files.

The database engine retained copies of database objects in an object cache, to minimize calls to the operating system. The object cache employed a Least Recently Used (LRU) replacement policy to maintain a working set of objects. Only one thread at a time could access a database object in the object cache. Each database object contained a checksum field, updated when the database object was written to system cache and checked when the object was read from system cache.

New File Structure in JADE 7.0
Database files are now organized as a sequence of 8K byte disk blocks, which is the basic unit of I/O and free-space management. Database Btree index blocks fully occupy a disk block. Small objects are sub-allocated within a block and objects larger in size than 8K bytes span multiple contiguous disk blocks.

Disk Cache
A new block-level caching module, called disk cache, replaces the file caching and physical I/O functions previously performed by the operating system.
The content of a disk block is stored in a buffer; the working set of blocks buffered in memory is called the buffer pool. The buffer pool manager reads or writes blocks using direct I/O. Database objects are read and updated directly in the buffer pool, removing the need for an object caching layer and its data copying overheads.

What Does This Mean?
File data cached by the operating system is not included in any Process memory accounting. In prior JADE releases the memory consumed by operating system caching of database files wasn't attributed to the database process; It was part of the global total that can be seen as "Cached" under Physical Memory on the Task Manager Performance tab.

In JADE 7.0 the memory accounting for the database Process will have a larger in-use value than you have seen in prior releases. This is because the memory used for buffers holding the disk blocks (the file data) is now directly owned and attributed to the database process.

JADE 7.0 Migration Process
The memory usage you’ll see in Task Manager largely depends on your application. However, this change is seen mostly easily during the JADE 7.0 migration, specifically the ConvertDb phase.

The process allocates memory to the buffer pool until 256MB of memory is free. At first glance it might be disconcerting to see a single JADE process consuming many gigabytes of memory.

e.g.

2011/09/19 10:03:52.076 017e4-0830 CvtDb: [187.4] projectData processing ...
2011/09/19 10:03:52.078 017e4-0830 PDB: projectData[51] added to control file
2011/09/19 10:04:13.126 017e4-041c PDB: DiskCache: segment allocated: _poolSegments= 7, pool size now 469762048 bytes (57344 blocks)
2011/09/19 10:04:24.636 017e4-041c PDB: DiskCache: segment allocated: _poolSegments= 8, pool size now 536870912 bytes (65536 blocks)

...

2011/09/19 10:25:17.649 017e4-041c PDB: DiskCache: segment allocated: _poolSegments= 93, pool size now 6241124352 bytes (761856 blocks)

Above we see the persistent database allocating segment 93, taking the buffer pool size to 6.2GB.

#11 JADE 7.0 File Structure Changes and Memory Usage (1)
Example of the jadclient process during a JADE 7.0 migration.
TaskManager.png (29.87 KiB) Viewed 4837 times

The disk caching behaviour is controlled by the following INI parameter:

[PersistentDb]
DiskCacheFreeMemoryTarget

The default value is 256MB. During the migration phase it’s recommended to leave this unchanged for maximum performance. In fact, unless you are running JADE 7.0 on a dedicated server, don't modify any of the caching parameters. Let JADE manage this.

How is the Memory Released?
If free memory continually drops below the threshold JADE will continue releasing segments until it hits the configured minimum segments. But how does JADE calculate this using the DiskCacheFreeMemoryTarget value?

JADE calculates free memory as AvailableBytes + CacheBytes where AvailableBytes is the performance counter "\\Memory\\Available Bytes" and CacheBytes is the performance counter "\\Memory\\Cache Bytes".

At the time of writing the definitions of these counters were:

  • "\\Memory\Available Bytes" = the sum of memory assigned to the standby, free, and zero page lists
  • "\\Memory\\Cache Bytes" = the sum of System Cache Resident Bytes, System Driver Resident Bytes, System Code Resident Bytes, and Pool Paged Resident Bytes

When the sum of these two falls below what is configured to be kept free JADE deallocates a diskcache segment and suspends memory calculations for two sample periods (DiskCacheMemorySampleInterval, default=5000 milliseconds) to allow settling.

When memory is released you’ll see log entries like this:

2011/09/19 11:12:23.119 017e4-041c PDB: DiskCache:: system available bytes (261353472) less than DiskCacheFreeMemoryTarget (268435456), deallocating segment 94

#11 JADE 7.0 File Structure Changes and Memory Usage (2024)
Top Articles
30 Keto Chinese Recipes - Low Carb Spark
Best Online Excel Courses for 2024
San Angelo, Texas: eine Oase für Kunstliebhaber
Joliet Patch Arrests Today
Enrique Espinosa Melendez Obituary
Activities and Experiments to Explore Photosynthesis in the Classroom - Project Learning Tree
2024 Fantasy Baseball: Week 10 trade values chart and rest-of-season rankings for H2H and Rotisserie leagues
Bellinghamcraigslist
Atrium Shift Select
Best Restaurants In Seaside Heights Nj
Day Octopus | Hawaii Marine Life
Rapv Springfield Ma
Readyset Ochsner.org
Binghamton Ny Cars Craigslist
Walthampatch
10 Best Places to Go and Things to Know for a Trip to the Hickory M...
Tcgplayer Store
iZurvive DayZ & ARMA Map
Vrachtwagens in Nederland kopen - gebruikt en nieuw - TrucksNL
50 Shades Of Grey Movie 123Movies
Pokemon Unbound Shiny Stone Location
Craigslist Pearl Ms
The Weather Channel Local Weather Forecast
Bennington County Criminal Court Calendar
The Creator Showtimes Near R/C Gateway Theater 8
Preggophili
Watson 853 White Oval
Horses For Sale In Tn Craigslist
Pacman Video Guatemala
Buhl Park Summer Concert Series 2023 Schedule
Log in to your MyChart account
Kleinerer: in Sinntal | markt.de
Sinai Sdn 2023
Swimgs Yuzzle Wuzzle Yups Wits Sadie Plant Tune 3 Tabs Winnie The Pooh Halloween Bob The Builder Christmas Autumns Cow Dog Pig Tim Cook’s Birthday Buff Work It Out Wombats Pineview Playtime Chronicles Day Of The Dead The Alpha Baa Baa Twinkle
Renfield Showtimes Near Marquee Cinemas - Wakefield 12
The Ultimate Guide to Obtaining Bark in Conan Exiles: Tips and Tricks for the Best Results
P3P Orthrus With Dodge Slash
What Is Xfinity and How Is It Different from Comcast?
Newcardapply Com 21961
Hair Love Salon Bradley Beach
Solemn Behavior Antonym
The Blackening Showtimes Near Regal Edwards Santa Maria & Rpx
Bianca Belair: Age, Husband, Height & More To Know
18 terrible things that happened on Friday the 13th
The Listings Project New York
Lesson 5 Homework 4.5 Answer Key
Heat Wave and Summer Temperature Data for Oklahoma City, Oklahoma
Concentrix + Webhelp devient Concentrix
Call2Recycle Sites At The Home Depot
Game Akin To Bingo Nyt
Att Corporate Store Location
La Fitness Oxford Valley Class Schedule
Latest Posts
Article information

Author: Cheryll Lueilwitz

Last Updated:

Views: 5806

Rating: 4.3 / 5 (74 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Cheryll Lueilwitz

Birthday: 1997-12-23

Address: 4653 O'Kon Hill, Lake Juanstad, AR 65469

Phone: +494124489301

Job: Marketing Representative

Hobby: Reading, Ice skating, Foraging, BASE jumping, Hiking, Skateboarding, Kayaking

Introduction: My name is Cheryll Lueilwitz, I am a sparkling, clean, super, lucky, joyous, outstanding, lucky person who loves writing and wants to share my knowledge and understanding with you.