Prequel: Storage Setup.

The story of the storage prior to the actual story.

Blog image

There are too many STO’s!! Stop wasting my time! Let’s get in.

Storage of data has existed as a requirement for computing since the beginning of computers as a tool. However, there is always the need for a brand new DB or a brand new filesystem for the industry. What’s the point for having a variety of databases, when data storage is a common computing requirement that has been around since the beginning of time.

The OS filesystem offers the ability to take care of organizing drives [C drive, D: drive], folders within the drive, files in the folder, and blocks of data contained in the file. The OS filesystem functions at a high-level of data organization, but it doesn’t have the complete picture of the kind of data that’s being stored. Windows is an operating system. It operates using NTFS and the file system is a system that works with folders, drives and blocks, as well as files.

Is the Operating System able to know what’s within the files? A definite NO. NTFS recognizes that a file’s name is ‘something.txt However, it doesn’t know it’s a text-based file. It knows that the file’s name is ‘something.xlsx However, it isn’t aware that it’s an excel spreadsheet. NTFS is aware of how big the files are, as well as the last updated date does the file exist or not? sharing permissions of the folder and many other details required to function at a folder or file level.

The operating system also cannot comprehend the data contained stored in the files located in your company tally folder. It has ‘.900 or ‘.1800 extensions.

When you hand out an invoice for a commercial purpose, it is saved in ‘.1800 files in the folder for your company with its own unique company number. A voucher like this is recorded stored on disk. Sometimes, it is one record, but occasionally as a series of records. Record is a simple data block with variable length, which contains the information that tally needs to use at the point of need at the business user’s instructions in business terms, when you need to view your reports or go deeper to find the master or voucher.

If we imagine OS the filesystem is a supervisor that has an eagle’s perspective of the data, then tally is an example of a manager that has both an eagle’s and view of an ant depending on the application’s requirements. It can navigate down the confusing paths of the mountain of ants and locate or store the data you wanted to reference efficiently that is possible. The Tally filesystem is the chief of the company directory and the contents and it operates according to the demands of business users.

The Tally filesystem is aware of the information it stores, what’s within the data; and the time it’s needed and what is the reason for its use;”

A record may have the following the following considerations or variations:

Tally, having its own proprietary filesystem gives the product the unique freedom of deciding on the design and implementation of various types of records based on the above-mentioned considerations/Variations.

The Tally DB is among the numerous phoenixes that make up the Tally product. It continues to reinvent its capabilities to meet the ever-growing demands of the constantly evolving Tally product. The goal is to simplify the way you manage your business.”

If we’ve understood until now according to the saying the rest of the way is a cakewalk’.

Get your focus back and let’s look at of these data access patterns and the associated data structure through your Tally.

Indexing embedded

To put things in perspective, let’s go back to from where we left off: When you redeem a voucher, Tally files an object as a voucher in single record or several records according to its type and type; vouchers will contain details in numbers, such as the amounts, masters or stock items in line entries. A voucher is sometimes needed in a single transaction for alterations or as an individual line in a list of vouchers that are displayed on a specific day, month, or number of dates within The daybook.

In day-to-day operations we will keep creating vouchers, altering vouchers, deleting vouchers, cancelling vouchers. Each of these operations will require to be recorded to the disc.

If we delete vouchers it creates empty disk spaces where data is erased.

When we change the voucher, it could result in the voucher records becoming smaller or larger. If the new voucher is larger due to the addition of entries for lines or stock items and the place where the voucher was stored could not be adequate to hold it and will require a an additional location for storage. If the modified voucher is smaller because of deleted entries for lines or stock items the place where the voucher was stored will have unfilled space, which could unnecessaryly increase the size of the file in the event that it is not reused correctly.

In order to maximize the best use of disk space vouchers do not have to be placed at a constant interval in order of being created, but instead they are arranged according to the space available on disks. As we perform increasing and more of this rearrangement of files, their arrangement according to their date of creation is getting more random. When we decide to show the voucher/s for the day of a specific date, or even a certain number of times, the question is how can you do it at the fastest speed so that the user of the business isn’t waiting long enough to access his day book.

Let’s look at the analogy of a sock to grasp the issue:

Imagine that your data are similar to houses in a town or society. When a wedding takes place, the bride’s family ensures that relatives of their friends, relatives, of friends, and other relatives attend the wedding. No matter what The goal of the host family is to bring as many blessings as feasible to the newlyweds.

Thus, as part of inviting guests, members of the family who host them visit all their acquaintances’ homes and make personal invitations. Even though the host family is aware of their contacts effectively in their workplaces and sports clubs, as well as their and daily commutes, they might not know which area they live in. The majority of the acquaintances are so established that they know about their homes which are located near to each another, and the host family has a connection to the location of one of their homes. What happens is that one of the members of the hosting family visits the house of a family member whom he/she is familiar with, and that person takes the guest to a different relative’s home and then another relative will take the guest to a different family member’s home that he is familiar with and so on until the person is finished with all the acquaintances would like to invite. Similar to friends as well, the host family member goes to the house of a friend is known to him which friend will accompany the guest to a different friend’s house that the person is expected to be at on Saturdays, and then other friend will take you to a different friend’s home and so on.

You might be wondering that I am not the reason why I began reading this? I should never initially opened this link when I was feeling tired. I should have opened an other link that could be used as a sedative to help me sleep.

The most important thing we’d like to emphasize is that if we are able to find the links that lead to the location, then there is no requirement to travel in a contiguous sequence rather, we can utilize the links to get to several specific places of interest through the hyperlinks. If voucher records are involved specifically, such links that are based on the dates of creation and modification are constructed in order to allow them to be used in the same order when needed. The links are maintained by self-balancing binary trees. It is important to it is important to note that the links are kept in this manner on the disk and not in cache. This means that the number of reads that are performed on the disk is optimized to the specific requirements of those who use them for business.

This way of maintaining links is known as embedded indexing. This is a custom-designed method to meet the needs of the particular needs of data patterns within Tally. This custom indexing technique allows Tally to carry out minimal input output tasks from the disk, which in turn provides the fastest speed possible for use cases such as those in the Day Book of Tally.

If you are asking more questions than you had prior to beginning to read this article, it indicates that you’ve grasped what you have read.

We’ll come again with a new and insightful insight into another data structure or ‘nut and bolt that runs within your Tally software to provide you with the most secure and efficient experience you can get from your business reports.

Until then, I Wish you a lot of cheers and happiness when you learn something new.
Read More

Leave a comment

Your email address will not be published. Required fields are marked *