1. A method comprising: executing a process on a server, the server having a low latency non-volatile memory and a low latency volatile random access memory; receiving, for use by the process on the server, plain data including at least one plain file; storing the plain data in the low latency non-volatile memory; receiving, for use by the process on the server, encrypted data including at least one encrypted file; storing the encrypted data in the low latency non-volatile memory without decryption of the encrypted data; receiving, for use by the process, an index file, the index file including a plurality of indices, each index including an address of a file associated with the index and stored in the low latency non-volatile memory and a flag indicating whether the file associated with the index is encrypted, the indices including indices for both the at least one plain file and the at least one encrypted file; storing the index file in the low latency volatile random access memory; receiving, by the process, a first query; identifying from the index file one or more first files that need to be processed to generate a response to the first query; determining, by the process, that at least one of the first files is stored in the low latency non-volatile memory in an encrypted format; retrieving a portion of one of the first files stored in an encrypted format from the low latency non-volatile memory; decrypting, for use by the process, the portion of the one of the first files stored in an encrypted format; storing the decrypted portion of the one of the first files in the low latency volatile random access memory and not in the low latency non-volatile memory; and providing, by the process, a first response to the first query, the first response being generated from the decrypted portion of the one of the first files in the low latency volatile random access memory.