Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Working with in-memory files using VFS (RAM disks)

From: ColdFusion 9 New Features

Video: Working with in-memory files using VFS (RAM disks)

Disk I/O is one of most expensive operations you can perform on a server. The process of moving a hard drive platter to an empty spot, dumping data to it, and then reading that data back involves a lot of physical labor on the part of the server. Unfortunately, sometimes the only way you can accomplish something is write data to disk, such as uploading a file through the browser. But your server's RAM is fast. It doesn't have any moving parts, so why can't we use that to store some of our data? ColdFusion 9 offers a solution to some of your disk I/O issues by providing access to a virtual hard drive on the servers RAM, called a virtual file system.

Working with in-memory files using VFS (RAM disks)

Disk I/O is one of most expensive operations you can perform on a server. The process of moving a hard drive platter to an empty spot, dumping data to it, and then reading that data back involves a lot of physical labor on the part of the server. Unfortunately, sometimes the only way you can accomplish something is write data to disk, such as uploading a file through the browser. But your server's RAM is fast. It doesn't have any moving parts, so why can't we use that to store some of our data? ColdFusion 9 offers a solution to some of your disk I/O issues by providing access to a virtual hard drive on the servers RAM, called a virtual file system.

In this video, I am going to show you how to use the VFS to perform file operations without writing any data to a physical disk. So the first thing you need to know before you actually start using the virtual file system is how to turn it on and how to set a size limit. And that's all done through the ColdFusion Administrator. So in the ColdFusion Administrator, if I click on Settings, and scroll down a little bit here you'll see these two options right here, Enable In-Memory File System and Memory Limit for the In-Memory File System.

So this box has to be checked before you can use it and this determines how much RAM you want to be able to use for that RAM disk. Disk memory comes out of your JVM memory, so if you're running tight on your JVM memory to begin with, you might disable this entirely. If you have got plenty of extra RAM or you are running on a 64-bit system, you can size that up as appropriate depending on how much you want to store in there. So now that we have our RAM disk ready to go, we can start putting some data in there. So I am going to go back to CF Builder and we'll open vfs.cfm.

Now, all we are going to do at this point is write a file to the RAM disk. Now, if you ever written a file to disk before, you usually just do it like so, cffile action="write". You give it a filename, which would normally be c: something or other. In this case, we're going to do ram:// and we are just going to write a test text file. And then for the Output, I am going to say 'This is a test text file' and that's all there is to it.

If I preview this in the browser, I don't get any errors, but I don't get any output either. So how do we know what's in our RAM disk? Well, the thing to note is that the RAM disk is just like a physical hard drive as far as ColdFusion is concerned. That means that I can perform all the same file operations that I can on my regular hard drive. That means that I can do a cfdirectory action = "list" directory ="ram://", and name, we're going to dump this to our RamDisk variable.

And if I dump RamDisk, preview in browser, we can see it looks just like if we were dumping the contents of our regular server hard drive. I can see that it's in the ram directory and my filename is test.txt. So how do I get data out of the RAM disk? Well, the first thing you would think you could do is cfinclude template="ram://test.txt". Unfortunately, this is going to cause a problem. If I preview this in browser, it's going to tell me that it couldn't find the template ram://test.txt.

What we need to do is set up a mapping so that ColdFusion knows where to find our RAM disk files. So if we go back to the ColdFusion Administrator, and click on Mappings, we are going to add a new mapping for our RAM disk. And let's say that the Logical Path is inmemory and the Directory Path is ram://. We'll click Add Mapping. Now I can treat the inmemory folder in my paths as the RAM disk. We'll go back to CF Builder, go back to the source code, and instead of ram here, I am going to put inmemory/test.txt.

We'll save that file, run that and preview, and there we go. It has cfincluded that test.txt and this file doesn't exist anywhere on my hard drive. Now doing this in a simple example may seem rather mundane but I can use this for anything. I could do server generated components as CFC files that get written to the RAM disk and then called using the New keyword. For example, let's assume that this was a cfc instead. I could do this, cfcset MyCFC = New inmemory.test().

And that would create a new instance of the test CFC in my RAM disk. So this is one more way that you can better manage the resources on your server. By being able to write files directly to RAM and access them as if they were any other file on disk is a huge advancement. The only thing you need to be sure you can do is limit how much you put in here, don't use it for big huge files, keep the file size as small as you possibly can. So the last thing we'll do is use one more function so that you can see exactly what's in your RAM disk in order to manage it properly.

Let's put our cfc back to txt and get rid of our cfc code here and we are going to dump out the getVFSMetadata function and tell it we want to dump metadata about our RAM disk. Right now, this is the only supported VFS available, so you have to provide RAM as the argument value. So, we'll save that file and preview it. And here we can see that it is indeed enabled, how much free space is available, what our limit is, and you notice it's not exactly 100 megabytes.

It uses the 1024 rendering of megabytes. And we can see how much is used. We just have 25 bytes used in our RAM disk. Now, there are a few limitations with what you can do with the RAM disk. For example, inmemory files have to be accessed via either a mapping or an absolute path. You can't access these via http protocols and there are some limitations around what you can do with it with cf file and the file set access mode and set attributes. For example, you can't rename a file from a RAM disk to the hard drive.

You will need to either copy it or move it. With ColdFusion 9's new virtual file system, you now have one more way to better manage your server resources. Being able to push temporary file uploads or even one-off components into the RAM disk is just as easy as using the physical hard drive. Just remember to manage your RAM usage as well as you manage your hard disk usage.

Show transcript

This video is part of

Image for ColdFusion 9 New Features
ColdFusion 9 New Features

36 video lessons · 2963 viewers

Daniel Short
Author

 
Expand all | Collapse all
  1. 4m 30s
    1. Welcome
      53s
    2. Using the exercise files
      3m 37s
  2. 7m 48s
    1. Adding managing and comparing servers
      5m 26s
    2. Monitoring server health
      2m 22s
  3. 22m 10s
    1. Setting the default data source and SMTP
      5m 6s
    2. Getting programmatic debugging and exception handling
      5m 54s
    3. Reviewing the new onCFCRequest method
      5m 29s
    4. Using ApplicationStop()
      2m 24s
    5. Working with Server.cfc and onServerStart
      3m 17s
  4. 17m 45s
    1. Using ternary and chained operations
      5m 46s
    2. Using New and Import
      4m 2s
    3. Reviewing CFScript enhancements
      7m 57s
  5. 20m 23s
    1. Building with implicit getters and setters
      4m 26s
    2. Working with LOCAL scope in functions
      4m 35s
    3. Serializing objects
      6m 6s
    4. Writing components in CFScript
      5m 16s
  6. 19m 27s
    1. Getting started with ORM
      5m 51s
    2. Logging ORM activity
      2m 13s
    3. Saving objects to the database
      6m 10s
    4. Defining table relationships
      5m 13s
  7. 16m 59s
    1. Caching page fragments
      5m 29s
    2. Managing the cache
      4m 48s
    3. Working with in-memory files using VFS (RAM disks)
      6m 42s
  8. 12m 39s
    1. Working with Excel spreadsheets
      4m 56s
    2. Working with Word documents
      4m 4s
    3. Working with PowerPoint presentations
      3m 39s
  9. 28m 58s
    1. Loading Google maps with markers onto a page
      4m 53s
    2. Adding a Flash movie with the built-in FLV player
      2m 14s
    3. Using multi-file upload control
      6m 7s
    4. Building a progress indicator
      3m 37s
    5. Working with accordion layouts
      3m 18s
    6. Showing information with data grid enhancements
      5m 1s
    7. Informing users with Confirm Alert and Prompt dialog boxes
      3m 48s
  10. 9m 8s
    1. Accessing IMAP accounts
      6m 31s
    2. Working with the new array functions
      2m 37s
  11. 15s
    1. Goodbye
      15s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed ColdFusion 9 New Features.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferences from the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.