Why isn’t DSM for unstructured memory done today?

Edit: Comments suggested, that DSM just faded out by being not used recently. What were the reasons for this, what are DSMs drawbacks? Literature lists many positive aspects like
easy to port programms to, no marshalling and therefore faster and so on but also negative aspects like only usable in homogenous environments due to endianess and word size issues. So why is all data synchronizing done by databases and not DSM anymore? Has there been a historic comparison or study at the time when both ways existed concurrently?

Old text:

Ages ago, Djikstra invented IPC through mutexes which then somehow led to shared memory (SHM) in multics (which afaik had the necessary mmap first). Then computer networks came up and DSM (distributed SHM) was invented for IPC between computers. So DSM is basically a not prestructured memory region (like a SHM) that magically get’s synchronized between computers without the applications programmer taking action. Implementations include Treadmarks (inofficially dead now) and CRL.

But then someone thought this is not the right way to do it and invented Linda & tuplespaces. Current implementations include JavaSpaces and GigaSpaces. Here, you have to structure your data into tuples. Other ways to achieve similar effects may be the use of a relational database or a key-value-store like RIAK. Although someone might argue, I don’t consider them as DSM since there is no coherent memory region where you can put data structures in as you like but have to structure your data which can be hard if it is continuous and administration like locking can not be done for hard coded parts (=tuples, …).

Why is there no DSM implementation today or am I just unable to find one?

6

DSM (Distributed Shared Memory) is a topic from Computer Architecture rather than software development; however, I have the answer:

Summary

DSM has never stopped being used. There is an evidence with enough additional information to prove the use of DSM today and an active research in that area.

Numbers

Only for year 2012, there are 173 new unique papers at IEEE Explore describing various applications of DSM.

Additional Resources

Many other recent papers can be found in the ACM Digital Library.

Sample Papers and DSM Implementations

Software distributed shared memory and its various implementations can be found here, i.e. this paper describes a particular SW DSM implementation.

Another example of a DSM paper.

2

If I understand your question, it’s why don’t developers use DSM to build applications, preferring other abstractions? I think it’s because of complexity.

I really think shared memory, in general, is a deceptively simple abstraction. It seems easy to understand but the particulars make it complex. Other abstractions, like message-passing, are actually simpler to write and deploy. When I was getting my Master’s, Linda was still in common use, but most people developing distributed systems were using a variation of message passing or RPC.

Even within a server, where shared memory is available, developers often use sockets (Unix sockets or loopback) to communicate between processes. Using message passing, developers don’t have to worry about concurrent access, obtaining locks, what to do if a process holding a lock fails, etc. Taking message passing from a single machine to multiple machines is fairly straightforward. However, as you can see from the number of papers, it is not as clear cut with DSM.

At another level, clustering that involves shared resources has kind of fallen out of favor. For example, single-system-image clustering is no longer a hot topic. Most modern operating systems have taken a “shared-nothing and we’re fine with that” approach. There are some clustering toolkits available as add-ons to Linux but it’s not ‘mainstream.’ (A lot of clustering add ons are really failover clustering and not clustering in the OpenVMS sense).

DSM is not abandoned, dead, or buried. I’m not saying the problems around DSM are insurmountable, or it is too complex to use in every circumstance or that it will never be as convenient as message passing. Some products use DSM under the hood to manage their clustering. I think Oracle’s WebLogic app server can use some region of shared memory to facilitate their clustering, as an example. At the very least, it looks like it’s still fertile ground for research if you decide to go for a PhD.

One merely needs to revisit the “Dining Philosophers” problem to understand the difficulties encountered with distributed shared resource access. How does one synchronize symmetrical access to a shared resource without a common clock? The reason why the client/server architecture is so popular in distributed systems is because the architecture introduces an asymmetrical node that provides synchronized access to one or more shared resources; thereby, avoiding race conditions.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật