История изменений
Исправление KivApple, (текущая версия) :
Вот взять даже minetest. Он хранит мир в простой таблице в sqlite, где ключ координаты чанка, а значение blob с его данными.
С какой попытки вы напишите свою хештаблицу без багов? С какой попытки вы сумеете сохранить ее на диск в эффективном для произвольного доступа виде? С какой попытки вы сможете сделать этот формат хоть немного устойчивым к сценарию «приложение убили в середине записи данных», чтобы как минимум чанки которые не обновлялись смогли прочитаться (а мы могли в этот момент писать не только данные чанка, но и обновлять саму хештаблицу), как максимум обновляемые чанки остались в предыдущем состоянии, а не битые?
А это вырожденный случай использования СУБД, без связанных сущностей. Много где всё ещё сложнее.
Короче, пусть Столяров пишет новую урезанную реализацию СУБД на каждый чих, пока остальные пишут бизнес-логику.
Исправление KivApple, :
Вот взять даже minetest. Он хранит мир в простой таблице в sqlite, где ключ координаты чанка, а значение blob с его данными.
С какой попытки вы напишите свою хештаблицу без багов? С какой попытки вы сумеете сохранить ее на диск в эффективном для произвольного доступа виде? С какой попытки вы сможете сделать этот формат хоть немного устойчивым к сценарию «приложение убили в середине записи данных», чтобы как минимум чанки которые не обновлялись смогли прочитаться (а мы могли в этот момент писать не только данные чанка, но и обновлять саму хештаблицу), как максимум обновляемые чанки остались в предыдущем состоянии, а не битые?
А это вырожденный случай использования СУБД, без связанных сущностей. Много где всё ещё сложнее.
Исправление KivApple, :
Вот взять даже minetest. Он хранит мир в простой таблице, где ключ координаты чанка, а значение blob с его данными.
С какой попытки вы напишите свою хештаблицу без багов? С какой попытки вы сумеете сохранить ее на диск в эффективном для произвольного доступа виде? С какой попытки вы сможете сделать этот формат хоть немного устойчивым к сценарию «приложение убили в середине записи данных», чтобы как минимум чанки которые не обновлялись смогли прочитаться (а мы могли в этот момент писать не только данные чанка, но и обновлять саму хештаблицу), как максимум обновляемые чанки остались в предыдущем состоянии, а не битые?
А это вырожденный случай использования СУБД, без связанных сущностей. Много где всё ещё сложнее.
Исходная версия KivApple, :
Вот взять даже minetest. Он хранит мир в простой таблице, где ключ координаты чанка, а значение blob с его данными.
С какой попытки вы напишите свою хештаблицу без багов? С какой попытки вы сумеете сохранить ее на диск в эффективном для произвольного доступа виде? С какой попытки вы сможете сделать этот формат хоть немного устойчивым к сценарию «приложение убили в середине записи данных», чтобы как минимум чанки которые не обновлялись смогли прочитаться (а мы могли в этот момент писать не только данные чанка, но и обновлять саму хештаблицу), как максимум обновляемые чанки остались в предыдущем состоянии, а не битые?