Можно ли объединить автономные изменения в отдельных клиентских базах данных IndexedDB, когда браузеры вернутся в режим онлайн? - PullRequest
1 голос
/ 26 января 2011

IndexedDB в Firefox 4 дает нам новый потенциал для создания приложений для запросов и хранения базы данных на стороне клиента, как в автономном, так и в онлайн-режиме.Это очень новая альтернатива и очень интересная, поскольку моя организация разбита по многим странам с плохим онлайновым веб-сервисом.

Общая картина: «IndexedDB позволяет веб-приложениям хранить большие объемыданных в вашей локальной системе (с вашего явного разрешения, конечно же) для быстрого автономного поиска в будущем. »

Моя проблема :

Я непонять следующее.

  1. Каким образом автономные изменения в базе данных на стороне клиента, скажем, на Гаити, можно затем объединить с центральной базой данных Вашингтона, округ Колумбия?

  2. Или даже, как 3 отдельных изменения базы данных на 3 клиентах в Гаити синхронизируются друг с другом?Возможно, это невозможно?

  3. Каковы преимущества и ограничения такой клиентской базы данных?

1 Ответ

0 голосов
/ 07 мая 2012

Ваши вопросы подняты и суммируют некоторые проблемы согласования данных. В общем, это возможно, но я бы не советовал делать это в одиночку. В области базы данных такие приложения, как CouchDB, работают над этим и показывают, что это в некотором роде гурклова задача.

Объединение данных между хранилищами объектов означает, что вам понадобится много логики приложения, чтобы элегантно их реализовать. Например, что происходит, когда два автономных приложения обновляют одну и ту же строку? У вас возник бы «конфликт слияния», и именно в такой ситуации приложения управления исходным кодом, такие как Git, такие сложные.

Чтобы реализовать эту идею, вы можете взять чип блока Git и использовать «источник событий» как способ пролистывания изменений. Я работаю с аналогичной концепцией в IDB , и она работает довольно хорошо. Стоит отметить, что я не пытаюсь объединить изменения между хранилищами объектов, а скорее управляю редакциями в одном хранилище объектов, поэтому ваша задача будет считаться значительно более сложной.

...