AWS SimpleDB
Как упоминалось в начале этого подраздела, у Amazon также имеется собственная служба баз данных – SimpleDB. SimpleDB поддерживает простой интерфейс, позволяющий пользователям вставлять, модифицировать и удалять записи. Кроме того, эта служба позволяет выбирать записи на основе значений их ключей или диапазонов значений первичных и вторичных ключей. Подробности реализации SimpleDB не опубликованы. Из личных бесед с техническими специалистами Amazon нам удалось узнать, что архитектура SimpleDB лучше всего характеризуется как комбинация разделения (рис. 2) и репликации (рис. 3). Однако, в отличие от MySQL Replication, SimpleDB не синхронизует обращения по чтению и записи к разным копиям одних и тех же данных, так что эта служба поддерживает только низкий уровень согласованности, называемый согласованностью в конечном счете (eventual consistency) [29]. К марту 2010 г. в SimpleDB в качестве наивысшего уровня согласованности также поддерживалось "согласованное чтение". К сожалению, мы не могли учесть наличие этого релиза в своих эккспериментах, потому что он появился слишком поздно.
На уровне приложения вариант AWS SimpleDB реализуется с использованием той же конфигурации, что и другие варианты AWS, т.е. Tomcat с переменным числом машин EC2. Поскольку в SimpleDB не поддерживается SQL, операции SQL, подобные соединению и агрегации, необходимо реализовывать на уровне приложения. Для этого мы реализовали (Java-) библиотеку с этими операциями SQL и вручную оптимизированными SQL-запросами (т.е. с выбранными порядками и методами выполнения соединений). Очевидно, что для применения этого подхода потребовалась пересылка всех требуемых данных из SimpleDB в серверы приложений, что привело к ухудшению производительности по сравнению с подходом пересылки запросов, выполняемых полнофункциональными SQL-ориентированными системами баз данных.