Low Level Considerations for VS of the Future (an old memo)

  1. Search for “foo”
  • This can be done in a totally asynchronous fashion with different “threads” proceeding in parallel against different editor buffers or other searchable contexts. All the “foos” light up as they are discovered.
  • Foos that are not visible need not be processed, so this sort of parallelism is “lazy”
  • We can still do this asynchronously but now there is an expectation that we will eventually do it all and of course we must do all the foos not just the visible ones
  • Generally this requires progress, and a transaction
  • It can fail, or be cancelled, these are normal things
  • Limited memory usage in the face of many threads running
  • Ability to access the data in slices that are durable and limited in span
  • Clear boundaries for write operations that may happen while the work is going on
  • This allow allows for notifications
  • This allows for a clear place to re-try in the event of deadlocks/failures
  • Isolation so that what you see when you change or update is consistent to the degree that was promised (it’s part of the contract)
  • No STA UI so that you can present the results in parallel without any cosmic entanglements outside of the normal locking the data-structures require — no “stealth” reentrancy
  • The underlying data storage is enabled to take advantage of CPU resources available
  • Other factors which would make parallelism moot are mitigated

--

--

--

I’m a software engineer at Facebook; I specialize in software performance engineering and programming tools generally. I survived Microsoft from 1988 to 2017.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Don’t judge my Software’s Architecture too easy

Software Architecture drivers demistyfied

How to use Java variables like a pro

Cross Platform App in Python — Beeware

What Does it Take to Optimize a Complex System?

The Importance of Proper Database Use

Dispatch: A simple work scheduler for Android

Save passwords to JSON file with encryption using python

All About Hadoop and its ecosystem.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rico Mariani

Rico Mariani

I’m a software engineer at Facebook; I specialize in software performance engineering and programming tools generally. I survived Microsoft from 1988 to 2017.

More from Medium

Managing Memory in COM

Still Test-Driving After All These Years

C# 11 is Coming! 5 Features that will Blow your Mind 🤯

How to use Azure search index