Reliable Datagram Sockets (RDS) — протокол передачи данных, разработанный совместно корпорацией Oracle и компанией SilverStorm в 2006 году, основан на аппаратных возможностях шины передачи данных InfiniBand. Протокол предусматривает возможность доставки датаграмм без установки соединения, обеспечивает высокоскоростную передачу данных и низкий уровень задержек в поддержку аппаратных возможностей Infiniband.
Исследования в области улучшения производительности решений межпроцессного взаимодействия (IPC) и используемых для этого протоколов велись на протяжении нескольких лет. После того как двухлетний анализ уже существующих вариантов IPC продемонстрировал их неудовлетворительные показатели, было решено создать свой собственный механизм IPC на основе использования технологии zero-copy и протокола UDP. 31 октября2006 года был опубликован пресс-релиз о начале внедрения RDS в продукты Oracle, а именно в Real Application Cluster версии 10g.
Протокол был включён в состав ядра Linux версии 2.6.30, выпущенного 9 июня 2009 года. Код был представлен некоммерческой организацией OpenFabrics Alliance (OFA)[1].
Обзор
RDS состоит из двух частей: механизма межпроцессного взаимодействия (IPC) и протокола передачи датаграмм UDP, то есть при помощи сетевого прокола реализуется обмен данными между распределёнными процессами. Ключевую роль здесь играет ориентация на использование шины InfiniBand и применение технологии zero-copy для ускорения операций копирования данных при их передаче. Благодаря использованию протокола без установки соединения, но с добавлением механизмов, обеспечивающих надежность доставки датаграмм, а также внедрению указанных технологий, производительность нового протокола по сравнению со стандартным протоколом гигабитного Ethernet возросла на 60 % (в идеальном случае). Кроме того, особое внимание было уделено переносимости и масштабировании: новый протокол, по заявлениям разработчиков, должен работать с сотнями тысяч конечных точек и десятками тысяч локальных процессов.