Kubernetes -1.9
http://blog.kubernetes.io/2017/12/kubernetes-19-workloads-expanded-ecosystem.html
- 4 релиз за год
- Workloads API GA (general availability). apps/v1 вместо extensions/v1beta1, api/v1beta1, api/v1beta2. Включает Deployment, DaemonSet, ReplicaSet, StatefulSet. Показано, как надо мигрировать, есть тулы, для обратной совместимости еще поддержат. Интересно почитать, как развивалось API между версиями: Immutable Selectors
- Windows Support (beta)
- Storage Enhancements: k8s-1.9 добавили (alpha) поддержку Container Storage Interface (CSI). Упрощает работу с Volume, третесторонние провайдеры подобных систем.
- Custom Resource Definition (CRD) validation -> beta. Работает по-умолчанию (в отличие от alpha), проверяет
- Каждая SIG (Special Interest Group) готовит свои изменения для релиза, смотреть список
The Case for Learned Index Structures
https://www.arxiv-vanity.com/papers/1712.01208v1/
- Индексы - модели:
- B-Tree-Index -> map[key: position in sorted array].
- Hash-Index -> map[key: position in unsorted array].
- BitMap-Index -> data exists or not
- другие модели с этим интерфейсом тоже возможны
- обычные индексы - general purpose, хотя и оптимизируются
- зная структуру ключей - можно сильно оптимизировать. Скажем, если ключи - range(1,10M) - можно не хранить индекс, и доступ будет через val[idx] за O(1), что значительно быстрее, чем B-Tree. Аналогично для других вариантов
- Тяжело делать индивидуальные решения. Легко, если оно делается само (machine learning)
- Проблема: надежность. ML имеет вероятностную модель
Ключи уже - предсказательные модели. Да, отличия будут, но их можно учесть
- Проблема: производительность Нейронной Сети.
GPU/TPU будут наращивать производительность: к 2025 увеличат производительность в 1000раз
Однотипные операции гораздо проще скалировать -> вскоре Нейронные Сети будут выгоднее генеральных решений
- для эффективности, часто не индексируют каждый ключ, но только каждый n-ый, т.е. первый ключ страницы.
Т.е. B-Tree это модель, которая гарантирует, что ключ будет найден в области от вернутой позиции до конца страницы
- При добавлении данных - перебалансировка B-Tree (переучивание Нейронной Сети)
- пример с range() в качестве набора данных