Archive

Archive for July, 2009

Contextual Storage

July 28th, 2009

Author: Tom

Let’s start this discussion with the concept of Efficiency, according to Webster:

1: the quality or degree of being efficient.
2 a
: efficient operation b (1): effective operation as measured by a comparison of production with cost (as in energy, time, and money) (2): the ratio of the useful energy delivered by a dynamic system to the energy supplied to it.

Generally speaking, the second definition, specifically b (1), is the one that makes the most sense for this purpose” an “effective operation as measured by a comparison of production with cost,” and in our case the cost would be Time.

Data Storage has always been measured in this fashion (with respect to energy, time and cost) and certainly for most normal applications, such as randomly accessing information, or perhaps optimizations for specific tasks, the existing technologies have been quite effective, however in Artificial Intelligence, or even just trying to access information in a contextually relevant manner, these current technologies are just not “good enough.” Indeed, even if our “index” for the information is organized in an efficient manner relative to the purpose (through the use of a database for instance), the information actually being stored on the physical media is not being store efficiently (this is mitigated in most modern databases by pre-allocating chunks of physical space on the media and making sure the blocks are de-fragmented). Nevertheless, this does not guarantee that the data being stored is physically located in the same place… in fact it is quite possible that the information, even though the files are not logically fragmented, are scattered across multiple physical disks. Therefore, even if our technology does a lot to make sure it is performing as well as it possibly can, there still are inefficiencies that exist.

When we begin to add the concept of contextually relevant information, most data storage systems require a lot of pre-preperation (often taking weeks of an architects time) to design and implement a data architecture in a database that has been configured correctly to achieve any sort of performance with respect to contextual information. Optimally, what we need are physical storage media that are “context-aware” in how they store the information.

Thesis: In order to achieve greater performance and a closer approximation on how the human brain stores, retrieves and categorizes contextual data, we must change how our hardware stores that information.

If we can build contextually aware hardware storage media, for instance, one that understands that two pieces of information are contextually relavant to one another, and can physically store them next to one another, and if we can devise a way to continuously store contextual information in such a manner, then we can eliminate much of the media lag time that exists when trying to retrieve that information.

The Human Brain spends much of its time remembering information. If the Brain had to retrieve information scattered from many different physical locations, the shear effort of assembling that information would mean it would take us minutes to form the simplest thought! Therefore, the Brain must store information that is relavant to a central concept in a physically relevant manner. The Brain also spends another portion of concious time tagging information that it sees during the concious hours and storing that information in short-term memory, then at night, when we are asleep, it attempts to sort that information against the currently “filed” contextual information stored in long-term memory, and then file it contextually and physically wherever it is relevant.

I believe that we must have a physical storage technology that mimicks this behavior if we are ever to have a storage capability that is useful in Artificial Intelligence research. Implement this method of storage with SCM storage media, and we truly will be one step closer to a technology that works for the contextually relevant constructs instead of against it.

The applications of such a technology would go far beyond advancing research into Artifical Intelligence (which may truly never be fully realized), for instance, search engines could utilize this technology to create very fast contextual query systems, or perhaps make content management not only a software-efficient endeavor but a hardware one as well, allowing for very fast searh and retrieval of archival media, and the list could go on… This technology would take less energy, reducing the power cost relative to today’s data retrieval systems by orders of magnitude.

There are several papers that exist that are relevant to this subject12345, while all of these propose great software strategies for dealing with contextual data they all rely heavily on pre-existing physical media systems and try to solve the problem through software means alone (however, perhaps the best solution I have seen, and one that is a good mitigation for contextual data, is the one presented by the paper written by Gokul Soundararajan, et. al., which deals with the situation by implementing a contex-aware pre-fetch algorithm on the server… a novel idea, but one that adds yet another layer on top of the physical media (however this is useful for distributed data), and therefore another hit on performance relative to localized (non-distributed) data.

Hopefully in the near future, a truly context-aware physical storage media will be devised and implemented as I believe this is the only way we are going to achieve good performance for the kind of data we are amassing as a society, not forgetting the applications in many other areas.

  1. See A Context Based Data Management System for Pervasive Computing Collaborative Applications, by Sharat Khungar and Jukka Riekki []
  2. See A Context Based Storage for Ubiquitous Computing Applications, by Sharat Khungar and Jukka Riekki []
  3. See A Context-based Document System for Wearable Computers, by Kent Lyons, Thad Starner, Lonnie Harvel []
  4. See A Classification Framework for Storage and Retrieval
    of Context
    , by B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis []
  5. See Context-Aware Prefetching at the Storage Server, by Gokul Soundararajan, Madalin Mihailescu, and Cristiana Amzahowever []

And so it goes….

July 28th, 2009

Author: Tom

It has been several months since last I posted any sort of news. Since I was re-hired by my company, things have been actually going pretty well for me. My new manager is great and actually seems to care about her employees: she spends a great deal of time asking for feedback and pushes us to get training and advance our careers. I think I can count on my two hands and two feet the number of times over the last eight years my previous manager pushed me to do anything related to my career (granted, I should have done it myself, no excuses). My new team seems to be made up of some genuinely good people who want to do quality work, and I feel humbled to be on their team.

My previous anger about being laid-off from my company was not directed at any particular individual, but merely at the situation and the congruence of events that led up to it, and that anger has cooled somewhat in hindsight. In fact, I’m very glad it did happen, since it gave me the opportunity to put myself into a higher mental gear, and take a hard look at what my life-goals are.

Over the past several years, my professional craving to be apart of the industrial development machine had driven me to snub advancement for advancement’s sake. In fact, I have been offered managerial positions several times in the past only to turn them down (or simply not pursue them) for fear that I would lose my connection with the real technical community. Throughout my career, I have met older technical “sages” in the community and I thought, “I want to be like them!” My thinking at the time was that these “sages” have successfully managed to avoid being corrupted by the corporate ladder, and had somehow retained their “coolness.”

Today, I believe my professional priorities have changed. I am still considered by all that know me as being technically savvy and definitely more than capable of doing the technical aspects of my job, however I’m starting to really gain greater satisfaction about helping and leading younger technical professionals down their career paths. I’m not certain if this is merely an aspect of getting older, but if so, then I’m OK with it, and I find I want to continue to do this. Being a leader and a mentor is daunting since you want to give the “right” advice, and help these younger versions of yourself to achieve where you have failed in the past; perhaps I have begun a new path of my life that I am only now realizing that I’m already walking down, and it has begun to make me think that becoming a manager is not out of the question. I know one thing, I do not want to lose my technical ability, but I really think the challenge of balancing that with team leadership and mentoring is a worthy one… who knows where it may lead?

Nevertheless, I don’t ever want to be in the position of not being of value to those around me, nor to the company I work for… even though I disagree with the foolish and wasteful practices of large companies that lead them to lay-offs when those pink-slips could have been avoided if only there were smarter people at the helm… I can only be myself and affect those around me, and to whom I am responsible, in the most positive way I know how — anything else is out of my control. I must live life from moment to moment and enjoy every aspect of it while I can, whether it’s a moment from my profession or one from my personal life, these moments will never come again!

Author: Tom Categories: About Me, News Tags: , ,

Eclectic Wonder is using WP-Gravatar