Tag Archives: systems

Turing100 Lecture: Talk on Life & Work of 2008 Turing Award Recipient Barbara Liskov

In 2008, Barbara Liskov was given the Turning Award for contributions to practical and theoretical foundations of programming language and system design, especially related to data abstraction, fault tolerance, and distributed computing.

Ajay Deshpande, Chief Architect at Persistent Systems will give a talk on the life and work of Barbara Liskov, on 31st August, from 2pm to 5pm at Dewang Mehta Auditorium, Persistent (SB Road).

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 31 August.

This event is free and open for anybody to attend. Register here

Turing100 Event Report: Work of Butler Lampson – Systems

(This is a live-blog of Neeran Karnik‘s talk on Butler Lampson, as part of the Turing100 Lecture Series happening at Persistent. Since it is being typed during the talk, please forgive the typos and bad structuring of the article. This article is also very incomplete.)

Butler Lampson has contributions in a wide area of computer science fields. Here is the Turing Award Citation:

For contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing.

The number of different areas of computer science touched there is breathtaking.

Systems Built

Here is just a sampling of some of the work of Lampson that resulted in entire areas of computer hardware and software:

  • The first personal computer:
    • The first personal computer in the world, the Xerox Alto, was conceived in a 1972 memo written by Lampson.
    • Important contributions of the Alto:
      • First “personal” computer
      • First computer that used a desktop metaphor
      • First computer to use a mouse-driven graphical interface
    • Lampson later work on the follow-up workstation designs Dorado and Wildflower (research products) which later resulted in a successful commercial product (Star).
  • The Bravo Editor
    • Lampson designed the first WYSIWYG editor in the world in 1974. This shipped with the Xerox Alto. This work can ultimately be seen to have led to the development of Microsoft Word
  • The Xerox 9700 and Dover Laser Printers
    • The first laser printer was designed in 1969 at Xerox Parc and Lampson worked on the electronic design of it.
  • The SDS 940 Time-sharing system
    • The first general-purpose time-sharing system.

And those were just the systems he built.

What about more fundamental contributions to computer science? Here is a list:

  • The two-phase commit protocol.
    • This is the fundamental building block of all transactional processing in databases that are spread out across machines and/or geographies.
  • The CAL time-sharing system
  • Programming Languages
    • MESA and SPL: for systems programming. Modern threads developed from here
    • Euclid: first programming language to use verification
  • Security:
    • Access matrix model, unifying capabilities and ACLs
    • Theory of principals speaking for other principals
    • Microsoft Palladium
    • Scrubbing disk storage
    • Research on how economic factors affect security
  • Networking
    • Co-inventor of ethernet!

How is Systems Research different?

Butler Lampson was one of the few great computer scientists who spent a lot of in the laboratory with actual hardware, getting his hands dirty. This is not the kind of work normally associated with Turing award winners, but it is the kind of work that has really given us the actual hardware that we use in computer science today.

Some thoughts on why systems programming is different more difficult.

Designing and building large computing systems, or complex computing systems or both. Computers (from tablets to supercomputers), networks, storage and other hardware and OS, programming languages, and other infrastructure software.

Systems design is different from other parts of computers science (e.g. algorithm design) because it’s external interface is to the real world (and hence it is imprecise, subject to change, and generally underspecified), lots of moving parts (i.e. more internal structure and more internal interfaces), module-level design choices have wider implications on the end product, and measure of success is less clear than in other fields. There is no such thing as an optimal answer, so avoiding terrible designs is more important than finding the most optimal one.

Hints on Computer System Design

This is a paper written by Lampson giving hints on how to build good systems. He uses hints, because in systems work, there are no infallible rules. So there are just hints which guide your thinking. Werner Vogels, CTO of Amazon, who oversees some of the most complex and scalable computing infrastructure in the world is a fan of this work. He finds these hints very useful, and says that they are more important today because they’ve withstood the test of time

These hints talk about functionality (what you’re doing), speed (are you doing it quickly enough), and fault-tolerance (and will you keep doing it) In systems, the interface design is the most important part. Do this well and other stuff will follow.

  • Hints about Functionality/Interface:

    • Do one thing at a time, and do it well
      • KISS – Keep it Short Stupid
      • Don’t generalize – because generalizations are wrong
      • Don’t overload interfaces with too much work
      • “Perfection is reached not when there is no longer anything to add, but when there is no longer anything to take away” – Antoine de St. Exupery
    • An interface should capture the minimum essentials
      • Don’t promise more than you can deliver
    • Cost of an interface should be predictable
    • Better to have basic and fast functionality, rather than slow and complex
      • Clients who need speed, are happy with the basic+fast interface
      • Clients how need complexity, can build it on top of your basics
    • Don’t hide the power
      • If a lower layer abstraction is more powerful, a higher layer abstraction should not hide that power. It should expose the power. The abstraction should only conceal undesirable properties
    • Keep the basic interfaces stable; parts of the system that will be used by many different modules should not change
    • Treat the first system that you’re building as a prototype that you will throw away
    • Divide and conquer
      • Reduce the problem to smaller pieces that you can solve more easily
      • Bite of as much as you can handle right now, and then leave the rest for the next iteration.
  • Hints on Speed

    • Split resources in a fixed way, rather than a sharing way
      • Do not spend too much effort in trying to share resources
      • Overhead of multiplexing usually not worth it
      • Fixed allocation this makes things faster, and more predictable
    • Cache Answers to Expensive Computations
    • Dynamic Translation
      • Use different representations for use of some structure vs. implementation of the same, and then dynamically translate between them.
      • “All problems in computer science can be solved by adding a level of indirection”
    • Use hints
      • i.e. things that don’t have to be 100% accurate, but can improve performance if they are correct
      • For example, the routing tables in internet packet routing. They can be incorrect, out-of-date. In most cases, they work, and give great performance. Rarely, they don’t work, and you can recover.
    • When in doubt, use brute force
      • Hardware is cheap
      • Brute force allows for cheaper faster implementation
      • e.g. chess-playing computers that use brute force have defeated grandmasters, while complex algorithms trying to “understand” chess.
    • Compute in the background whenever possible
      • e.g. if a webpage update results in an email being sent, the email sending should happen in the background.
    • Use batch processing when possible
    • Safety First
      • Correctness is more important than speed
      • Being clever and optimal is over-rated
      • A general purpose system cannot really optimize, because it doesn’t really know the use cases
      • Hardware is cheap
  • Hints for Fault Tolerance
    • End-to-End Error Recovery
      • “Error detection and recover at the application level is necessary. Error detection and recovery at lower layers is not necessary, and should only be done for performance reasons.”
      • Saltzer et. all, classic 1984 paper
      • Example: if transferring file from one computer to another there are lots and lots of steps (file being transferred from storage to memory to network), and in lots of sub-tasks (transferring chunks of file)
    • Lot updates to record the truth about an object state
      • Current state of the object in memory is a hint
      • The true state of the object is what can be recovered from the storage and logs
    • Actions should be atomic or restartable
      • Either an action is all-or-nothing, or if there is a failure in between the action should be able to restart from where it left off

Lampson himself suggests that reading the whole hints paper at once might be tiresome, so it is better to read it in small doses at bedtime. And he points out that he himself has ignored most of these hints sometimes, but then has always regretted them.

Pune’s KQInfoTech announces beta availability of ZFS file-system for Linux

About an year ago, we had reported that Pune based KQInfoTech is working on porting Sun’s ZFS file system to linux. They have now announced that a “Technology Preview” of the port is now complete, and the ported ZFS for Linux is now available in beta. They are looking for interested folks to try out the beta and help them with finding bugs and other issues.

But first some background, taken from previous PuneTech articles about KQInfoTech.

What is KQInfotech?

KQ InfoTech Logo
KQInfoTech is a Pune company that's trying to combine mentorship programmes for technology students, along with technology services to the industry and open source projects. Click on the logo to see other PuneTech articles on KQInfoTech's various initiatives.

Pune-based KQInfoTech is an organization started by Anurag Agarwal and Anand Mitra, both of whom chucked high-paying jobs in the industry because they felt that there was a desperate need to work on the quality of students that is being churned out by our colleges. For the 2 years or so, they have been trying various experiements in education, at the engineering college level. All their experiments are based on one basic premise: students’ ability to pay should not be a deterrent – in other words, the offerings should be free for the students; KQInfoTech focuses on finding alternative ways to pay for the costs of running the course. As a part of this initiative, they provide services to industry, and take on open source projects, and the students in their mentorship program actually do the work under their guidance.

What is ZFS?

ZFS – the Zettabyte File System – is an enormous advance in capability on existing file systems. It provides greater space for files, hugely improved administration and greatly improved data security. Wikipedia has this to say:

ZFS is a combined file system and logical volume manager designed by Sun Microsystems. The features of ZFS include support for high storage capacities, integration of the concepts of filesystem and volume management, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z and native NFSv4 ACLs.

Why ZFS on Linux by KQInfotech?

ZFS is arguably one of the best file-systems available today, and Linux is one of the most widely used operating systems for servers by new startups. So, having ZFS available on Linux would be great. And, With many years of experience in Veritas building VxFS, another one of best file-systems in the world, the founders of KQInfoTech do have the technical background to be able to do a good job of this.

At this point, ZFS is not available on Linux. See the Linux section of ZFS entry on Wikipedia for more details.

So what does this port contain?

This port of ZFS is an extension to the port of DMU layer by Brian Behlendorf. We have added the missing ZPL layer to Brian’s port. With this addition it becomes possible to mount the zfs filesystem on linux and leverage ZFS’s features on linux.

What next?

If you’re interested in participating in the beta and helping out, or you’re one of the people whose business would really be helped by having ZFS available on Linux, apply for the beta, or get in touch with KQInfoTech: zfs-query@kqinfotech.com.

Also, check out the FAQ.

Mentor India internship for tech students: entrance exam on 4th July

For the last few years, Pune startup KQ Infotech has been running Mentor India, an year-long, free, internship program for technology students, aimed at giving students a very strong base in systems programming, web development, or web design and animation.

The next batch of Mentor India is starting in July, and the entrance exam is on 4th July. Interested students may register here

Click on this icon to see all PuneTech articles related to tech education in Pune
Click on this icon to see all PuneTech articles related to tech education in Pune

From Mentor India’s webpage:

Mentor India is a fusion of the cultural heritage of the ancient Gurukul system with modern methods of teaching and learning. This unique concept emphasizes experiential learning by the Shishya with the Guru skillfully facilitating it. Thus, students of this program would be paying from the day one but in the form of their contribution on live projects.

Being a Software Development & Consulting firm Knowledge Quest Infotech has a strong background of technology, thus enabling students in cultivating their technical roots.

Here are highlights of the program from the KQ InfoTech website:

  1. Mentor India Program ensures that the students learn and earn with upcoming technology
  2. Students don’t need to pay any fees and their training is paid by work on live projects
  3. Students can start earning within 6 months of their program based on performance
  4. Exposure to live projects along one year work experience
  5. Placement opportunity with KQ Infotech and other technology companies
  6. Course completion certification

Any student with one of these degrees is eligible: MCA,MSc CS/IT/Tech,MCM,BE/BTech. Candidates will be selected on the basis of a written technical and aptitude written test, followed by a technical and personal interview.

Syllabus for technical test contains

  • C Programming Language
  • Data Structure and Algorithms
  • Operating systems
  • Quantitative & Analytical Reasoning

Apply here

Pune’s KQInfoTech is porting Sun’s ZFS File-System to Linux

Pune-based KQInfoTech is working on porting Sun‘s ZFS file-system to the Linux Platform. ZFS is arguably one of the best file-systems available today, and Linux is one of the most widely used operating systems for servers by new startups. So, having ZFS available on Linux would be great. And, With many years of experience in Veritas building VxFS, another one of best file-systems in the world, the founders of KQInfoTech do have the technical background to be able to do a good job of this. Check out the full announcement on their blog:

We have a ZFS building as a module and the following primitive operations are possible.

  • Creating a pool over a file (devices not supported yet)
  • Zpool list, remove
  • Creating filesystems and mounting them

But we are still not at a stage, where we can create files and read and write to them

See the full article, for more details and some interesting issues related to the license compatibility between ZFS and Linux.

About KQInfoTech

Pune-based KQInfoTech is an organization started by Anurag Agarwal and Anand Mitra, both of whom chucked high-paying jobs in the industry because they felt that there was a desperate need to work on the quality of students that is being churned out by our colleges. For the 2 years or so, they have been trying various experiements in education, at the engineering college level. All their experiments are based on one basic premise: students’ ability to pay should not be a deterrent – in other words, the offerings should be free for the students; KQInfoTech focuses on finding alternative ways to pay for the costs of running the course. See all PuneTech articles related to KQInfoTech for more details.

Reblog this post [with Zemanta]

Technical Seminar on Sun’s ZFS (file system) from KQInfoTech

What: Technical seminar on ZFS (file-system) from Sun, presented by KQInfoTech
When: Friday, 9th October, 6pm-8pm
Where: Sadanand Regency, Opposite Balewadi Stadium, Bangalore Highway (note: this is not the same as Sadanand Restaurant)
Registration and Fees: This seminar is free for all to attend. You must register to attend.

Sun Microsystems
Image via Wikipedia

On ZFS Technologies

KQInfoTech invites everybody interested in storage and systems to join them in a discussion of ZFS from Sun. This is the second talk in the series. The first talk had discussed various features of ZFS and introduced basic of ZFS, while this seminar we will be attempting to take a deeper plunge into ZFS, trying to look at various aspects of ZFS architecture and getting a better understanding of the same.

However, it is not necesssary to have attended the first seminar to be able to attend this one. There will be a quick refresher for those who missed out on the first one, to bring everyone up to speed on the basics of ZFS.

There are no fees for participation. However in view of limited seats, prior registration is crucial.

Reblog this post [with Zemanta]

IEEE Seminar: Dr. Harrick Vin, Vice President and Chief Scientist, TRDDC – 25 April

What: Seminar on two topics – “Trends, Opportunities and Challenges in IT Systems Management” and “Academia and Industry Collaboration” by Dr. Harrick Vin, Vice President (R&D) and Chief Scientist, Systems Research Lab, Tata Research Development and Design Center (TRDDC), TCS, Pune – organized by IEEE Pune.
When: Saturday, 25 April, 5pm
Where: Institute of Engineers, Opposite Modern Cafe, J.M. Road, Shivajinagar
Registration and Fees: This seminar is free for all to attend. No registration required

1st Abstract: Trends, Opportunities and Challenges in IT Systems Management

During the past two decades, many enterprises have transformed from “Businesses facilitated by IT” to the paradigm where “Business is IT”. Today, enterprises not only relay on IT systems to obtain and deliver insightful, timely, and accurate information for managing their operations, but also to provide competitive differentiation, to support business agility and growth, and to improve profitability. Unfortunately, the growing complexity of the IT systems operated by the enterprises is becoming a key obstacle in sustaining this vision. We believe that continuous evolution is a key contributor to this complexity. Unlike traditional engineering artifacts that don’t change much over time, IT systems evolve continuously to accommodate new software and hardware technologies, application functionality, user requirements, as well as changes in operating conditions (workload, faults, etc.). Thus, a grand challenge for computing is to conquer this complexity by developing methodology and tools to design simple yet efficient systems and to manage system evolution. In this talk, I will discuss this opportunity and challenge, and describe some of the approaches for realizing this vision.

2nd Abstract: Academia and Industry Collaboration

The nature and complexity of modern computer systems dictate that research and education activities in computing must blend theory and practice. Blind experimentation in the absence of theory is infeasible, and theory that is not grounded in practice is sterile. An effective academia and industry collaboration can enrich both the theory and the practice of computing science. In this discussion, I will raise several opportunities and challenges in fostering academia and industry collaboration.

About the speaker – Dr. Harrick Vin

Dr. Vin is Vice President (R&D) and Chief Scientist, Systems Research Lab at the Tata Research Development and Design Center (TRDDC), Pune, which is a division of Tata Consultancy Services (TCS). He is also a member of the TCS Corporate Technology Board.

Before joining TCS, Dr. Vin was a Professor in the Department of Computer Sciences at the University of Texas at Austin. He was the founding Director of the Distributed Multimedia Computing Laboratory and the co-Director of the Laboratory of Advanced Systems Research (LASR) at UT Austin. His research interests are in the areas of networks, operating systems, distributed systems, and multimedia systems.

He has co-authored more than 100 papers in leading journals and conferences. Harrick has been a recipient of several awards including the Faculty Fellow in Computer Sciences, Dean’s Fellowship, National Science Foundation CAREER award, IBM Faculty Development Award, Fellow of the IBM Austin Center for Advanced Studies, AT&T Foundation Award, National Science Foundation Research Initiation Award, IBM Doctoral Fellowship, NCR Innovation Award, and San Diego Supercomputer Center Creative Computing Award.

For more details, click here.

There are a bunch of other tech events happening in Pune this weekend. Check out the PuneTech calendar for more information.

Reblog this post [with Zemanta]