Hacker News Digest

Тег: #graph-databases

Постов: 3

IRS open sources its fact graph (github.com)

GitHub выпустила Fact Graph — инструмент для анализа и визуализации информации с открытым исходным кодом. Он помогает разработчикам и исследователям быстро находить связи между различными сущностями, например, людьми, организациями и событиями, делая данные более доступными и удобными для анализа.

Основное применение — это анализ больших объёмов данных, где Fact Graph помогает выявлять скрытые закономерности и связи. Это особенно полезно для журналистов, исследователей и разработчиков, работающих с открытыми данными. Инструмент работает через API и поддерживает интеграцию с другими системами, такими как Elasticsearch и Neo4j.

Ключевые особенности включают поддержку графовых запросов, визуализацию связей и возможность расширения через плагины. Разработчики подчёркивают, что инструмент особенно полезен в сферах анализа социальных сетей, журналистики данных и академических исследований. Исходный код доступен на GitHub, что позволяет сообществу вносить свой вклад и улучшать функциональность.<|begin▁of▁sentence|>

by ronbenton • 15 октября 2025 г. в 23:24 • 233 points

ОригиналHN

#fact-graph#data-analysis#data-visualization#graph-databases#elasticsearch#neo4j#api#open-source#taxation#data-journalism

Комментарии (60)

  • Обсуждение началось с вопроса о том, где находятся фактические файлы налогового кодекса, и вылилось в обсуждение того, что IRS Direct File был отменён, а фактический график и инструменты для работы с ним были выложены в открытый доступ.
  • Участники обсудили, что фактический график может быть использован для прозрачности и возможно LLM-интеграции, но также вызвал вопросы о том, как он может быть использован для предоставления налоговых советов и был ли он предназначен для использования вне контекста Direct File.
  • Обсуждались также вопросы о том, как налоговый кодекс может быть использован для предоставления налоговых советов и был ли он предназначен для использования вне контекста Direct File.
  • Также обсуждались вопросы о том, какие альтернативы TurboTax и другим коммерческим программам существуют и как они могут быть использованы.
  • Наконец, обсуждались вопросы о том, как налоговый кодекс может быть использован для предоставления налоговых советов и был ли он предназначен для использования вне контекста Direct File.

Stategraph: Terraform state as a distributed systems problem (stategraph.dev)

Почему мы создаём Stategraph: состояние Terraform как проблема распределённых систем

Экосистема Terraform десятилетиями обходила фундаментальное архитектурное проблему: использование файловой семантики для решения задач распределённых систем. Результат предсказуем и болезнен.

При масштабировании автоматизации инфраструктуры мы обнаружили, что управление состоянием в Terraform демонстрирует классические симптомы несоответствия между представлением данных и шаблонами доступа. Команды создают сложные обходные решения: разделение файлов состояния, оркестрация обёрток, внешние механизмы блокировок. Это не решения, а доказательство, что мы решаем не ту проблему.

Stategraph подходит к состоянию как к тому, чем оно является на самом деле: направленному ациклическому графу ресурсов с семантикой частичных обновлений, а не монолитному документу.

Патология файлового состояния

Состояние Terraform — это проблема координации. Множество акторов (инженеры, CI-системы) должны одновременно читать и изменять перекрывающиеся подмножества состояния инфраструктуры. Вместо решений с тонкими блокировками и управлением параллелизмом Terraform использует глобальный мьютекс для JSON-файла.

Наблюдение: Вероятность конфликта блокировок растёт сверхлинейно с увеличением команды и количества ресурсов.

Несоответствие гранулярности:

  • Текущая модель: чтение 100%, блокировка 100%, изменение 0.5%
  • Фактическая потребность: чтение 3%, блокировка 3%, изменение 3%

Разделение файлов состояния не решает проблему, а перераспределяет её, добавляя сложность управления зависимостями между состояниями.

Состояние как граф: естественное представление

Состояние инфраструктуры по своей природе является направленным графом. Ресурсы имеют зависимости, образующие рёбра. Изменения распространяются по этим рёбрам. Terraform внутренне представляет состояние как граф, но на уровне хранения уплощает эту структуру в blob.

При нормализации состояния в графовую базу данных появляются естественные свойства:

  • Изоляция подграфов: операции над несвязанными подграфами параллелизуемы
  • Точные блокировки: блокировка на уровне ресурсов и зависимостей
  • Инкрементальное обновление: вычисление минимального набора изменений через обход графа

Управление параллелизмом через правильные абстракции

Stategraph реализует проверенные паттерны распределённых систем:

  • MVCC для неблокирующего чтения
  • Write-ahead logging для сохранности данных
  • Уровни изоляции транзакций

Традиционный подход:

Acquiring global lock… waiting

Stategraph:

Locking subgraph (3 resources)… ready

Каждая операция блокирует только свой подграф. Менеджер блокировок использует граф зависимостей для предотвращения взаимных блокировок. Читатели получают согласованные снимки без блокировки писателей.

Результат: значительное улучшение пропускной способности при параллельной работе. Три команды могут одновременно применять изменения к независимым ресурсам.

by lawnchair • 17 сентября 2025 г. в 08:38 • 120 points

ОригиналHN

#terraform#distributed-systems#state-management#graph-databases#concurrency-control#infrastructure-as-code#mvcc#write-ahead-logging

Комментарии (55)

  • Предлагается заменить файловую систему Terraform на графовую базу данных для улучшения масштабируемости и устранения глобальных блокировок.
  • Текущий файл состояния Terraform ценится за простоту и предсказуемость, но становится узким местом при работе с тысячами ресурсов и большими командами.
  • Ключевая проблема — разделение состояния (splitting state) создаёт новые сложности, такие как зависимости между состояниями и необходимость оркестрации.
  • Новое решение должно обеспечивать детализированное блокирование ресурсов, а не глобальную блокировку, и предоставлять возможности для запросов и отчётности.
  • Обсуждаются вопросы управления доступом (RBAC) и миграции существующих крупных setup'ов в новую модель.
  • Подход сравнивается с другими инструментами (Pulumi, Crossplane, Terraform Cloud), но фокус — на оптимизации именно модели Terraform/OpenTofu.
  • Мнения разделены: одни видят в этом фундаментальный сдвиг, другие считают, что проблема вызвана антипаттернами в организации инфраструктуры.

Mangle – a language for deductive database programming (github.com)

Mangle — проект Google на GitHub.
Язык: Go.
Лицензия: Apache-2.0.

Описание
Mangle — это компилятор/интерпретатор логического языка, ориентированного на:

  • анализ и трансформацию графов;
  • декларативные запросы к данным;
  • поддержку Datalog-подобного синтаксиса.

Ключевые особенности

  • Компилирует логические правила в Go-код или исполняет напрямую.
  • Поддерживает рекурсивные запросы и агрегации.
  • Работает с in-memory и persistent-хранилищами.

Установка

go install github.com/google/mangle/cmd/mangle@latest

Быстрый старт

  1. Создай файл example.mgl:
    edge("a", "b").
    edge("b", "c").
    path(X, Y) :- edge(X, Y).
    path(X, Z) :- edge(X, Y), path(Y, Z).
    
  2. Запусти:
    mangle example.mgl --query="path(\"a\", Z)"
    

Документация

by simonpure • 18 августа 2025 г. в 00:55 • 80 points

ОригиналHN

#go#datalog#graph-databases#google#github

Комментарии (14)

  • Участники спорят, связан ли новый язык Google с «Deductive Database» из видео 3b1b: одни считают, что это очередной внутренний эксперимент, другие — просто «люди, которые веселятся под крылом Google».
  • Поднимается вопрос, почему почти все инструменты расширяют «ванильный» Datalog: его ограничения делают расширения неизбежными.
  • В треде упоминаются альтернативные языки запросов — PreQL/Trilogy, Malloy, PRQL, PathQuery — и обсуждается, как они соотносятся с SQL и реляционной алгеброй.