centraldogma
centraldogma copied to clipboard
Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2
It would be nice if we can view/modify write quota per project/repository in the UI
Now Central Dogma supports not only Java but also [Go](https://github.com/line/centraldogma-go) and [Rust](https://github.com/line/centraldogma-rs). It would be nice if we provide officially supported clients list on the docs, or anywhere.
Currently, Central Dogma acquires a lock at the repository level using Curator's `InterProcessMutex`. Though the global lock could be a performance bottleneck, the lock is inevitable as the multi-master architecture....
Currently, get file(s) API and watch API have the same endpoint. https://github.com/line/centraldogma/blob/master/server/src/main/java/com/linecorp/centraldogma/server/internal/api/ContentServiceV1.java#L231 So access logs and metrics have the same naming. That really makes it hard to debug when something...
``` ReplicationWriteQuotaTest > updateWriteQuota() FAILED org.opentest4j.AssertionFailedError: expected: 200 OK but was : 500 Internal Server Error at sun.reflect.GeneratedConstructorAccessor88.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at com.linecorp.centraldogma.it.ReplicationWriteQuotaTest.getSessionId(ReplicationWriteQuotaTest.java:145) at com.linecorp.centraldogma.it.ReplicationWriteQuotaTest.setUp(ReplicationWriteQuotaTest.java:90) ```
Central Dogma only statically resolves the configuration file - `dogma.json`. It could be convenient to override the configuration with environment variables, especially for Docker and cloud infrastructure. The following syntax...
https://github.com/line/centraldogma/pull/592/checks?check_run_id=2636423174 There are 3 points threads are stuck at. ```java "Test worker" #12 prio=5 os_prio=31 cpu=10611.68ms elapsed=3088.79s tid=0x00007f9544541000 nid=0x9e03 waiting on condition [0x0000700010d46000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park([email protected]/Native Method) -...
To support multiple sub-repositories, which mentioned in #575, we need to copy a snapshot of the existing git repository to a new one with truncating the original histories. `GitRepository` already...
Central Dogma uses jGit to store data. Due to the nature of Git that stores unlimited history, Central Dogma will eventually get in trouble managing disk usage. We can handle...
``` ZooKeeperCommandExecutorTest > hierarchicalQuorumsWithFailOver() FAILED org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a lambda expression in com.linecorp.centraldogma.server.internal.replication.ZooKeeperCommandExecutorTest that uses com.linecorp.centraldogma.server.internal.replication.Replica, com.linecorp.centraldogma.server.internal.replication.Replicacom.linecorp.centraldogma.server.command.Command Wanted but not invoked: function.apply( CreateRepositoryCommand{type=CREATE_REPOSITORY, timestamp=1617084941865, author=Author["System" ], projectName=project, repositoryName=repo1}...