I've described this change in GitHub [1], and also show the refactor in the
mail list here.
Keep in mind that this is not the final view of the structure, we will do
more small adjusticement in the future.
Directories in `src` before this refactor:
```
.
├── base
│ └── test
├── client_lib
├── geo
│ ├── bench
│ ├── lib
│ └── test
├── include
│ ├── pegasus
│ └── rrdb
├── rdsn
│ └── src
│ ├── aio
│ │ └── test
│ ├── block_service
│ │ ├── fds
│ │ ├── hdfs
│ │ ├── local
│ │ └── test
│ ├── client
│ ├── common
│ │ ├── serialization_helper
│ │ └── test
│ ├── failure_detector
│ │ └── test
│ ├── http
│ │ └── test
│ ├── meta
│ │ ├── duplication
│ │ └── test
│ │ ├── balancer_simulator
│ │ ├── meta_state
│ │ └── misc
│ ├── nfs
│ │ └── test
│ ├── perf_counter
│ │ └── test
│ ├── remote_cmd
│ ├── replica
│ │ ├── backup
│ │ │ └── test
│ │ ├── bulk_load
│ │ │ └── test
│ │ ├── duplication
│ │ │ └── test
│ │ ├── split
│ │ │ └── test
│ │ ├── storage
│ │ │ └── simple_kv
│ │ │ └── test
│ │ └── test
│ ├── runtime
│ │ ├── rpc
│ │ ├── security
│ │ ├── task
│ │ └── test
│ ├── tools
│ ├── utils
│ │ ├── absl
│ │ │ ├── base
│ │ │ │ └── internal
│ │ │ └── utility
│ │ ├── hpc_locks
│ │ ├── long_adder_bench
│ │ └── test
│ │ └── nth_element_bench
│ └── zookeeper
│ └── test
├── redis_protocol
│ ├── proxy
│ ├── proxy_lib
│ └── proxy_ut
├── reporter
├── sample
├── server
│ └── test
├── shell
│ ├── commands
│ ├── linenoise
│ └── sds
└── test
├── bench_test
├── function_test
│ ├── backup_restore_test
│ ├── base_api_test
│ ├── bulk_load_test
│ ├── detect_hotspot_test
│ ├── partition_split_test
│ ├── recovery_test
│ ├── restore_test
│ ├── throttle_test
│ └── utils
├── kill_test
└── pressure_test
```
Directories in `src` after this refactor:
```
.
├── aio
│ └── test
├── base
│ └── test
├── block_service
│ ├── fds
│ ├── hdfs
│ ├── local
│ └── test
├── client
├── client_lib
├── common
│ ├── serialization_helper
│ └── test
├── failure_detector
│ └── test
├── geo
│ ├── bench
│ ├── lib
│ └── test
├── http
│ └── test
├── include
│ ├── pegasus
│ └── rrdb
├── meta
│ ├── duplication
│ └── test
│ ├── balancer_simulator
│ ├── meta_state
│ └── misc
├── nfs
│ └── test
├── perf_counter
│ └── test
├── redis_protocol
│ ├── proxy
│ ├── proxy_lib
│ └── proxy_ut
├── remote_cmd
├── replica
│ ├── backup
│ │ └── test
│ ├── bulk_load
│ │ └── test
│ ├── duplication
│ │ └── test
│ ├── split
│ │ └── test
│ ├── storage
│ │ └── simple_kv
│ │ └── test
│ └── test
├── reporter
├── runtime
│ ├── rpc
│ ├── security
│ ├── task
│ └── test
├── sample
├── server
│ └── test
├── shell
│ ├── commands
│ ├── linenoise
│ └── sds
├── test
│ ├── bench_test
│ ├── function_test
│ │ ├── backup_restore_test
│ │ ├── base_api_test
│ │ ├── bulk_load_test
│ │ ├── detect_hotspot_test
│ │ ├── partition_split_test
│ │ ├── recovery_test
│ │ ├── restore_test
│ │ ├── throttle_test
│ │ └── utils
│ ├── kill_test
│ └── pressure_test
├── tools
├── utils
│ ├── absl
│ │ ├── base
│ │ │ └── internal
│ │ └── utility
│ ├── hpc_locks
│ ├── long_adder_bench
│ └── test
│ └── nth_element_bench
└── zookeeper
└── test
```
1.
https://github.com/apache/incubator-pegasus/issues/1053#issuecomment-1283555776
Best regards,
Yingchun Lai
On Wed, Oct 19, 2022 at 9:54 AM Tao Wu <[email protected]>
wrote:
> It sounds good to me. I don't see any negative impact as long as the final
> branch is compile-able. My personal suggestion is that you can do it at
> weekend (Oct 22) so that the pending PR won't break your refactoring
> frequently. In my experience in many enormous refactorings to RisingWave,
> it did work better. Also, I personally suggest that you can create an issue
> for the final structure. The community should have a consensus on that
> before you do the refactoring.
>
> Yingchun Lai <[email protected]> 于 2022年10月18日周二 下午11:58写道:
>
> > Hi Pegasus developers,
> > After the xiaomi/rdsn project being merged into the Pegasus project, the
> > rdsn source code directory structure is kept as before in the independent
> > xiaomi/rdsn repository. But it's just a temporary status, we are planning
> > to integrate the two projects closer in the long-term plan.
> > The following things I'm going to do is moving source code directories in
> > 'src/rdsn/src/*' to 'src/*', for example,
> > '*src/rdsn/src/*runtime/api_task.h'
> > will be moved to '*src/*runtime/api_task.h', this change will make the
> > source structure more simple and easier to understand and accept by more
> > new comer of Pegasus.
> > Of course, it's just one step of the whole refractory plan, the
> > 'src/rdsn/include/*' files have been moved to the places where they are
> > more related to by pull request [1]. And there will be more refactors to
> > modularize the source files in the future.
> > However, this change will influence hundreds of files, their paths will
> be
> > changed, even though there are no functional changes. This change is
> > presented by this [2] pull request, I want to hear some feedback about
> it.
> > If there is no veto on it, I'm planning to merge it into the master
> branch
> > this Friday(2022.10.21 16:00:00 UTC).
> > Thanks!
> >
> > 1. https://github.com/apache/incubator-pegasus/pull/1189
> > 2. https://github.com/apache/incubator-pegasus/pull/1190
> >
> > Kind regards,
> > Yingchun
> >
>